public void Can_parse_hocon()
{
var hocon = @"
root {
int = 1
quoted-string = ""foo""
unquoted-string = bar
concat-string = foo bar
object {
hasContent = true
}
array = [1,2,3,4]
array-concat = [[1,2] [3,4]]
array-single-element = [1 2 3 4]
array-newline-element = [
1
2
3
4
]
null = null
double = 1.23
bool = true
}
";
var config = ConfigurationFactory.ParseString(hocon);
Assert.Equal("1", config.GetString("root.int"));
Assert.Equal("1.23", config.GetString("root.double"));
Assert.Equal(true, config.GetBoolean("root.bool"));
Assert.Equal(true, config.GetBoolean("root.object.hasContent"));
Assert.Equal(null, config.GetString("root.null"));
Assert.Equal("foo", config.GetString("root.quoted-string"));
Assert.Equal("bar", config.GetString("root.unquoted-string"));
Assert.Equal("foo bar", config.GetString("root.concat-string"));
Assert.True(
new[] {1, 2, 3, 4}.SequenceEqual(ConfigurationFactory.ParseString(hocon).GetIntList("root.array")));
Assert.True(
new[] {1, 2, 3, 4}.SequenceEqual(
ConfigurationFactory.ParseString(hocon).GetIntList("root.array-newline-element")));
Assert.True(
new[] {"1 2 3 4"}.SequenceEqual(
ConfigurationFactory.ParseString(hocon).GetStringList("root.array-single-element")));
}