public void Execute_WhenCalledMultipleTimes_ShouldReturnResultAndSaveEachCommandPassed() { // Arrange const int expectedResult = 1; var card1 = new CardEntity(123, "123"); var card2 = new CardEntity(456, "456"); var command1 = new ExpireCardCommand(card1); var command2 = new ExpireCardCommand(card2); var commandExecutorStub = CommandExecutorStub.Create <ExpireCardCommand>(expectedResult); // Act var result1 = commandExecutorStub.Execute(command1); var result2 = commandExecutorStub.Execute(command2); // Assert Assert.That(result1, Is.EqualTo(expectedResult)); Assert.That(result2, Is.EqualTo(expectedResult)); Assert.That(commandExecutorStub.CommandsCalled, Is.EquivalentTo(new[] { command1, command2 })); }
public static void EnemyUnitsCanNotBeCommanded() { EditorSceneManager.NewScene(NewSceneSetup.EmptyScene); var friendlyFaction = ScriptableObject.CreateInstance <Faction>(); var enemyFaction = ScriptableObject.CreateInstance <Faction>(); var commandExecutorStub = new CommandExecutorStub(); var rtsInputStub = new RtsInputStub(); var selectionSystem = new SelectionSystem(rtsInputStub, friendlyFaction); new CommandManager(friendlyFaction, rtsInputStub, commandExecutorStub, selectionSystem); var friendlyUnit = new GameObject().AddComponent <Unit>(); var enemyUnit = new GameObject().AddComponent <Unit>(); friendlyUnit.Faction = friendlyFaction; enemyUnit.Faction = enemyFaction; rtsInputStub.TriggerSelectOnUnit(enemyUnit); rtsInputStub.TriggerActionOnUnit(friendlyUnit); Assert.IsEmpty(commandExecutorStub.commands); }