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

File GenDataInspectorTest.java

 

Code metrics

0
11
10
4
93
71
10
0.91
1.1
2.5
1

Classes

Class Line # Actions
GenDataInspectorTest 16 9 0% 5 0
1.0100%
SampleTestInstance 68 0 0% 3 3
0.00%
SampleTestInstance.FacetProvider1 78 1 0% 1 2
0.00%
SampleTestInstance.FacetProvider2 86 1 0% 1 2
0.00%
 

Contributing tests

This file is covered by 5 tests. .

Source view

1    package guru.mikelue.foxglove.annotation;
2   
3    import org.junit.jupiter.api.AfterEach;
4    import org.junit.jupiter.api.BeforeEach;
5    import org.junit.jupiter.params.ParameterizedTest;
6    import org.junit.jupiter.params.provider.CsvSource;
7   
8    import guru.mikelue.misc.testlib.AbstractTestBase;
9   
10    import guru.mikelue.foxglove.TableFacet;
11    import guru.mikelue.foxglove.functional.TableFacetProvider;
12    import guru.mikelue.foxglove.jdbc.JdbcTableFacet;
13   
14    import static org.assertj.core.api.Assertions.assertThat;
15   
 
16    public class GenDataInspectorTest extends AbstractTestBase {
 
17  5 toggle public GenDataInspectorTest() {}
18   
 
19  5 toggle @BeforeEach
20    void setup() {}
21   
 
22  5 toggle @AfterEach
23    void tearDown() {}
24   
25    /**
26    * Tests whether or not using default {@DataGeneratorSource} from {@link GenData}.
27    */
 
28  2 toggle @ParameterizedTest
29    @CsvSource({
30    "byDefault,true",
31    "byNamed,false",
32    })
33    void useDefaultDataGenerator(
34    String sampleMethodName, boolean expectedUseDefault
35    ) throws NoSuchMethodException {
36  2 var method = SampleTestInstance.class.getDeclaredMethod(sampleMethodName);
37  2 var testedAnnotation = method.getAnnotation(GenData.class);
38  2 var testedInspector = GenDataInspector.of(testedAnnotation);
39   
40  2 assertThat(testedInspector.useDefaultDataGenerator())
41    .isEqualTo(expectedUseDefault);
42    }
43   
44    /**
45    * Tests whether or not using default {@TableFacetsSource} from {@link GenData}.
46    */
 
47  3 toggle @ParameterizedTest
48    @CsvSource({
49    "byDefault,true,0",
50    "byNamed,false,1",
51    "multipleTableFacets,false,2",
52    })
53    void useDefaultTableFacets(
54    String sampleMethodName,
55    boolean expectedUseDefault, int expectedNumberOfFacets
56    ) throws NoSuchMethodException {
57  3 var method = SampleTestInstance.class.getDeclaredMethod(sampleMethodName);
58  3 var testedAnnotation = method.getAnnotation(GenData.class);
59  3 var testedInspector = GenDataInspector.of(testedAnnotation);
60   
61  3 assertThat(testedInspector.useDefaultTableFacets())
62    .isEqualTo(expectedUseDefault);
63  3 assertThat(testedInspector.numberOfTableFacets())
64    .isEqualTo(expectedNumberOfFacets);
65    }
66    }
67   
 
68    class SampleTestInstance {
 
69  0 toggle @GenData
70    void byDefault() {}
71   
 
72  0 toggle @GenData(generatorName = "customGenerator", facetsNames = {"customFacet"})
73    void byNamed() {}
74   
 
75  0 toggle @GenData(value = { FacetProvider1.class }, facets = { FacetProvider2.class })
76    void multipleTableFacets() {}
77   
 
78    class FacetProvider1 implements TableFacetProvider<TableFacet> {
 
79  0 toggle @Override
80    public TableFacet getOne()
81    {
82  0 return JdbcTableFacet.builder("table_1").build();
83    }
84    }
85   
 
86    class FacetProvider2 implements TableFacetProvider<TableFacet> {
 
87  0 toggle @Override
88    public TableFacet getOne()
89    {
90  0 return JdbcTableFacet.builder("table_2").build();
91    }
92    }
93    }