mirror of
https://github.com/lightbend/config.git
synced 2025-03-23 07:40:25 +08:00
add test coverage on ConfigDelayedMerge render(), relativized()
This commit is contained in:
parent
fb17706961
commit
7ed9eee67e
17
config/src/test/resources/test09.conf
Normal file
17
config/src/test/resources/test09.conf
Normal file
@ -0,0 +1,17 @@
|
||||
// This file is testing ConfigDelayedMergeObject and ConfigDelayedMerge
|
||||
|
||||
x={ q : 10 }
|
||||
y=5
|
||||
|
||||
a=1
|
||||
a.q.r.s=${b}
|
||||
a=${y}
|
||||
a=${x}
|
||||
a={ c : 3 }
|
||||
|
||||
b=${x}
|
||||
b=${y}
|
||||
|
||||
// nesting ConfigDelayed inside another one
|
||||
c=${x}
|
||||
c={ d : 600, e : ${a}, f : ${b} }
|
5
config/src/test/resources/test10.conf
Normal file
5
config/src/test/resources/test10.conf
Normal file
@ -0,0 +1,5 @@
|
||||
// this checks relativizing ConfigDelayedMerge, ConfigDelayedMergeObject
|
||||
|
||||
foo {
|
||||
include "test09.conf"
|
||||
}
|
@ -936,10 +936,44 @@ class ConfigTest extends TestUtils {
|
||||
assertEquals("This is to test classpath searches.", fromURL.getString("test-lib.description"))
|
||||
}
|
||||
|
||||
@Test
|
||||
def test09DelayedMerge() {
|
||||
val conf = ConfigFactory.parseResources(classOf[ConfigTest], "/test09.conf")
|
||||
assertEquals(classOf[ConfigDelayedMergeObject].getSimpleName,
|
||||
conf.root.get("a").getClass.getSimpleName)
|
||||
assertEquals(classOf[ConfigDelayedMerge].getSimpleName,
|
||||
conf.root.get("b").getClass.getSimpleName)
|
||||
|
||||
// a.c should work without resolving because no more merging is needed to compute it
|
||||
assertEquals(3, conf.getInt("a.c"))
|
||||
|
||||
intercept[ConfigException.NotResolved] {
|
||||
conf.getInt("a.q")
|
||||
}
|
||||
|
||||
// be sure resolving doesn't throw
|
||||
val resolved = conf.resolve()
|
||||
assertEquals(3, resolved.getInt("a.c"))
|
||||
assertEquals(5, resolved.getInt("b"))
|
||||
assertEquals(10, resolved.getInt("a.q"))
|
||||
}
|
||||
|
||||
@Test
|
||||
def test10DelayedMergeRelativizing() {
|
||||
val conf = ConfigFactory.parseResources(classOf[ConfigTest], "/test10.conf")
|
||||
val resolved = conf.resolve()
|
||||
assertEquals(3, resolved.getInt("foo.a.c"))
|
||||
assertEquals(5, resolved.getInt("foo.b"))
|
||||
assertEquals(10, resolved.getInt("foo.a.q"))
|
||||
}
|
||||
|
||||
@Test
|
||||
def renderRoundTrip() {
|
||||
for (i <- 1 to 6) {
|
||||
val conf = ConfigFactory.parseResourcesAnySyntax(classOf[ConfigTest], "test0" + i)
|
||||
for (i <- 1 to 10) {
|
||||
val numString = i.toString
|
||||
val name = "/test" + { if (numString.size == 1) "0" else "" } + numString
|
||||
val conf = ConfigFactory.parseResourcesAnySyntax(classOf[ConfigTest], name,
|
||||
ConfigParseOptions.defaults().setAllowMissing(false))
|
||||
val unresolvedRender = conf.root.render()
|
||||
val resolved = conf.resolve()
|
||||
val resolvedRender = resolved.root.render()
|
||||
|
Loading…
Reference in New Issue
Block a user