1. Project Clover database Wed Nov 12 2025 05:07:35 UTC
  2. Package guru.mikelue.foxglove.examples

File JUnit5SimpleTest.java

 

Code metrics

0
20
17
3
265
222
17
0.85
1.18
5.67
1

Classes

Class Line # Actions
JUnit5SimpleTest 20 18 0% 15 0
1.0100%
JUnit5SimpleTest.CarsInSilver 95 1 0% 1 0
1.0100%
JUnit5SimpleTest.NestedTest 221 1 0% 1 0
1.0100%
 

Contributing tests

This file is covered by 8 tests. .

Source view

1    package guru.mikelue.foxglove.examples;
2   
3    import java.util.List;
4    import java.util.stream.Stream;
5   
6    import org.junit.jupiter.api.AfterEach;
7    import org.junit.jupiter.api.BeforeEach;
8    import org.junit.jupiter.api.Nested;
9    import org.junit.jupiter.api.Test;
10   
11    import guru.mikelue.foxglove.TableFacet;
12    import guru.mikelue.foxglove.annotation.GenData;
13    import guru.mikelue.foxglove.annotation.TableFacetsSource;
14    import guru.mikelue.foxglove.functional.TableFacetProvider;
15    import guru.mikelue.foxglove.jdbc.JdbcTableFacet;
16   
17    import static guru.mikelue.foxglove.test.SampleSchema.TABLE_CAR;
18    import static guru.mikelue.foxglove.test.SampleSchema.TABLE_MEMBER;;
19   
 
