public void Tick_Ticks() { var stringWriter = new SsdStub(); var aggr = new ButtonAggregatorStub(); var selector = new DeskPiModeStub(); var deskPi = new DeskPi(stringWriter, aggr, selector); var newPi = deskPi.Tick(1); Assert.AreEqual(deskPi, newPi); Assert.AreEqual(1, stringWriter.ReceivedCurrentTime); Assert.AreEqual(1, aggr.ReceivedTick); Assert.AreEqual(1, selector.ReceivedTick); }
public void NextTick_MinSsd_ReturnsMin() { var stringWriter = new SsdStub { NextTickVal = 2 }; var aggr = new ButtonAggregatorStub { NextTickVal = 3 }; var selector = new DeskPiModeStub(); var deskPi = new DeskPi(stringWriter, aggr, selector); Assert.AreEqual(2, deskPi.NextTick(0)); }
public void ReceiveEvent_PinValueChangeEvent_TransmitToAggregator() { var stringWriter = new SsdStub(); var aggr = new ButtonAggregatorStub { ReceivedButton = ButtonId.Bottom }; var selector = new DeskPiModeStub(); var deskPi = new DeskPi(stringWriter, aggr, selector); var ev = new PinValueChangeEvent(ButtonId.Top); deskPi = deskPi.ReceiveEvent(ev); Assert.AreEqual(ev.Button, aggr.ReceivedButton); }
public void Tick_NewKey_Transmit() { var stringWriter = new SsdStub(); var aggr = new ButtonAggregatorStub { KeyStateVal = KeyId.A, Next = new ButtonAggregatorStub { KeyStateVal = KeyId.B } }; var selector = new DeskPiModeStub(); var deskPi = new DeskPi(stringWriter, aggr, selector); var newPi = deskPi.Tick(1); Assert.AreNotEqual(deskPi, newPi); Assert.AreEqual(KeyId.B, selector.ReceivedKey); }
public void Tick_NewText_Writes() { var stringWriter = new SsdStub { ReceivedText = "" }; var aggr = new ButtonAggregatorStub(); var selector = new DeskPiModeStub { TextVal = "old", Next = new DeskPiModeStub { TextVal = "new" } }; var deskPi = new DeskPi(stringWriter, aggr, selector); var newPi = deskPi.Tick(1); Assert.AreNotEqual(deskPi, newPi); Assert.AreEqual("new", stringWriter.ReceivedText); }
public void ReceivedKey_MatchSong_GoesToMode() { var modesData = new Dictionary <ModeId, ModeData> { { ModeId.Help, new ModeData("Name", "Description", "Help", new Song("Test", ImmutableList <Note> .Empty.Add(Note.A))) } }.ToImmutableDictionary(); var modeStub = new DeskPiModeStub { TextVal = "test" }; var modes = new Dictionary <ModeId, Func <DeskPiMode, DeskPiMode> > { { ModeId.Help, (s) => modeStub } }.ToImmutableDictionary(); var keyToNote = new Dictionary <KeyId, Note> { { KeyId.A, Note.A }, }.ToImmutableDictionary(); var modeData = new ModeData("", "", "", Song.EmptySong); var selector = new OcarinaSelector(modeData, modesData, modes, keyToNote, (x) => x) .ReceiveKey(KeyId.A); Assert.AreEqual("test", selector.Text[0].Item1); }