상속: ActuatorBase, IStateMachine
        public DirectionAnimation WithActuator(LogicalBinaryStateActuator actuator)
        {
            if (actuator == null) throw new ArgumentNullException(nameof(actuator));

            _actuator = actuator;
            return this;
        }
예제 #2
0
        public LogicalBinaryStateActuator RegisterLogicalActuator(IArea area, Enum id)
        {
            if (area == null) throw new ArgumentNullException(nameof(area));

            var actuator = new LogicalBinaryStateActuator(ComponentIdGenerator.Generate(area.Id, id), _timerService);
            area.AddComponent(actuator);

            return actuator;
        }
예제 #3
0
        public static LogicalBinaryStateActuator CombineActuators(this IArea area, Enum id)
        {
            if (area == null)
            {
                throw new ArgumentNullException(nameof(area));
            }

            var actuator = new LogicalBinaryStateActuator(ComponentIdFactory.Create(area.Id, id), area.Controller.Timer);

            area.AddComponent(actuator);
            return(actuator);
        }
        public void TurnOn_CombinedActuators()
        {
            var timer = new TestTimerService();

            var stateMachineFactory = new TestStateMachineFactory();
            var testActuator1 = stateMachineFactory.CreateTestStateMachineWithOnOffStates();
            var testActuator2 = stateMachineFactory.CreateTestStateMachineWithOnOffStates();
            var testActuator3 = stateMachineFactory.CreateTestStateMachineWithOnOffStates();

            var logicalActautor = new LogicalBinaryStateActuator(ComponentIdGenerator.EmptyId, timer);
            logicalActautor.WithActuator(testActuator1);
            logicalActautor.WithActuator(testActuator2);
            logicalActautor.WithActuator(testActuator3);

            logicalActautor.GetState().Equals(BinaryStateId.Off).ShouldBeEquivalentTo(true);

            logicalActautor.SetState(BinaryStateId.On);
            logicalActautor.GetState().Equals(BinaryStateId.On).ShouldBeEquivalentTo(true);

            logicalActautor.SetState(BinaryStateId.Off);
            logicalActautor.GetState().Equals(BinaryStateId.Off).ShouldBeEquivalentTo(true);
        }