@ -519,6 +519,31 @@ public class ConfigTest {
assertFalse ( itr . hasNext ( ) ) ;
}
@Test
public void test_ReadNamesInSectionRecursive ( )
throws ConfigInvalidException {
String baseConfigString = "[core]\n" + "logAllRefUpdates = true\n" ;
String configString = "[core]\n" + "repositoryFormatVersion = 0\n"
+ "filemode = false\n" ;
final Config c = parse ( configString , parse ( baseConfigString ) ) ;
Set < String > names = c . getNames ( "core" , true ) ;
assertEquals ( "Core section size" , 3 , names . size ( ) ) ;
assertTrue ( "Core section should contain \"filemode\"" ,
names . contains ( "filemode" ) ) ;
assertTrue ( "Core section should contain \"repositoryFormatVersion\"" ,
names . contains ( "repositoryFormatVersion" ) ) ;
assertTrue ( "Core section should contain \"logAllRefUpdates\"" ,
names . contains ( "logAllRefUpdates" ) ) ;
assertTrue ( "Core section should contain \"logallrefupdates\"" ,
names . contains ( "logallrefupdates" ) ) ;
Iterator < String > itr = names . iterator ( ) ;
assertEquals ( "filemode" , itr . next ( ) ) ;
assertEquals ( "repositoryFormatVersion" , itr . next ( ) ) ;
assertEquals ( "logAllRefUpdates" , itr . next ( ) ) ;
assertFalse ( itr . hasNext ( ) ) ;
}
@Test
public void test010_readNamesInSubSection ( ) throws ConfigInvalidException {
String configString = "[a \"sub1\"]\n" //
@ -540,6 +565,30 @@ public class ConfigTest {
assertTrue ( "Subsection should contain \"b\"" , names . contains ( "b" ) ) ;
}
@Test
public void readNamesInSubSectionRecursive ( ) throws ConfigInvalidException {
String baseConfigString = "[a \"sub1\"]\n" //
+ "x = 0\n" //
+ "y = false\n" //
+ "[a \"sub2\"]\n" //
+ "A=0\n" ; //
String configString = "[a \"sub1\"]\n" //
+ "z = true\n" //
+ "[a \"sub2\"]\n" //
+ "B=1\n" ;
final Config c = parse ( configString , parse ( baseConfigString ) ) ;
Set < String > names = c . getNames ( "a" , "sub1" , true ) ;
assertEquals ( "Subsection size" , 3 , names . size ( ) ) ;
assertTrue ( "Subsection should contain \"x\"" , names . contains ( "x" ) ) ;
assertTrue ( "Subsection should contain \"y\"" , names . contains ( "y" ) ) ;
assertTrue ( "Subsection should contain \"z\"" , names . contains ( "z" ) ) ;
names = c . getNames ( "a" , "sub2" , true ) ;
assertEquals ( "Subsection size" , 2 , names . size ( ) ) ;
assertTrue ( "Subsection should contain \"A\"" , names . contains ( "A" ) ) ;
assertTrue ( "Subsection should contain \"a\"" , names . contains ( "a" ) ) ;
assertTrue ( "Subsection should contain \"B\"" , names . contains ( "B" ) ) ;
}
@Test
public void testQuotingForSubSectionNames ( ) {
String resultPattern = "[testsection \"{0}\"]\n\ttestname = testvalue\n" ;
@ -584,7 +633,12 @@ public class ConfigTest {
private static Config parse ( final String content )
throws ConfigInvalidException {
final Config c = new Config ( null ) ;
return parse ( content , null ) ;
}
private static Config parse ( final String content , Config baseConfig )
throws ConfigInvalidException {
final Config c = new Config ( baseConfig ) ;
c . fromText ( content ) ;
return c ;
}