예제 #1
0
        public void State_Start(DataStructureV1 startData)
        {
            switch (_stateContainer.PrevState)
            {
            case StateEnumV1.Enabled:
            {
                Thread.Sleep(2000);
                SetStateNData(StateEnumV1.Start, startData);
            }
            break;

            case StateEnumV1.Start:
            {
                Thread.Sleep(2000);
                SetState(StateEnumV1.Start);
            }
            break;

            case StateEnumV1.Idle:
                // can't switch from Idle
                break;

            case StateEnumV1.Animating:
                // can't switch from Animating
                break;

            case StateEnumV1.Disabled:
                // can't switch from Disabled
                break;

            default:
                throw new InvalidEnumArgumentException();
            }
        }
예제 #2
0
        public void GetData_ReturnsData()
        {
            // arrange
            var mockLogger  = MockRepository.Mock <Serilog.ILogger>();
            var initialData = new DataStructureV1();

            var mockStateContainer = MockRepository.Mock <IStateContainer <DataStructureV1> >();

            mockStateContainer.Stub(container => container.Data).Return(initialData).Repeat.Once();

            var stateMachine = new StateMachineV1(mockStateContainer, mockLogger);

            // act
            DataStructureV1 returnedData = stateMachine.GetData();

            // assert
            Assert.AreEqual(initialData, returnedData);
            mockStateContainer.AssertWasNotCalled(container => container.State);
            mockStateContainer.AssertWasNotCalled(container => container.PrevState);
            mockStateContainer.AssertWasCalled(container => container.Data);
        }
예제 #3
0
 private void SetStateNData(StateEnumV1 state, DataStructureV1 data)
 {
     _stateContainer.State = state;
     _stateContainer.Data  = data;
 }