20    public class JUnit5SimpleTest extends JUnit5ExtensionTestBase {
21    private final static int RANDOM_ROWS = gen().ints().range(5, 10).get();
22   
 
23  8 toggle public JUnit5SimpleTest() {}
24   
25    // tag::tableFacetFields[]
26    // Use direct object of TableFacet
27    @TableFacetsSource
28    TableFacet carsOfRed = JdbcTableFacet.builder(TABLE_CAR)
29    .column("cr_color").fixed("red")
30    .numberOfRows(RANDOM_ROWS).build();
31   
32    // Use provider of TableFacet
33    @TableFacetsSource
34    TableFacetProvider<TableFacet> membersInTaipei = () ->
35    JdbcTableFacet.builder(TABLE_MEMBER)
36    .column("mb_address").fixed("Taipei, Taiwan 1234 Main St")
37    .numberOfRows(RANDOM_ROWS).build();
38   
 
39  1 toggle @Test
40    @GenData(facetsNames = { "carsOfRed", "membersInTaipei" })
41    void byFields()
42    {
43    // end::tableFacetFields[]
44  1 assertNumberOfRows(
45    TABLE_CAR,
46    "cr_color = 'red'"
47    )
48    .isEqualTo(RANDOM_ROWS);
49   
50  1 assertNumberOfRows(
51    TABLE_MEMBER,
52    "mb_address = 'Taipei, Taiwan 1234 Main St'"
53    )
54    .isEqualTo(RANDOM_ROWS);
55    }
56   
57    // tag::tableFacetMethods[]
 
58  1 toggle @TableFacetsSource
59    TableFacet carsOfBlue()
60    {
61  1 return JdbcTableFacet.builder(TABLE_CAR)
62    .column("cr_color").fixed("blue")
63    .numberOfRows(RANDOM_ROWS)
64    .build();
65    }
66   
 
67  1 toggle @TableFacetsSource
68    TableFacet membersInNewYork()
69    {
70  1 return JdbcTableFacet.builder(TABLE_MEMBER)
71    .column("mb_address").fixed("New York, NY 1234 Main St")
72    .numberOfRows(RANDOM_ROWS)
73    .build();
74    }
75   
 
76  1 toggle @Test
77    @GenData(facetsNames = { "carsOfBlue", "membersInNewYork" })
78    void byMethods()
79    {
80    // end::tableFacetMethods[]
81  1 assertNumberOfRows(
82    TABLE_CAR,
83    "cr_color = 'blue'"
84    )
85    .isEqualTo(RANDOM_ROWS);
86   
87  1 assertNumberOfRows(
88    TABLE_MEMBER,
89    "mb_address = 'New York, NY 1234 Main St'"
90    )
91    .isEqualTo(RANDOM_ROWS);
92    }
93   
94    // tag::tableFacetProviderClass[]
 
95    static class CarsInSilver implements TableFacetProvider<TableFacet> {
 
96  1 toggle @Override
97    public TableFacet getOne()
98    {
99  1 return JdbcTableFacet.builder(TABLE_CAR)
100    .column("cr_color").fixed("silver")
101    .numberOfRows(RANDOM_ROWS)
102    .build();
103    }
104    }
105   
 
106  1 toggle @Test
107    @GenData({ CarsInSilver.class })
108    void byProviderClass()
109    {
110    // end::tableFacetProviderClass[]
111  1 assertNumberOfRows(
112    TABLE_CAR,
113    "cr_color = 'silver'"
114    )
115    .isEqualTo(RANDOM_ROWS);
116    }
117   
118    // tag::tableFacetsOfArray[]
 
119  1 toggle @TableFacetsSource
120    TableFacet[] carsOfArray()
121    {
122  1 return new TableFacet[] {
123    JdbcTableFacet.builder(TABLE_CAR)
124    .column("cr_color").fixed("coral")
125    .numberOfRows(RANDOM_ROWS)
126    .build(),
127    JdbcTableFacet.builder(TABLE_CAR)
128    .column("cr_model").fixed("GK-001")
129    .numberOfRows(RANDOM_ROWS)
130    .build()
131    };
132    }
 
133  1 toggle @Test
134    @GenData(facetsNames = { "carsOfArray" })
135    void byArrayOfTableFacet()
136    {
137    // end::tableFacetsOfArray[]
138  1 assertNumberOfRows(
139    TABLE_CAR,
140    "cr_color = 'coral'"
141    )
142    .isEqualTo(RANDOM_ROWS);
143  1 assertNumberOfRows(
144    TABLE_CAR,
145    "cr_model = 'GK-001'"
146    )
147    .isEqualTo(RANDOM_ROWS);
148    }
149   
150    // tag::tableFacetsOfList[]
 
151  1 toggle @TableFacetsSource
152    List<TableFacet> carsOfList()
153    {
154  1 return List.of(
155    JdbcTableFacet.builder(TABLE_CAR)
156    .column("cr_color").fixed("Crimson")
157    .numberOfRows(RANDOM_ROWS)
158    .build(),
159    JdbcTableFacet.builder(TABLE_CAR)
160    .column("cr_model").fixed("LK-002")
161    .numberOfRows(RANDOM_ROWS)
162    .build()
163    );
164    }
 
165  1 toggle @Test
166    @GenData(facetsNames = { "carsOfList" })
167    void byListOfTableFacet()
168    {
169    // end::tableFacetsOfList[]
170  1 assertNumberOfRows(
171    TABLE_CAR,
172    "cr_color = 'Crimson'"
173    )
174    .isEqualTo(RANDOM_ROWS);
175  1 assertNumberOfRows(
176    TABLE_CAR,
177    "cr_model = 'LK-002'"
178    )
179    .isEqualTo(RANDOM_ROWS);
180    }
181   
182    // tag::tableFacetsOfStream[]
 
183  1 toggle @TableFacetsSource
184    Stream<TableFacet> carsOfStream()
185    {
186  1 return Stream.of(
187    JdbcTableFacet.builder(TABLE_CAR)
188    .column("cr_color").fixed("BlueViolet")
189    .numberOfRows(RANDOM_ROWS)
190    .build(),
191    JdbcTableFacet.builder(TABLE_CAR)
192    .column("cr_model").fixed("GN-003")
193    .numberOfRows(RANDOM_ROWS)
194    .build()
195    );
196    }
 
197  1 toggle @Test
198    @GenData(facetsNames = { "carsOfStream" })
199    void byStreamOfTableFacet()
200    {
201    // end::tableFacetsOfStream[]
202  1 assertNumberOfRows(
203    TABLE_CAR,
204    "cr_color = 'BlueViolet'"
205    )
206    .isEqualTo(RANDOM_ROWS);
207  1 assertNumberOfRows(
208    TABLE_CAR,
209    "cr_model = 'GN-003'"
210    )
211    .isEqualTo(RANDOM_ROWS);
212    }
213   
214    // tag::useTableFacetOfEnclosingClass[]
215    @TableFacetsSource
216    TableFacet carsOfGreen = JdbcTableFacet.builder(TABLE_CAR)
217    .column("cr_color").fixed("green")
218    .numberOfRows(RANDOM_ROWS).build();
219   
220    @Nested
 
221    class NestedTest {
 
222  1 toggle @Test
223    @GenData(facetsNames = { "carsOfGreen" })
224    void nestedByFields()
225    {
226  1 assertNumberOfRows(
227    TABLE_CAR,
228    "cr_color = 'green'"
229    )
230    .isEqualTo(RANDOM_ROWS);
231    }
232    }
233    // end::useTableFacetOfEnclosingClass[]
234   
235    // tag::tableFacetWithName[]
236    @TableFacetsSource("carsOfRainbow")
237    TableFacet carsOfSomeColors = JdbcTableFacet.builder(TABLE_CAR)
238    .column("cr_color")
239    .roundRobin(
240    "Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet"
241    )
242    .numberOfRows(RANDOM_ROWS)
243    .build();
 
244  1 toggle @Test
245    @GenData(facetsNames = { "carsOfRainbow" })
246    void byTableFacetWithName()
247    {
248    // end::tableFacetWithName[]
249  1 assertNumberOfRows(
250    TABLE_CAR,
251    "cr_color IN ('Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet')"
252    )
253    .isEqualTo(RANDOM_ROWS);
254    }
255   
 
256  8 toggle @BeforeEach
257    void setup() {}
258   
 
259  8 toggle @AfterEach
260    void tearDown()
261    {
262   
263  8 deleteAll(TABLE_CAR, TABLE_MEMBER);
264    }
265    }