Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 00610b9

Browse files
author
barnabartha
committed
SORMAS-Foundation#2527 - extend grid template areas creator to support more cases
1 parent 3d373f1 commit 00610b9

2 files changed

Lines changed: 135 additions & 121 deletions

File tree

sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/campaigns/GridTemplateAreaCreator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,8 @@ private GridElementIndex findNextDiagramsStartPosition(
123123
if (widthAreas + startingColumn + nextWidthAreas <= nrOfGridAreaColumns) {
124124
startingColumn += widthAreas;
125125
} else {
126-
final int nextStartingColumn = startingColumn == 0 ? widthAreas : startingColumn;
126+
final int nextStartingColumn =
127+
startingColumn == 0 || (startingColumn + widthAreas) >= nrOfGridAreaColumns ? widthAreas : startingColumn + widthAreas;
127128
final int nrOfColumnsToBeParsed =
128129
nextStartingColumn + nextWidthAreas <= nrOfGridAreaColumns ? nrOfGridAreaColumns : nextStartingColumn;
129130
final GridElementIndex firstEmptyGridElement = findFirstEmptyGridElement(nrOfColumnsToBeParsed, nrOfGridAreaRows);

sormas-ui/src/test/java/de/symeda/sormas/ui/dashboard/campaigns/GridTemplateAreaCreatorTest.java

Lines changed: 133 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -13,123 +13,136 @@
1313
@RunWith(MockitoJUnitRunner.class)
1414
public class GridTemplateAreaCreatorTest {
1515

16-
@Test
17-
public void testGridTemplateCreateForDiagramsCase1(){
18-
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
19-
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 60, 100));
20-
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 40, 50));
21-
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 40, 50));
22-
23-
final String expectedResult = "'d1 d1 d1 d2 d2''d1 d1 d1 d3 d3'";
24-
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
25-
}
26-
27-
@Test
28-
public void testGridTemplateCreateForDiagramsCase2(){
29-
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
30-
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 50, 50));
31-
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 50, 50));
32-
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 50, 50));
33-
dashboardElements.add(new CampaignDashboardElement("d4", null, 4, 50, 50));
34-
35-
final String expectedResult = "'d1 d2''d3 d4'";
36-
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
37-
}
38-
39-
@Test
40-
public void testGridTemplateCreateForDiagramsCase3(){
41-
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
42-
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 50, 50));
43-
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 50, 50));
44-
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 50, 50));
45-
dashboardElements.add(new CampaignDashboardElement("d4", null, 4, 50, 50));
46-
dashboardElements.add(new CampaignDashboardElement("d5", null, 5, 50, 50));
47-
dashboardElements.add(new CampaignDashboardElement("d6", null, 6, 50, 50));
48-
49-
final String expectedResult = "'d1 d2''d3 d4''d5 d6'";
50-
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
51-
}
52-
53-
@Test
54-
public void testGridTemplateCreateForDiagramsCase4(){
55-
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
56-
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 50, 100));
57-
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 50, 100));
58-
59-
final String expectedResult = "'d1 d2'";
60-
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
61-
}
62-
63-
@Test
64-
public void testGridTemplateCreateForDiagramsCase5(){
65-
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
66-
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 40, 50));
67-
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 60, 100));
68-
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 40, 50));
69-
70-
final String expectedResult = "'d1 d1 d2 d2 d2''d3 d3 d2 d2 d2'";
71-
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
72-
}
73-
74-
@Test
75-
public void testGridTemplateCreateForDiagramsCase6(){
76-
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
77-
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 100, 100));
78-
79-
final String expectedResult = "'d1'";
80-
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
81-
}
82-
83-
@Test
84-
public void testGridTemplateCreateForDiagramsCase7(){
85-
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
86-
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 60, 100));
87-
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 40, 50));
88-
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 40, 50));
89-
dashboardElements.add(new CampaignDashboardElement("d4", null, 4, 60, 100));
90-
91-
final String expectedResult = "'d1 d1 d1 d2 d2''d1 d1 d1 d3 d3''d4 d4 d4 area2 area2''d4 d4 d4 area3 area3'";
92-
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
93-
}
94-
95-
@Test
96-
public void testGridTemplateCreateForDiagramsCase8(){
97-
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
98-
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 40, 50));
99-
100-
final String expectedResult = "'d1 area0'"; // this is questionable
101-
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
102-
}
103-
104-
@Test
105-
public void testGridTemplateCreateForDiagramsCase9(){
106-
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
107-
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 60, 100));
108-
dashboardElements.add(new CampaignDashboardElement("d2", null, 4, 100, 100));
109-
110-
final String expectedResult = "'d1 d1 d1 area0 area0''d2 d2 d2 d2 d2'";
111-
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
112-
}
113-
114-
@Test
115-
public void testGridTemplateCreateForDiagramsCase10(){
116-
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
117-
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 60, 80));
118-
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 40, 40));
119-
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 40, 40));
120-
121-
final String expectedResult = "'d1 d1 d1 d2 d2''d1 d1 d1 d3 d3'";
122-
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
123-
}
124-
125-
@Test
126-
public void testGridTemplateCreateForDiagramsCase11(){
127-
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
128-
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 60, 100));
129-
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 40, 50));
130-
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 70, 50));
131-
132-
final String expectedResult = "'d1 d1 d1 d1 d1 d1 d2 d2 d2 d2''d1 d1 d1 d1 d1 d1 area1 area1 area1 area1''d3 d3 d3 d3 d3 d3 d3 area2 area2 area2'";
133-
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
134-
}
135-
}
16+
@Test
17+
public void testGridTemplateCreateForDiagramsCase1() {
18+
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
19+
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 60, 100));
20+
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 40, 50));
21+
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 40, 50));
22+
23+
final String expectedResult = "'d1 d1 d1 d2 d2''d1 d1 d1 d3 d3'";
24+
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
25+
}
26+
27+
@Test
28+
public void testGridTemplateCreateForDiagramsCase2() {
29+
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
30+
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 50, 50));
31+
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 50, 50));
32+
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 50, 50));
33+
dashboardElements.add(new CampaignDashboardElement("d4", null, 4, 50, 50));
34+
35+
final String expectedResult = "'d1 d2''d3 d4'";
36+
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
37+
}
38+
39+
@Test
40+
public void testGridTemplateCreateForDiagramsCase3() {
41+
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
42+
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 50, 50));
43+
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 50, 50));
44+
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 50, 50));
45+
dashboardElements.add(new CampaignDashboardElement("d4", null, 4, 50, 50));
46+
dashboardElements.add(new CampaignDashboardElement("d5", null, 5, 50, 50));
47+
dashboardElements.add(new CampaignDashboardElement("d6", null, 6, 50, 50));
48+
49+
final String expectedResult = "'d1 d2''d3 d4''d5 d6'";
50+
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
51+
}
52+
53+
@Test
54+
public void testGridTemplateCreateForDiagramsCase4() {
55+
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
56+
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 50, 100));
57+
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 50, 100));
58+
59+
final String expectedResult = "'d1 d2'";
60+
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
61+
}
62+
63+
@Test
64+
public void testGridTemplateCreateForDiagramsCase5() {
65+
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
66+
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 40, 50));
67+
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 60, 100));
68+
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 40, 50));
69+
70+
final String expectedResult = "'d1 d1 d2 d2 d2''d3 d3 d2 d2 d2'";
71+
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
72+
}
73+
74+
@Test
75+
public void testGridTemplateCreateForDiagramsCase6() {
76+
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
77+
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 100, 100));
78+
79+
final String expectedResult = "'d1'";
80+
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
81+
}
82+
83+
@Test
84+
public void testGridTemplateCreateForDiagramsCase7() {
85+
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
86+
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 60, 100));
87+
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 40, 50));
88+
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 40, 50));
89+
dashboardElements.add(new CampaignDashboardElement("d4", null, 4, 60, 100));
90+
91+
final String expectedResult = "'d1 d1 d1 d2 d2''d1 d1 d1 d3 d3''d4 d4 d4 area2 area2''d4 d4 d4 area3 area3'";
92+
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
93+
}
94+
95+
@Test
96+
public void testGridTemplateCreateForDiagramsCase8() {
97+
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
98+
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 40, 50));
99+
100+
final String expectedResult = "'d1 area0'"; // this is questionable
101+
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
102+
}
103+
104+
@Test
105+
public void testGridTemplateCreateForDiagramsCase9() {
106+
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
107+
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 60, 100));
108+
dashboardElements.add(new CampaignDashboardElement("d2", null, 4, 100, 100));
109+
110+
final String expectedResult = "'d1 d1 d1 area0 area0''d2 d2 d2 d2 d2'";
111+
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
112+
}
113+
114+
@Test
115+
public void testGridTemplateCreateForDiagramsCase10() {
116+
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
117+
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 60, 80));
118+
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 40, 40));
119+
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 40, 40));
120+
121+
final String expectedResult = "'d1 d1 d1 d2 d2''d1 d1 d1 d3 d3'";
122+
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
123+
}
124+
125+
@Test
126+
public void testGridTemplateCreateForDiagramsCase11() {
127+
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
128+
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 60, 100));
129+
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 40, 50));
130+
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 70, 50));
131+
132+
final String expectedResult =
133+
"'d1 d1 d1 d1 d1 d1 d2 d2 d2 d2''d1 d1 d1 d1 d1 d1 area1 area1 area1 area1''d3 d3 d3 d3 d3 d3 d3 area2 area2 area2'";
134+
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
135+
}
136+
137+
@Test
138+
public void testGridTemplateCreateForDiagramsCase12() {
139+
final List<CampaignDashboardElement> dashboardElements = new ArrayList<>();
140+
dashboardElements.add(new CampaignDashboardElement("d1", null, 1, 30, 60));
141+
dashboardElements.add(new CampaignDashboardElement("d2", null, 2, 30, 60));
142+
dashboardElements.add(new CampaignDashboardElement("d3", null, 3, 70, 90));
143+
144+
final String expectedResult =
145+
"'d1 d1 d1 d2 d2 d2 area0 area0 area0 area0''d1 d1 d1 d2 d2 d2 area1 area1 area1 area1''d3 d3 d3 d3 d3 d3 d3 area2 area2 area2''d3 d3 d3 d3 d3 d3 d3 area3 area3 area3''d3 d3 d3 d3 d3 d3 d3 area4 area4 area4'";
146+
Assert.assertEquals(expectedResult, new GridTemplateAreaCreator(dashboardElements).getFormattedGridTemplate());
147+
}
148+
}

0 commit comments

Comments
 (0)