Exemplo n.º 1
0
        public void ChangeState_ValidState_ExitsThenEnters()
        {
            // Arrange
            var log        = new StateMachineDiagonosticsLog <TwoStatesID>();
            var stubStates = new StubStateWithDiagnostics <TwoStatesID>[]
            {
                new StubStateWithDiagnostics <TwoStatesID>(TwoStatesID.One, log),
                new StubStateWithDiagnostics <TwoStatesID>(TwoStatesID.Two, log),
            };

            var stateMachine = new StateMachine <TwoStatesID>(stubStates, TwoStatesID.One);
            var expectedLog  = new StateMachineDiagonosticsLog <TwoStatesID>();

            expectedLog.AddEntry(StateMachineDiagonosticsLog <TwoStatesID> .LogEntry.Callback.Enter, TwoStatesID.One);
            expectedLog.AddEntry(StateMachineDiagonosticsLog <TwoStatesID> .LogEntry.Callback.Exit, TwoStatesID.One);
            expectedLog.AddEntry(StateMachineDiagonosticsLog <TwoStatesID> .LogEntry.Callback.Enter, TwoStatesID.Two);

            // Act
            stateMachine.ChangeState(TwoStatesID.Two);

            // Assert
            Assert.That(log, Is.EqualTo(expectedLog));
        }
Exemplo n.º 2
0
        public void CtorNoReflection_OneState_EntersOnlyInitialState()
        {
            // Arrange
            var log        = new StateMachineDiagonosticsLog <TwoStatesID>();
            var stubStates = new StubStateWithDiagnostics <TwoStatesID>[]
            {
                new StubStateWithDiagnostics <TwoStatesID>(TwoStatesID.One, log),
                new StubStateWithDiagnostics <TwoStatesID>(TwoStatesID.Two, log),
            };

            var expectedLog = new StateMachineDiagonosticsLog <TwoStatesID>();

            expectedLog.AddEntry(StateMachineDiagonosticsLog <TwoStatesID> .LogEntry.Callback.Enter, TwoStatesID.One);

            // Act
            new StateMachine <TwoStatesID>(stubStates, TwoStatesID.One);

            // Assert
            Assert.That(log, Is.EqualTo(expectedLog));
        }