99package biz .netcentric .cq .tools .actool .configreader ;
1010
1111import java .util .Arrays ;
12+ import java .util .Collection ;
13+ import java .util .Collections ;
1214import java .util .HashSet ;
15+ import java .util .List ;
1316import java .util .Set ;
1417
1518import org .hamcrest .Matchers ;
1619import org .junit .Assert ;
1720import org .junit .Test ;
1821
22+ import com .google .common .collect .ImmutableList ;
23+
1924import biz .netcentric .cq .tools .actool .slingsettings .ExtendedSlingSettingsServiceImpl ;
2025
2126public class ConfigFilesRetrieverImplTest {
@@ -38,39 +43,112 @@ public void testExtractRunModeSpecFromName() {
3843 }
3944
4045 @ Test
41- public void testIsRelevantConfiguration () {
46+ public void testIsRelevantConfiguration () throws Exception {
4247 Set <String > currentRunmodes = new HashSet <String >(
4348 Arrays .asList ("samplecontent" , "author" , "netcentric" , "crx3tar" , "crx2" , "local" ));
4449
4550 slingSettings = new ExtendedSlingSettingsServiceImpl (currentRunmodes );
46- Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("" , "fragments" , slingSettings )));
47- Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test" , "fragments" , slingSettings )));
48- Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test.yaml" , "fragments" , slingSettings )));
49- Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test.yaml" , "fragments.publish" , slingSettings )));
50- Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test.yaml" , "fragments.author" , slingSettings )));
51- Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test.yaml" , "fragments.samplecontent" , slingSettings )));
52- Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test.yam" , "fragments.samplecontent" , slingSettings )));
53- Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test.yaml" , "fragments.samplecontent.publish" ,
54- slingSettings )));
55- Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test.yaml" , "fragments.foo.publish" , slingSettings )));
56- Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test.yaml" , "fragments.samplecontent.local" , slingSettings )));
51+ Collection <String > configFilePatterns = Collections .emptyList ();
52+ Assert .assertFalse (
53+ (ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("" ), "fragments" , slingSettings , configFilePatterns )));
54+ Assert .assertFalse (
55+ (ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test" ), "fragments" , slingSettings , configFilePatterns )));
56+ Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test.yaml" ), "fragments" , slingSettings ,
57+ configFilePatterns )));
58+ Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test.yaml" ), "fragments.publish" , slingSettings ,
59+ configFilePatterns )));
60+ Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test.yaml" ), "fragments.author" , slingSettings ,
61+ configFilePatterns )));
62+ Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test.yaml" ), "fragments.samplecontent" ,
63+ slingSettings , configFilePatterns )));
64+ Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test.yam" ), "fragments.samplecontent" ,
65+ slingSettings , configFilePatterns )));
66+ Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test.yaml" ), "fragments.samplecontent.publish" ,
67+ slingSettings , configFilePatterns )));
68+ Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test.yaml" ), "fragments.foo.publish" ,
69+ slingSettings , configFilePatterns )));
70+ Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test.yaml" ), "fragments.samplecontent.local" ,
71+ slingSettings , configFilePatterns )));
5772
5873 }
5974
6075 @ Test
61- public void testIsRelevantConfigurationWithOrCombinations () {
76+ public void testIsRelevantConfigurationWithOrCombinations () throws Exception {
6277 Set <String > currentRunmodes = new HashSet <String >(
6378 Arrays .asList ("samplecontent" , "author" , "netcentric" , "crx3tar" , "crx2" , "local" ));
6479 slingSettings = new ExtendedSlingSettingsServiceImpl (currentRunmodes );
80+ Collection <String > configFilePatterns = Collections .emptyList ();
6581 // testing 'or' combinations with
66- Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test.yaml" , "fragments.dev,local" , slingSettings )));
67- Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test.yaml" , "fragments.int,prod" , slingSettings )));
82+ Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test.yaml" ), "fragments.dev,local" ,
83+ slingSettings , configFilePatterns )));
84+ Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test.yaml" ), "fragments.int,prod" ,
85+ slingSettings , configFilePatterns )));
6886
6987 // combined 'and' and 'or'
70- Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test.yaml" , "fragments.author.dev,author.local" ,
71- slingSettings )));
72- Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration ("test.yaml" , "fragments.publish.dev,publish.local" ,
73- slingSettings )));
88+ Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test.yaml" ), "fragments.author.dev,author.local" ,
89+ slingSettings , configFilePatterns )));
90+ Assert .assertFalse (
91+ (ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("test.yaml" ), "fragments.publish.dev,publish.local" ,
92+ slingSettings , configFilePatterns )));
93+ }
94+
95+ @ Test
96+ public void testIsRelevantConfigurationsFiltered () throws Exception {
97+ Set <String > currentRunmodes = new HashSet <String >(
98+ Arrays .asList ("author" ));
99+ slingSettings = new ExtendedSlingSettingsServiceImpl (currentRunmodes );
100+ Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("/conf" , "file.yaml" ), "config.author" ,
101+ slingSettings , ImmutableList .<String > of ())));
102+ Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("/conf" , "file.yaml" ), "config.author" ,
103+ slingSettings , ImmutableList .<String > of ("/noMatch" , "/conf/.*" ))));
104+ Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("/conf" , "file.yaml" ), "config.author" ,
105+ slingSettings , ImmutableList .<String > of ("/conf/test.*.yaml" ))));
106+ Assert .assertTrue ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("/conf" , "file.yaml" ), "config.author" ,
107+ slingSettings , ImmutableList .<String > of ("/conf/.*\\ .yaml" , "/noMatch" ))));
108+ Assert .assertFalse ((ConfigFilesRetrieverImpl .isRelevantConfiguration (new StubEntry ("/conf" , "file.yaml" ), "config.author" ,
109+ slingSettings , ImmutableList .<String > of ("/nonconf.*" ))));
110+
111+ }
112+
113+ static class StubEntry implements ConfigFilesRetrieverImpl .PackageEntryOrNode {
114+
115+ private final String parentPath ;
116+ private final String name ;
117+
118+ StubEntry (String name ) {
119+ this .name = name ;
120+ this .parentPath = "/" ;
121+ }
122+
123+ StubEntry (String parentPath , String name ) {
124+ this .parentPath = parentPath ;
125+ this .name = name ;
126+ }
127+
128+ @ Override
129+ public String getName () throws Exception {
130+ return name ;
131+ }
132+
133+ @ Override
134+ public String getPath () throws Exception {
135+ return parentPath + "/" + name ;
136+ }
137+
138+ @ Override
139+ public List <ConfigFilesRetrieverImpl .PackageEntryOrNode > getChildren () throws Exception {
140+ return Collections .emptyList ();
141+ }
142+
143+ @ Override
144+ public boolean isDirectory () throws Exception {
145+ return false ;
146+ }
147+
148+ @ Override
149+ public String getContentAsString () throws Exception {
150+ throw new UnsupportedOperationException ("not implemented for testing" );
151+ }
74152 }
75153
76154}
0 commit comments