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