|
11 | 11 | import org.junit.jupiter.api.BeforeEach;
|
12 | 12 | import org.junit.jupiter.api.Test;
|
13 | 13 | import org.gridsuite.study.server.dto.diagramgridlayout.DiagramGridLayout;
|
| 14 | +import org.gridsuite.study.server.dto.diagramgridlayout.diagramlayout.AbstractDiagramLayout; |
14 | 15 | import org.gridsuite.study.server.dto.diagramgridlayout.diagramlayout.DiagramPosition;
|
| 16 | +import org.gridsuite.study.server.dto.diagramgridlayout.diagramlayout.MapLayout; |
15 | 17 | import org.gridsuite.study.server.dto.diagramgridlayout.diagramlayout.NadVoltageLevelPositionInfos;
|
16 | 18 | import org.gridsuite.study.server.dto.diagramgridlayout.diagramlayout.NetworkAreaDiagramLayoutDetails;
|
17 | 19 | import org.gridsuite.study.server.dto.diagramgridlayout.diagramlayout.NetworkAreaDiagramLayout;
|
@@ -592,9 +594,9 @@ void testUpdateDiagramGridLayoutWithTooManyNads() throws Exception {
|
592 | 594 | UUID existingDiagramGridLayoutUuid = UUID.randomUUID();
|
593 | 595 | studyRepository.save(StudyEntity.builder().id(studyUuid).diagramGridLayoutUuid(existingDiagramGridLayoutUuid).build());
|
594 | 596 |
|
595 |
| - // Create 4 NAD layout details (exceeds the limit of 3) |
| 597 | + // Create more than MAX_NAD_CONFIGS_ALLOWED NAD layout details |
596 | 598 | List<NetworkAreaDiagramLayoutDetails> nadLayouts = new ArrayList<>();
|
597 |
| - for (int i = 0; i < 4; i++) { |
| 599 | + for (int i = 0; i < DiagramGridLayoutService.MAX_NAD_CONFIGS_ALLOWED + 1; i++) { |
598 | 600 | nadLayouts.add(NetworkAreaDiagramLayoutDetails.builder()
|
599 | 601 | .diagramUuid(UUID.randomUUID())
|
600 | 602 | .voltageLevelIds(Set.of("VL" + i))
|
@@ -626,4 +628,59 @@ void testUpdateDiagramGridLayoutWithTooManyNads() throws Exception {
|
626 | 628 | wireMockServer.verify(0, WireMock.putRequestedFor(WireMock.urlMatching(".*")));
|
627 | 629 | }
|
628 | 630 |
|
| 631 | + @Test |
| 632 | + void testCreateDiagramGridLayoutWithTooManyMapCards() throws Exception { |
| 633 | + UUID studyUuid = UUID.randomUUID(); |
| 634 | + studyRepository.save(StudyEntity.builder().id(studyUuid).build()); |
| 635 | + |
| 636 | + // Create more than MAX_MAP_CARDS_ALLOWED Map Cards |
| 637 | + List<AbstractDiagramLayout> mapLayouts = new ArrayList<>(); |
| 638 | + for (int i = 0; i < DiagramGridLayoutService.MAX_MAP_CARDS_ALLOWED + 1; i++) { |
| 639 | + mapLayouts.add(MapLayout.builder().diagramUuid(UUID.randomUUID()).build()); |
| 640 | + } |
| 641 | + |
| 642 | + DiagramGridLayout diagramGridLayoutWithTooMuchMapCards = DiagramGridLayout.builder().diagramLayouts(mapLayouts).build(); |
| 643 | + |
| 644 | + String payload = objectMapper.writeValueAsString(diagramGridLayoutWithTooMuchMapCards); |
| 645 | + |
| 646 | + // Should return forbidden due to too many Map Cards |
| 647 | + mockMvc.perform(post("/v1/studies/{studyUuid}/diagram-grid-layout", studyUuid) |
| 648 | + .contentType(MediaType.APPLICATION_JSON) |
| 649 | + .content(payload)) |
| 650 | + .andExpect(status().isForbidden()); |
| 651 | + |
| 652 | + // Verify no external services were called since validation failed early |
| 653 | + wireMockServer.verify(0, WireMock.postRequestedFor(WireMock.urlMatching(".*"))); |
| 654 | + } |
| 655 | + |
| 656 | + @Test |
| 657 | + void testUpdateDiagramGridLayoutWithTooManyMapCards() throws Exception { |
| 658 | + UUID studyUuid = UUID.randomUUID(); |
| 659 | + UUID existingDiagramGridLayoutUuid = UUID.randomUUID(); |
| 660 | + studyRepository.save(StudyEntity.builder().id(studyUuid).diagramGridLayoutUuid(existingDiagramGridLayoutUuid).build()); |
| 661 | + |
| 662 | + // Create more than MAX_MAP_CARDS_ALLOWED Map Cards |
| 663 | + List<AbstractDiagramLayout> mapLayouts = new ArrayList<>(); |
| 664 | + for (int i = 0; i < DiagramGridLayoutService.MAX_MAP_CARDS_ALLOWED + 1; i++) { |
| 665 | + mapLayouts.add(MapLayout.builder().diagramUuid(UUID.randomUUID()).build()); |
| 666 | + } |
| 667 | + |
| 668 | + DiagramGridLayout updatePayload = DiagramGridLayout.builder() |
| 669 | + .diagramLayouts(new ArrayList<>(mapLayouts)) |
| 670 | + .build(); |
| 671 | + |
| 672 | + String payload = objectMapper.writeValueAsString(updatePayload); |
| 673 | + |
| 674 | + // Should return forbidden due to too many Map Cards |
| 675 | + mockMvc.perform(post("/v1/studies/{studyUuid}/diagram-grid-layout", studyUuid) |
| 676 | + .contentType(MediaType.APPLICATION_JSON) |
| 677 | + .content(payload)) |
| 678 | + .andExpect(status().isForbidden()); |
| 679 | + |
| 680 | + // Verify no external services were called since validation failed early |
| 681 | + wireMockServer.verify(0, WireMock.getRequestedFor(WireMock.urlMatching(".*"))); |
| 682 | + wireMockServer.verify(0, WireMock.postRequestedFor(WireMock.urlMatching(".*"))); |
| 683 | + wireMockServer.verify(0, WireMock.putRequestedFor(WireMock.urlMatching(".*"))); |
| 684 | + } |
| 685 | + |
629 | 686 | }
|
0 commit comments