public void TestAIBuild() { //Setup GameController gc = new GameController(true); GameData gd = new GameData("test", 3, 1, new Random()); var testAISuccess = new PlayerData("rand", true); testAISuccess.Name = "Success"; for (int i = 0; i < 6; i++) { testAISuccess.Workshop.Add(new PartData(5 - i, 1, i)); } var testAIFailure = new PlayerData("rand", true); testAIFailure.Name = "Failure"; for (int i = 0; i < 2; i++) { testAIFailure.Workshop.Add(new PartData(5 - i, 1, i)); } var testAIUpgrade = new PlayerData("rand", true); testAIUpgrade.Name = "Upgrade"; testAIUpgrade.Workshop.Add(new PartData(4, 1, 0)); testAIUpgrade.Workshop.Add(new PartData(5, 1, 5)); PartData[] partsHolder = new PartData[6]; for (int i = 0; i < 6; i++) { partsHolder[i] = (new PartData(i, 3, 3)); } testAIUpgrade.Monster = new MonsterData("testMonst", partsHolder); gd.AiPlayers = new PlayerData[3] { testAISuccess, testAIFailure, testAIUpgrade }; var expected = new PartData[6]; for (int i = 0; i < 6; i++) { expected[i] = new PartData(i, 1, 5 - i); } //test method gc.AIBuildTurn(gd); //verify var monsterList = gd.AiPlayers[0].Monster.Parts; for (int i = 0; i < monsterList.Length; i++) { Assert.AreEqual(expected[i].PartStructure, monsterList[i].PartStructure); Assert.AreEqual(expected[i].PartRarity, monsterList[i].PartRarity); Assert.AreEqual(expected[i].PartType, monsterList[i].PartType); } Assert.AreEqual(0, gd.AiPlayers[0].Workshop.Count); Assert.IsNull(gd.AiPlayers[1].Monster); Assert.AreEqual(2, gd.AiPlayers[1].Workshop.Count); monsterList = gd.AiPlayers[2].Monster.Parts; for (int i = 0; i < 4; i++) { Assert.AreEqual(3, monsterList[i].PartStructure); Assert.AreEqual(3, monsterList[i].PartRarity); Assert.AreEqual(expected[i].PartType, monsterList[i].PartType); } Assert.AreEqual(1, monsterList[4].PartStructure); Assert.AreEqual(0, monsterList[4].PartRarity); Assert.AreEqual(4, monsterList[4].PartType); Assert.AreEqual(3, monsterList[5].PartStructure); Assert.AreEqual(3, monsterList[5].PartRarity); Assert.AreEqual(5, monsterList[5].PartType); Assert.AreEqual(0, gd.AiPlayers[2].Workshop.Count); }