@@ -185,24 +185,44 @@ class CapsuleTest {
185185
186186 @Test
187187 fun `DependencyException should provide context on which class creation that failed` () {
188- class ComplexGreeter (
189- val string : String ,
190- val double : Double
191- ) : Greeter {
192- override fun hello (): String = " foo"
188+ try {
189+ val capsule = Capsule {}
190+ capsule.get<GrandParent >()
191+ assertTrue(false )
192+ } catch (e: DependencyException ) {
193+ val expected = listOf (
194+ " io.nexure.capsule.GrandParent" ,
195+ " io.nexure.capsule.Parent" ,
196+ " io.nexure.capsule.Child" ,
197+ " double"
198+ )
199+ assertEquals(expected, e.children())
193200 }
201+ }
194202
195- val capsule = Capsule {}
203+ @Test
204+ fun `DependencyException should provide context on which class creation that failed from first missing class` () {
196205 try {
197- val g = capsule.get<ComplexGreeter >()
206+ val capsule = Capsule {
207+ GrandParent (get())
208+ }
209+ capsule.get<GrandParent >()
198210 assertTrue(false )
199211 } catch (e: DependencyException ) {
200- assertEquals(" double" , e.rootKey())
201- assertEquals(" Unable to provide dependency for class double" , e.message)
212+ val expected = listOf (
213+ " io.nexure.capsule.Parent" ,
214+ " io.nexure.capsule.Child" ,
215+ " double"
216+ )
217+ assertEquals(expected, e.children())
202218 }
203219 }
204220}
205221
222+ class Child (val double : Double )
223+ class Parent (val child : Child )
224+ class GrandParent (val parent : Parent )
225+
206226interface Greeter {
207227 fun hello (): String
208228}
0 commit comments