public void TestMapConfirmation() { //use tile 0,0, since there are no units there. List <string> expectedActions = new List <string> { "Units", "Save", "End" }; //we don't test navigating the menu, because that's UI and will be handled in Unity. //Instead, we have separate "Display Units", "Save", and "End Turn" test methods MenuOpenedAction mapOptions = session.OnConfirmationInputReceived(0, 0)[0] as MenuOpenedAction; Assert.IsNotNull(mapOptions, "Map Options was null"); foreach (string s in mapOptions.OpenedMenu.Actions) { Assert.IsTrue(expectedActions.Contains(s), "Expected action did not contain: " + s); } foreach (string s in expectedActions) { Assert.IsTrue(mapOptions.OpenedMenu.Actions.Contains(s), "Map Options contained additionally: " + s); } }
public void TestUnitOrderAttackAfterMove() { session.StartTurn(session.PlayerTeam); //select Hector session.OnConfirmationInputReceived(20, 13); //move two squares north session.OnPositionHover(20, 14); session.OnPositionHover(20, 15); //there should be an "Eastern Merc" directly north of us" //we should have both "Attack" and "Wait" MenuOpenedAction unitOptions = session.OnConfirmationInputReceived(20, 15)[0] as MenuOpenedAction; Assert.IsNotNull(unitOptions, "Did not get the unit menu as expected"); Assert.AreEqual(unitOptions.OpenedMenu.MenuType, MenuTypes.Unit, "Did not get a unit menu"); Assert.IsTrue(unitOptions.OpenedMenu.Actions.Contains("Attack"), "Did not have Attack as expected"); //select "Attack" AttackDetailsMenuData attackMenu = (session.OnConfirmationInputReceived(MenuTypes.Unit, "Attack")[0] as MenuOpenedAction).OpenedMenu as AttackDetailsMenuData; Assert.IsNotNull(attackMenu, "Did not get the attack details menu as expected"); Assert.AreEqual(attackMenu.MenuType, MenuTypes.AttackDetails, "Did not get a attack details menu"); Assert.IsTrue(attackMenu.Actions.Contains("Attack"), "Did not have Attack as expected"); //Trigger the attack List <GameAction> attackResults = session.OnConfirmationInputReceived(MenuTypes.AttackDetails, "Attack"); CombatHitAction cha = attackResults[0] as CombatHitAction; CombatDefenderDefeatAction cdda = attackResults[1] as CombatDefenderDefeatAction; Assert.IsNotNull(cha, "Hector did not Hit"); Assert.IsNotNull(cdda, "Hector did not win outright."); Assert.IsTrue(attackResults.Count > 3, "Did not include move actions"); }
public void TestUnitSelection() { session.StartTurn(session.PlayerTeam); //we don't test navigating the menu, because that's UI and will be handled in Unity. //First confirm that we can't select someone who's on the wrong team MenuOpenedAction mapOptions = session.OnConfirmationInputReceived(1, 10)[0] as MenuOpenedAction; Assert.IsNotNull(mapOptions, "Mistakenly selected Erik. It's not his turn"); Assert.IsTrue(mapOptions.OpenedMenu.MenuType == MenuTypes.Map, "Did not open map on enemy unit"); MenuOpenedAction mapOptions2 = session.OnConfirmationInputReceived(20, 13)[0] as MenuOpenedAction; Assert.IsNull(mapOptions2, "Somehow wound up with a menu instead of Hector"); }
public void TestUnitOrderWaitInPlace() { session.StartTurn(session.PlayerTeam); //select Hector UnitSelectedAction hectorEntity = session.OnConfirmationInputReceived(20, 13)[0] as UnitSelectedAction; Assert.IsNotNull(hectorEntity, "Did not select Hector"); //re-select Hector's square to "move" him there. MenuOpenedAction unitOptions = session.OnConfirmationInputReceived(20, 13)[0] as MenuOpenedAction; Assert.IsNotNull(unitOptions, "Did not get the unit menu as expected"); Assert.AreEqual(unitOptions.OpenedMenu.MenuType, MenuTypes.Unit, "Did not get a unit menu"); Assert.IsTrue(unitOptions.OpenedMenu.Actions.Contains("Wait"), "Did not have Wait as expected"); //select "Wait" UnitWaitAction waitCommand = session.OnConfirmationInputReceived(MenuTypes.Unit, "Wait")[0] as UnitWaitAction; Assert.IsNotNull(waitCommand); }