View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  
20  package org.apache.myfaces.tobago.internal.layout;
21  
22  import org.apache.myfaces.tobago.layout.MeasureList;
23  import org.junit.jupiter.api.Assertions;
24  import org.junit.jupiter.api.Test;
25  
26  public class GridUnitTest {
27  
28    @Test
29    public void test1x1() {
30  
31      final Grid grid = new Grid(MeasureList.parse("*"), MeasureList.parse("*"));
32      Assertions.assertEquals(1, grid.getColumns().getSize());
33      Assertions.assertEquals(1, grid.getRows().getSize());
34      Assertions.assertEquals(""
35          + "┌─┐\n"
36          + "│◌│\n"
37          + "└─┘\n", grid.gridAsString());
38  
39      grid.add(new OriginCell(null), 1, 1);
40      Assertions.assertEquals(1, grid.getColumns().getSize());
41      Assertions.assertEquals(1, grid.getRows().getSize());
42      Assertions.assertEquals(""
43          + "┏━┓\n"
44          + "┃█┃\n"
45          + "┗━┛\n", grid.gridAsString());
46  
47      grid.add(new OriginCell(null), 1, 1);
48      Assertions.assertEquals(1, grid.getColumns().getSize());
49      Assertions.assertEquals(2, grid.getRows().getSize());
50      Assertions.assertEquals(""
51          + "┏━┓\n"
52          + "┃█┃\n"
53          + "┣━┫\n"
54          + "┃█┃\n"
55          + "┗━┛\n", grid.gridAsString());
56  
57      grid.add(new OriginCell(null), 1, 2);
58      Assertions.assertEquals(1, grid.getColumns().getSize());
59      Assertions.assertEquals(4, grid.getRows().getSize());
60      Assertions.assertEquals(""
61          + "┏━┓\n"
62          + "┃█┃\n"
63          + "┣━┫\n"
64          + "┃█┃\n"
65          + "┣━┫\n"
66          + "┃█┃\n"
67          + "┠─┨\n"
68          + "┃⬇┃\n"
69          + "┗━┛\n", grid.gridAsString());
70  
71      // with warning
72      grid.add(new OriginCell(null), 2, 1);
73      Assertions.assertEquals(1, grid.getColumns().getSize());
74      Assertions.assertEquals(5, grid.getRows().getSize());
75      Assertions.assertEquals(""
76          + "┏━┓\n"
77          + "┃█┃\n"
78          + "┣━┫\n"
79          + "┃█┃\n"
80          + "┣━┫\n"
81          + "┃█┃\n"
82          + "┠─┨\n"
83          + "┃⬇┃\n"
84          + "┣━┫\n"
85          + "┃✖┃\n"
86          + "┗━┛\n", grid.gridAsString());
87    }
88  
89    @Test
90    public void test2x1() {
91  
92      final Grid grid = new Grid(MeasureList.parse("*;*"), MeasureList.parse("*"));
93      Assertions.assertEquals(2, grid.getColumns().getSize());
94      Assertions.assertEquals(1, grid.getRows().getSize());
95      Assertions.assertEquals(""
96          + "┌─┬─┐\n"
97          + "│◌│◌│\n"
98          + "└─┴─┘\n", grid.gridAsString());
99  
100     grid.add(new OriginCell(null), 1, 1);
101     Assertions.assertEquals(2, grid.getColumns().getSize());
102     Assertions.assertEquals(1, grid.getRows().getSize());
103     Assertions.assertEquals(""
104         + "┏━┱─┐\n"
105         + "┃█┃◌│\n"
106         + "┗━┹─┘\n", grid.gridAsString());
107 
108     grid.add(new OriginCell(null), 1, 1);
109     Assertions.assertEquals(2, grid.getColumns().getSize());
110     Assertions.assertEquals(1, grid.getRows().getSize());
111     Assertions.assertEquals(""
112         + "┏━┳━┓\n"
113         + "┃█┃█┃\n"
114         + "┗━┻━┛\n", grid.gridAsString());
115 
116     grid.add(new OriginCell(null), 2, 2);
117     Assertions.assertEquals(2, grid.getColumns().getSize());
118     Assertions.assertEquals(3, grid.getRows().getSize());
119     Assertions.assertEquals(""
120         + "┏━┳━┓\n"
121         + "┃█┃█┃\n"
122         + "┣━╇━┫\n"
123         + "┃█│➞┃\n"
124         + "┠─┼─┨\n"
125         + "┃⬇│⬇┃\n"
126         + "┗━┷━┛\n", grid.gridAsString());
127 
128     grid.add(new OriginCell(null), 1, 2);
129     Assertions.assertEquals(2, grid.getColumns().getSize());
130     Assertions.assertEquals(5, grid.getRows().getSize());
131     Assertions.assertEquals(""
132         + "┏━┳━┓\n"
133         + "┃█┃█┃\n"
134         + "┣━╇━┫\n"
135         + "┃█│➞┃\n"
136         + "┠─┼─┨\n"
137         + "┃⬇│⬇┃\n"
138         + "┣━╈━┩\n"
139         + "┃█┃◌│\n"
140         + "┠─╂─┤\n"
141         + "┃⬇┃◌│\n"
142         + "┗━┹─┘\n", grid.gridAsString());
143 
144     grid.add(new OriginCell(null), 1, 1);
145     Assertions.assertEquals(2, grid.getColumns().getSize());
146     Assertions.assertEquals(5, grid.getRows().getSize());
147     Assertions.assertEquals(""
148         + "┏━┳━┓\n"
149         + "┃█┃█┃\n"
150         + "┣━╇━┫\n"
151         + "┃█│➞┃\n"
152         + "┠─┼─┨\n"
153         + "┃⬇│⬇┃\n"
154         + "┣━╈━┫\n"
155         + "┃█┃█┃\n"
156         + "┠─╊━┩\n"
157         + "┃⬇┃◌│\n"
158         + "┗━┹─┘\n", grid.gridAsString());
159 
160     grid.add(new OriginCell(null), 1, 2);
161     Assertions.assertEquals(2, grid.getColumns().getSize());
162     Assertions.assertEquals(6, grid.getRows().getSize());
163     Assertions.assertEquals(""
164         + "┏━┳━┓\n"
165         + "┃█┃█┃\n"
166         + "┣━╇━┫\n"
167         + "┃█│➞┃\n"
168         + "┠─┼─┨\n"
169         + "┃⬇│⬇┃\n"
170         + "┣━╈━┫\n"
171         + "┃█┃█┃\n"
172         + "┠─╊━┫\n"
173         + "┃⬇┃█┃\n"
174         + "┡━╉─┨\n"
175         + "│◌┃⬇┃\n"
176         + "└─┺━┛\n", grid.gridAsString());
177 
178     grid.add(new OriginCell(null), 2, 1);
179     // fehler
180     Assertions.assertEquals(2, grid.getColumns().getSize());
181     Assertions.assertEquals(6, grid.getRows().getSize());
182   }
183 
184   @Test
185   public void test5x5() {
186 
187     final Grid grid = new Grid(MeasureList.parse("*;*;*;*;*"), MeasureList.parse("*;*;*;*;*"));
188     Assertions.assertEquals(5, grid.getColumns().getSize());
189     Assertions.assertEquals(5, grid.getRows().getSize());
190     Assertions.assertEquals(""
191         + "┌─┬─┬─┬─┬─┐\n"
192         + "│◌│◌│◌│◌│◌│\n"
193         + "├─┼─┼─┼─┼─┤\n"
194         + "│◌│◌│◌│◌│◌│\n"
195         + "├─┼─┼─┼─┼─┤\n"
196         + "│◌│◌│◌│◌│◌│\n"
197         + "├─┼─┼─┼─┼─┤\n"
198         + "│◌│◌│◌│◌│◌│\n"
199         + "├─┼─┼─┼─┼─┤\n"
200         + "│◌│◌│◌│◌│◌│\n"
201         + "└─┴─┴─┴─┴─┘\n", grid.gridAsString());
202 
203     grid.add(new OriginCell(null), 1, 2);
204     grid.add(new OriginCell(null), 1, 3);
205     grid.add(new OriginCell(null), 1, 1);
206     grid.add(new OriginCell(null), 2, 1);
207     grid.add(new OriginCell(null), 3, 1);
208     grid.add(new OriginCell(null), 1, 1);
209     grid.add(new OriginCell(null), 1, 1);
210     grid.add(new OriginCell(null), 1, 3);
211     grid.add(new OriginCell(null), 1, 1);
212     grid.add(new OriginCell(null), 3, 1);
213     grid.add(new OriginCell(null), 1, 2);
214     grid.add(new OriginCell(null), 2, 1);
215     grid.add(new OriginCell(null), 1, 1);
216     Assertions.assertEquals(5, grid.getColumns().getSize());
217     Assertions.assertEquals(5, grid.getRows().getSize());
218     Assertions.assertEquals(""
219         + "┏━┳━┳━┳━┯━┓\n"
220         + "┃█┃█┃█┃█│➞┃\n"
221         + "┠─╂─╊━╇━┿━┫\n"
222         + "┃⬇┃⬇┃█│➞│➞┃\n"
223         + "┣━╉─╊━╈━╈━┫\n"
224         + "┃█┃⬇┃█┃█┃█┃\n"
225         + "┣━╇━╇━╉─╊━┫\n"
226         + "┃█│➞│➞┃⬇┃█┃\n"
227         + "┣━┿━╈━╉─╂─┨\n"
228         + "┃█│➞┃█┃⬇┃⬇┃\n"
229         + "┗━┷━┻━┻━┻━┛\n", grid.gridAsString());
230   }
231 }
232 
233