示例#1
0
        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);
        }