public void PauseTurnOffTest() { BiscuitMakerManager.TurnOn(this.Maker); for (int i = 0; i < 24; i++) { BiscuitMakerManager.Tick(this.Maker); } BiscuitMakerManager.Pause(this.Maker); for (int i = 0; i < 2; i++) { BiscuitMakerManager.Tick(this.Maker); } BiscuitMakerManager.TurnOff(this.Maker); for (int i = 0; i < 2; i++) { BiscuitMakerManager.Tick(this.Maker); } this.Maker.FirstOven.CurrentTemperature.Should().Be(220); this.Maker.FirstConveyor.HasBiscuits.Should().BeTrue(); this.Maker.FirstConveyor.Belt.Count(x => x != null).Should().Be(3); this.Maker.FirstBucket.Biscuits.Count.Should().Be(2); }
public void TurnPauseTest() { BiscuitMakerManager.TurnOff(this.Maker); Action action = () => BiscuitMakerManager.Pause(this.Maker); action.Should().NotThrow(); Maker.FirstSwitch.State.Should().Be(SwitchState.Pause); }
public void TurnOnTest() { Action action = () => BiscuitMakerManager.TurnOn(this.Maker); action.Should().NotThrow(); Maker.FirstSwitch.State.Should().Be(SwitchState.On); Maker.FirstOven.State.Should().Be(OvenState.Heating); }
public void HitMinTempTest() { BiscuitMakerManager.TurnOn(this.Maker); for (int i = 0; i < 24; i++) { BiscuitMakerManager.Tick(this.Maker); } this.Maker.FirstOven.CurrentTemperature.Should().Be(220); this.Maker.FirstConveyor.HasBiscuits.Should().BeTrue(); this.Maker.FirstConveyor.Belt.Count(x => x != null).Should().Be(5); }
static void Main(string[] args) { var settings = BiscuitMakerSettingsLoader.LoadFromConfig(); var maker = BiscuitMakerFactory.Create(settings); var display = new BiscuitMakerConsoleDisplay(maker); display.Render(); var timer = new Timer { Interval = 1000, Enabled = true, AutoReset = true, }; timer.Elapsed += (s, e) => { BiscuitMakerManager.Tick(maker); display.Render(); }; ConsoleKeyInfo key; do { key = Console.ReadKey(); switch (key.KeyChar) { case 'o': BiscuitMakerManager.TurnOn(maker); break; case 'p': BiscuitMakerManager.Pause(maker); break; case 'f': BiscuitMakerManager.TurnOff(maker); break; case 'q': break; default: Console.WriteLine("Unknown command"); break; } display.Render(); } while (key.KeyChar != 'q'); }
public void HandleOneMotorPulseTest() { BiscuitMakerManager.TurnOn(this.Maker); Action action = () => ConveyorManager.HandleMotorPulse( null, new OnMotorPulseEventArgs { Maker = this.Maker } ); action.Should().NotThrow(); this.Maker.FirstConveyor.Belt.Count.Should().Be(6); this.Maker.FirstConveyor.Belt.ElementAt(1).Should().NotBeNull(); this.Maker.FirstConveyor.Belt.ElementAt(1).IsExtruded.Should().BeTrue(); }
public void HeatUpTest() { BiscuitMakerManager.TurnOn(this.Maker); BiscuitMakerManager.Tick(this.Maker); this.Maker.FirstConveyor.HasBiscuits.Should().BeFalse(); this.Maker.FirstOven.CurrentTemperature.Should().Be(32); for (int i = 0; i < 19; i++) { BiscuitMakerManager.Tick(this.Maker); } this.Maker.FirstOven.CurrentTemperature.Should().Be(222); this.Maker.FirstConveyor.HasBiscuits.Should().BeTrue(); this.Maker.FirstConveyor.Belt.Count(x => x != null).Should().Be(1); }
public void OvenCoolDownTest() { BiscuitMakerManager.TurnOn(this.Maker); for (int i = 0; i < 24; i++) { BiscuitMakerManager.Tick(this.Maker); } BiscuitMakerManager.TurnOff(this.Maker); for (int i = 0; i < 26; i++) { BiscuitMakerManager.Tick(this.Maker); } this.Maker.FirstOven.CurrentTemperature.Should().Be(22); }
public void TurnOffOvenTest() { BiscuitMakerManager.TurnOn(this.Maker); for (int i = 0; i < 24; i++) { BiscuitMakerManager.Tick(this.Maker); } BiscuitMakerManager.TurnOff(this.Maker); for (int i = 0; i < 6; i++) { BiscuitMakerManager.Tick(this.Maker); } this.Maker.FirstOven.CurrentTemperature.Should().Be(220); this.Maker.FirstOven.State.Should().Be(OvenState.Off); }
public void HandleFullCycleMotorPulseTest() { BiscuitMakerManager.TurnOn(this.Maker); Action action = () => ConveyorManager.HandleMotorPulse( null, new OnMotorPulseEventArgs { Maker = this.Maker } ); action.Should().NotThrow(); action.Invoke(); action.Invoke(); action.Invoke(); action.Invoke(); action.Invoke(); this.Maker.FirstConveyor.Belt.Count.Should().Be(6); this.Maker.FirstConveyor.Belt.ElementAt(0).Should().BeNull(); this.Maker.FirstConveyor.Belt.ElementAt(1).Should().NotBeNull(); this.Maker.FirstConveyor.Belt.ElementAt(1).IsExtruded.Should().BeTrue(); this.Maker.FirstConveyor.Belt.ElementAt(2).Should().NotBeNull(); this.Maker.FirstConveyor.Belt.ElementAt(2).IsExtruded.Should().BeTrue(); this.Maker.FirstConveyor.Belt.ElementAt(2).IsStamped.Should().BeTrue(); this.Maker.FirstConveyor.Belt.ElementAt(3).Should().NotBeNull(); this.Maker.FirstConveyor.Belt.ElementAt(3).IsExtruded.Should().BeTrue(); this.Maker.FirstConveyor.Belt.ElementAt(3).IsStamped.Should().BeTrue(); this.Maker.FirstConveyor.Belt.ElementAt(4).Should().NotBeNull(); this.Maker.FirstConveyor.Belt.ElementAt(4).IsExtruded.Should().BeTrue(); this.Maker.FirstConveyor.Belt.ElementAt(4).IsStamped.Should().BeTrue(); this.Maker.FirstConveyor.Belt.ElementAt(5).Should().NotBeNull(); this.Maker.FirstConveyor.Belt.ElementAt(5).IsExtruded.Should().BeTrue(); this.Maker.FirstConveyor.Belt.ElementAt(5).IsStamped.Should().BeTrue(); this.Maker.FirstBucket.Biscuits.Count.Should().Be(1); this.Maker.FirstBucket.Biscuits.First().IsExtruded.Should().BeTrue(); this.Maker.FirstBucket.Biscuits.First().IsStamped.Should().BeTrue(); this.Maker.FirstBucket.Biscuits.First().IsDone.Should().BeTrue(); }
public void HandleMotorPulseTest() { BiscuitMakerManager.TurnOn(this.Maker); Action action = () => Extruder.HandleMotorPulse( null, new OnMotorPulseEventArgs { Maker = this.Maker } ); action.Should().NotThrow(); var biscuit = this.Maker.FirstConveyor.Belt.ElementAt(0); biscuit.Should().NotBeNull(); biscuit.IsExtruded.Should().BeTrue(); biscuit.IsStamped.Should().BeFalse(); biscuit.IsDone.Should().BeFalse(); }
public void CreateFiveTurnOffAndUnloadTest() { BiscuitMakerManager.TurnOn(this.Maker); for (int i = 0; i < 24; i++) { BiscuitMakerManager.Tick(this.Maker); } BiscuitMakerManager.TurnOff(this.Maker); for (int i = 0; i < 5; i++) { BiscuitMakerManager.Tick(this.Maker); } this.Maker.FirstOven.CurrentTemperature.Should().Be(230); this.Maker.FirstConveyor.HasBiscuits.Should().BeFalse(); this.Maker.FirstConveyor.Belt.Count(x => x != null).Should().Be(0); this.Maker.FirstBucket.Biscuits.Count.Should().Be(5); }