public DirectionAnimation WithActuator(LogicalBinaryStateActuator actuator) { if (actuator == null) throw new ArgumentNullException(nameof(actuator)); _actuator = actuator; return this; }
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; }
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); }