public void CanRetrieveIdOfChild () { // given var obj = new KspObject ("OBJ") .AddChild (new KspCraftObject ()) .AddChild (new KspPartObject ()) .AddChild (new KspPartObject ()) .AddChild (new KspPartObject ()) .AddChild (new KspCraftObject ()); // when / then Assert.That (obj.IdOfChild (obj.Children [0] as KspCraftObject), Is.EqualTo (0)); // Ids are per object-type Assert.That (obj.IdOfChild (obj.Children [4] as KspCraftObject), Is.EqualTo (1)); Assert.That (obj.IdOfChild (obj.Children [1] as KspPartObject), Is.EqualTo (0)); Assert.That (obj.IdOfChild (obj.Children [2] as KspPartObject), Is.EqualTo (1)); Assert.That (obj.IdOfChild (obj.Children [3] as KspPartObject), Is.EqualTo (2)); }