11package fr .insee .bpm .metadata .reader ;
22
3+ import fr .insee .bpm .TestConstants ;
4+ import fr .insee .bpm .metadata .Constants ;
35import fr .insee .bpm .metadata .model .Group ;
46import fr .insee .bpm .metadata .model .MetadataModel ;
57import fr .insee .bpm .metadata .model .VariablesMap ;
911import java .io .InputStream ;
1012import java .nio .file .Path ;
1113
12- import static org .junit . jupiter .api .Assertions .* ;
14+ import static org .assertj . core .api .AssertionsForClassTypes . assertThat ;
1315
1416class ReaderUtilsTest {
17+ static final Path lunaticSamplesPath = Path .of (TestConstants .UNIT_TESTS_DIRECTORY , "lunatic" );
18+ static final Path ddiSamplesPath = Path .of (TestConstants .UNIT_TESTS_DIRECTORY , "ddi" );
19+
1520
1621 @ Test
1722 void getMetadataFromDDIAndLunatic_should_add_filter_variables_for_web () throws Exception {
1823 // GIVEN
1924 InputStream ddiStream = new FileInputStream (
20- Path . of ( "src/test/resources/unit_tests/ddi/ ddi-log-2021-x21-web.xml" ).toFile ()
25+ ddiSamplesPath . resolve ( " ddi-log-2021-x21-web.xml" ).toFile ()
2126 );
2227 InputStream lunaticStream = new FileInputStream (
23- Path . of ( "src/test/resources/unit_tests/lunatic/ log2021x21_web.json" ).toFile ());
28+ lunaticSamplesPath . resolve ( " log2021x21_web.json" ).toFile ());
2429
2530 // WHEN
2631 MetadataModel metadataModel = ReaderUtils .getMetadataFromDDIAndLunatic (
@@ -32,25 +37,27 @@ void getMetadataFromDDIAndLunatic_should_add_filter_variables_for_web() throws E
3237 // THEN
3338 VariablesMap vars = metadataModel .getVariables ();
3439
35- assertTrue (vars .hasVariable ("CADR" ));
36- assertTrue (vars .hasVariable ("FILTER_RESULT_CADR" ));
40+ assertThat (vars .hasVariable ("CADR" )). isTrue ( );
41+ assertThat (vars .hasVariable ("FILTER_RESULT_CADR" )). isTrue ( );
3742
3843 Group cadrGroup = vars .getVariable ("CADR" ).getGroup ();
3944 Group filterGroup = vars .getVariable ("FILTER_RESULT_CADR" ).getGroup ();
4045
4146
42- // Assert que FILTER_RESULT_CADR n'a pas été envoyé dans RACINE
43- assertEquals (cadrGroup , filterGroup , "FILTER_RESULT_CADR should be at the same group as CADR" );
47+ // Assert that FILTER_RESULT_CADR n'a pas été envoyé dans RACINE
48+ assertThat (filterGroup )
49+ .as ("FILTER_RESULT_CADR should be at the same group as CADR" )
50+ .isEqualTo (cadrGroup );
4451 }
4552
4653
4754 @ Test
4855 void getMetadataFromDDIAndLunatic_should_add_missing_variables_for_tel () throws Exception {
4956 InputStream ddiStream = new FileInputStream (
50- Path . of ( "src/test/resources/unit_tests/ddi/ ddi-log-2021-x21-web.xml" ).toFile ()
57+ ddiSamplesPath . resolve ( " ddi-log-2021-x21-web.xml" ).toFile ()
5158 );
5259 InputStream lunaticStream = new FileInputStream (
53- Path . of ( "src/test/resources/unit_tests/lunatic/ log2021x21_tel.json" ).toFile ());
60+ lunaticSamplesPath . resolve ( " log2021x21_tel.json" ).toFile ());
5461
5562 MetadataModel metadataModel = ReaderUtils .getMetadataFromDDIAndLunatic (
5663 "file://ddi-log-2021-x21-web.xml" ,
@@ -59,15 +66,15 @@ void getMetadataFromDDIAndLunatic_should_add_missing_variables_for_tel() throws
5966 );
6067
6168 VariablesMap vars = metadataModel .getVariables ();
62- assertTrue (vars .hasVariable ("CADR" ));
63- assertTrue (vars .hasVariable ("CADR_MISSING" ));
69+ assertThat (vars .hasVariable ("CADR" )). isTrue ( );
70+ assertThat (vars .hasVariable ("CADR_MISSING" )). isTrue ( );
6471 }
6572
6673 @ Test
6774 void getMetadataFromDDIAndLunatic_noLunaticFile_should_returnDDIVariablesOnly () throws Exception {
6875 // GIVEN
6976 InputStream ddiStream = new FileInputStream (
70- Path . of ( "src/test/resources/unit_tests/ddi/ ddi-log-2021-x21-web.xml" ).toFile ()
77+ ddiSamplesPath . resolve ( " ddi-log-2021-x21-web.xml" ).toFile ()
7178 );
7279
7380 // WHEN
@@ -80,9 +87,60 @@ void getMetadataFromDDIAndLunatic_noLunaticFile_should_returnDDIVariablesOnly()
8087 // THEN
8188 VariablesMap vars = metadataModel .getVariables ();
8289
83- assertTrue (vars .hasVariable ("CADR" ));
84- assertFalse (vars .hasVariable ("CADR_MISSING" ));
85- assertFalse (vars .hasVariable ("FILTER_RESULT_CADR" ));
90+ assertThat (vars .hasVariable ("CADR" )).isTrue ();
91+ assertThat (vars .hasVariable ("CADR_MISSING" )).isFalse ();
92+ assertThat (vars .hasVariable ("FILTER_RESULT_CADR" )).isFalse ();
93+ }
94+
95+ @ Test
96+ void getMetadataFromDDIAndLunatic_should_add_link_variables () throws Exception {
97+ // GIVEN
98+ InputStream ddiStream = new FileInputStream (
99+ ddiSamplesPath .resolve ("ddi-SAMPLETEST-DATAONLY-v1.xml" ).toFile ()
100+ );
101+ InputStream lunaticStream = new FileInputStream (
102+ lunaticSamplesPath .resolve ("lunaticSAMPLETEST-DATAONLY-v1.json" ).toFile ()
103+ );
104+
105+ // WHEN
106+ MetadataModel metadataModel = ReaderUtils .getMetadataFromDDIAndLunatic (
107+ "file://ddi-SAMPLETEST-DATAONLY-v1.xml" ,
108+ ddiStream ,
109+ lunaticStream
110+ );
111+
112+ // THEN
113+ VariablesMap vars = metadataModel .getVariables ();
114+
115+ // Precondition: LIENS variable must exist
116+ assertThat (vars .hasVariable (Constants .LIENS )).isTrue ();
117+
118+ // Expected behavior: link variables (LIENx) must be added
119+ for (int i = 1 ; i < Constants .MAX_LINKS_ALLOWED ; i ++) {
120+ assertThat (vars .hasVariable (Constants .LIEN + i ))
121+ .as ("Missing variable: %s" , Constants .LIEN + i )
122+ .isTrue ();
123+ }
124+
125+ }
126+
127+
128+ @ Test
129+ void getMetadataFromDDIAndLunatic_noLunaticFile_should_not_add_link_variables () throws Exception {
130+ InputStream ddiStream = new FileInputStream (
131+ ddiSamplesPath .resolve ("ddi-log-2021-x21-web.xml" ).toFile ()
132+ );
133+
134+ MetadataModel metadataModel = ReaderUtils .getMetadataFromDDIAndLunatic (
135+ "file://ddi-log-2021-x21-web.xml" ,
136+ ddiStream ,
137+ null
138+ );
139+
140+ VariablesMap vars = metadataModel .getVariables ();
141+
142+ assertThat (vars .hasVariable (Constants .LIENS )).isFalse ();
143+ assertThat (vars .hasVariable (Constants .LIEN + "1" )).isFalse ();
86144 }
87145
88146
0 commit comments