public IEnumerator _Finds_All_Unconnected_Adaptors() { GameObject testGameObject = new GameObject(); testGameObject.name = "TESTGAMEOBJECT"; GameObject testGameObject1 = new GameObject(); testGameObject1.name = "TESTGAMEOBJECT"; WeaponPart testPart = testGameObject1.AddComponent <WeaponPart>(); Adaptor adaptorLoadingMechanism = testGameObject1.AddComponent <Adaptor>(); Adaptor adaptorLoadingMechnaism2 = testGameObject1.AddComponent <Adaptor>(); testPart.Adaptors = new List <Adaptor> { adaptorLoadingMechanism, adaptorLoadingMechnaism2 }; testPart.TestSetup("NotSearchedPart", WeaponPartType.Trigger, null); WeaponStructure weaponStructure = testGameObject.AddComponent <WeaponStructure>(); weaponStructure.trigger = testPart; testGameObject1.transform.parent = testGameObject.transform; yield return(null); List <Adaptor> result = weaponStructure.FindUnconnectedAdaptorsRecursively(); Assert.Contains(adaptorLoadingMechanism, result); Assert.Contains(adaptorLoadingMechnaism2, result); Assert.AreEqual(2, result.Count); }
public IEnumerator _Replaces_WeaponPart_Correctly() { var testData = createTestWeaponStructure(); yield return(null); WeaponPart replacedPart = (WeaponPart)testData[1]; WeaponStructure weaponStructure = (WeaponStructure)testData[0]; GameObject testGameObject = new GameObject(); testGameObject.name = "TESTGAMEOBJECT"; WeaponPart replacementPart = testGameObject.AddComponent <WeaponPart>(); replacementPart.Adaptors = new List <Adaptor>(); replacementPart.TestSetup("ReplacementPart", WeaponPartType.FiringMechanism, null); WeaponPart parent = replacedPart.Parent; weaponStructure.ReplaceWeaponPart(replacedPart, replacementPart); yield return(null); Assert.AreSame(replacementPart, parent.Children[0]); Assert.Contains(replacementPart, parent.Children); Assert.AreSame(replacementPart.transform.parent, parent.Adaptors[0].ChildPartTransform); }
public IEnumerator _Replaces_TopLevel_WeaponPart_Correctly() { var testData = createTestWeaponStructure(); yield return(null); WeaponPart replacedPart = (WeaponPart)testData[2]; WeaponStructure weaponStructure = (WeaponStructure)testData[0]; GameObject testGameObject = new GameObject(); testGameObject.name = "TESTGAMEOBJECT"; WeaponPart replacementPart = testGameObject.AddComponent <WeaponPart>(); Adaptor adaptorLoadingMechanism = testGameObject.AddComponent <Adaptor>(); Adaptor adaptorLoadingMechnaism2 = testGameObject.AddComponent <Adaptor>(); adaptorLoadingMechanism.ChildPartTransform = adaptorLoadingMechanism.transform; adaptorLoadingMechnaism2.ChildPartTransform = adaptorLoadingMechnaism2.transform; adaptorLoadingMechanism.WeaponTypeOfAdaptor = WeaponPartType.LoadingMechanism; adaptorLoadingMechnaism2.WeaponTypeOfAdaptor = WeaponPartType.LoadingMechanism; replacementPart.Adaptors = new List <Adaptor> { adaptorLoadingMechanism, adaptorLoadingMechnaism2 }; replacementPart.TestSetup("ReplacementPart", WeaponPartType.Trigger, null); WeaponPart parent = replacedPart.Parent; weaponStructure.ReplaceWeaponPart(replacedPart, replacementPart); yield return(null); Assert.AreSame(((WeaponPart)testData[3]).Parent, replacementPart); //child's parent is replaced correctly Assert.Contains((WeaponPart)testData[3], replacementPart.Children); Assert.AreSame(((WeaponPart)testData[4]).Parent, replacementPart); //child's parent is replaced correctly Assert.Contains((WeaponPart)testData[4], replacementPart.Children); }
public IEnumerator _Adds_Part_To_Adaptor_Correctly() { var testData = createTestWeaponStructure(); yield return(null); WeaponStructure weaponStructure = (WeaponStructure)testData[0]; WeaponPart firingMechanism = (WeaponPart)testData[1]; Adaptor adaptor = firingMechanism.Adaptors[0]; GameObject testGameObject = new GameObject(); testGameObject.name = "TESTGAMEOBJECT"; WeaponPart newPart = testGameObject.AddComponent <WeaponPart>(); newPart.Adaptors = new List <Adaptor>(); newPart.TestSetup("NewPart", WeaponPartType.Barrel, null); weaponStructure.AddWeaponPart(adaptor, newPart); Assert.Contains(newPart, firingMechanism.Children); Assert.AreSame(newPart.transform.parent, adaptor.ChildPartTransform); }
public Object[] createTestWeaponStructure() { GameObject testGameObject = new GameObject(); testGameObject.name = "TESTGAMEOBJECT"; GameObject testGameObject1 = new GameObject(); testGameObject1.name = "TESTGAMEOBJECT"; GameObject testGameObject2 = new GameObject(); testGameObject2.name = "TESTGAMEOBJECT"; GameObject testGameObject3 = new GameObject(); testGameObject3.name = "TESTGAMEOBJECT"; GameObject testGameObject4 = new GameObject(); testGameObject4.name = "TESTGAMEOBJECT"; WeaponPart notSearchedPart = testGameObject1.AddComponent <WeaponPart>(); WeaponPart notSearchedPart2 = testGameObject2.AddComponent <WeaponPart>(); WeaponPart notSearchedPart3 = testGameObject3.AddComponent <WeaponPart>(); WeaponPart searchedPart = testGameObject4.AddComponent <WeaponPart>(); Adaptor adaptorLoadingMechanism = testGameObject1.AddComponent <Adaptor>(); Adaptor adaptorLoadingMechnaism2 = testGameObject1.AddComponent <Adaptor>(); Adaptor adaptorFiringMechanism = testGameObject2.AddComponent <Adaptor>(); Adaptor adaptorBarrel = testGameObject4.AddComponent <Adaptor>(); adaptorFiringMechanism.ChildPartTransform = adaptorFiringMechanism.transform; adaptorLoadingMechanism.ChildPartTransform = adaptorLoadingMechanism.transform; adaptorLoadingMechnaism2.ChildPartTransform = adaptorLoadingMechanism.transform; adaptorBarrel.ChildPartTransform = adaptorBarrel.transform; adaptorFiringMechanism.WeaponTypeOfAdaptor = WeaponPartType.FiringMechanism; adaptorLoadingMechanism.WeaponTypeOfAdaptor = WeaponPartType.LoadingMechanism; adaptorLoadingMechnaism2.WeaponTypeOfAdaptor = WeaponPartType.LoadingMechanism; adaptorBarrel.WeaponTypeOfAdaptor = WeaponPartType.Barrel; notSearchedPart.Adaptors = new List <Adaptor> { adaptorLoadingMechanism, adaptorLoadingMechnaism2 }; notSearchedPart2.Adaptors = new List <Adaptor> { adaptorFiringMechanism }; searchedPart.Adaptors = new List <Adaptor> { adaptorBarrel }; notSearchedPart.TestSetup("NotSearchedPart", WeaponPartType.Trigger, null); notSearchedPart2.TestSetup("NotSearchedPart2", WeaponPartType.LoadingMechanism, notSearchedPart); notSearchedPart3.TestSetup("NotSearchedPart3", WeaponPartType.LoadingMechanism, notSearchedPart); searchedPart.TestSetup("searchedPart", WeaponPartType.FiringMechanism, notSearchedPart2); notSearchedPart.AddChild(notSearchedPart2); notSearchedPart.AddChild(notSearchedPart3); notSearchedPart2.AddChild(searchedPart); notSearchedPart.ConnectChildToAdaptor(adaptorLoadingMechanism, notSearchedPart2); notSearchedPart.ConnectChildToAdaptor(adaptorLoadingMechnaism2, notSearchedPart3); notSearchedPart2.ConnectChildToAdaptor(adaptorFiringMechanism, searchedPart); WeaponStructure weaponStructure = testGameObject.AddComponent <WeaponStructure>(); weaponStructure.trigger = notSearchedPart; testGameObject1.transform.parent = testGameObject.transform; testGameObject2.transform.parent = testGameObject1.transform; testGameObject3.transform.parent = testGameObject1.transform; testGameObject4.transform.parent = testGameObject2.transform; Object[] result = new Object[5]; result[0] = weaponStructure; result[1] = searchedPart; result[2] = notSearchedPart; result[3] = notSearchedPart2; result[4] = notSearchedPart3; return(result); }