Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }