Esempio n. 1
0
        private void testReceiveX10Command(string houseCode, X10Command command, byte x10Code)
        {
            using (var scenario = new SerialPortScenario())
            {
                scenario
                .IncomingMessage(0x02, 0x52, x10Code, 0x80);

                var plm  = buildPlmForTest(scenario.Playback());
                var test = plm.Network.X10;

                int        eventCount     = 0;
                object     sender         = null;
                string     eventHouseCode = null;
                X10Command eventCommand   = 0;
                test.CommandReceived += new X10CommandReceivedHandler((s, e) =>
                {
                    sender         = s;
                    eventHouseCode = e.HouseCode;
                    eventCommand   = e.Command;
                    eventCount++;
                });

                plm.Receive();
                Assert.AreEqual(1, eventCount);
                Assert.AreEqual(test, sender);
                Assert.AreEqual(houseCode, eventHouseCode);
                Assert.AreEqual(command, eventCommand);
            }
        }
Esempio n. 2
0
        public void testAllLinkingCompletedEvent(byte linkCode, byte group)
        {
            using (var scenario = new SerialPortScenario())
            {
                scenario
                .IncomingMessage(0x02, 0x53, linkCode, group,
                                 TestDeviceHelper.PEER_ID_HI,
                                 TestDeviceHelper.PEER_ID_MI,
                                 TestDeviceHelper.PEER_ID_LO,
                                 PEER_DEVCAT,
                                 PEER_DEVSUB,
                                 0xFF);

                var plm  = buildPlmForTest(scenario.Playback());
                var test = plm.Network;

                int eventCount = 0;
                test.AllLinkingCompleted += new AllLinkingCompletedHandler((s, e) =>
                {
                    Assert.AreSame(test, s);
                    Assert.AreEqual(group, e.AllLinkGroup);
                    switch (linkCode)
                    {
                    case 0x00:
                        Assert.AreEqual(AllLinkingAction.LinkedWithPlmAsSlave, e.AllLinkingAction);
                        break;

                    case 0x01:
                        Assert.AreEqual(AllLinkingAction.LinkedWithPlmAsMaster, e.AllLinkingAction);
                        break;

                    case 0xFF:
                        Assert.AreEqual(AllLinkingAction.LinkDeleted, e.AllLinkingAction);
                        break;

                    default:
                        throw new InvalidOperationException();
                    }
                    Assert.AreEqual(TestDeviceHelper.PEER_ID_STRING, e.PeerId.ToString());
                    Assert.AreEqual(PEER_DEVCAT, e.DeviceCategoryCode);
                    Assert.AreEqual(PEER_DEVSUB, e.DeviceSubcategoryCode);
                    string devCat    = Constants.DeviceCategoryLookup[PEER_DEVCAT];
                    string devSubcat = Constants.DeviceSubcategoryLookup[PEER_DEVCAT][PEER_DEVSUB];
                    Assert.AreEqual(devCat, e.DeviceCategory);
                    Assert.AreEqual(devSubcat, e.DeviceSubcategory);
                    eventCount++;
                });

                plm.Receive();
                Assert.AreEqual(1, eventCount);
            }
        }
Esempio n. 3
0
        public void Fires_event_when_set_button_released_after_being_held()
        {
            using (var scenario = new SerialPortScenario())
            {
                scenario
                .IncomingMessage(0x02, 0x54, 0x04);

                var plm  = buildPlmForTest(scenario.Playback());
                var test = plm.SetButton;

                int eventCount = 0;
                test.ReleasedAfterHolding += new EventHandler((s, e) =>
                {
                    Assert.AreSame(test, s);
                    eventCount++;
                });

                plm.Receive();
                Assert.AreEqual(1, eventCount);
            }
        }
Esempio n. 4
0
        public void Fires_event_when_set_button_held_during_power_up()
        {
            using (var scenario = new SerialPortScenario())
            {
                scenario
                .IncomingMessage(0x02, 0x55);

                var plm  = buildPlmForTest(scenario.Playback());
                var test = plm.SetButton;

                int eventCount = 0;
                test.UserReset += new EventHandler((s, e) =>
                {
                    Assert.AreSame(test, s);
                    eventCount++;
                });

                plm.Receive();
                Assert.AreEqual(1, eventCount);
            }
        }
        public void Fires_event_when_set_button_pressed_and_held()
        {
            using (var scenario = new SerialPortScenario())
            {
                scenario
                    .IncomingMessage(0x02, 0x54, 0x03);

                var plm = buildPlmForTest(scenario.Playback());
                var test = plm.SetButton;

                int eventCount = 0;
                test.PressedAndHeld += new EventHandler((s, e) =>
                {
                    Assert.AreSame(test, s);
                    eventCount++;
                });

                plm.Receive();
                Assert.AreEqual(1, eventCount);
            }
        }
Esempio n. 6
0
        private void testStandardMessageReceivedEvent(byte command1, byte command2)
        {
            const byte FLAGS = Constants.MSG_FLAGS_GROUP_BROADCAST | Constants.MSG_FLAGS_MAX_HOPS;

            using (var scenario = new SerialPortScenario())
            {
                scenario
                .IncomingMessage(0x02, 0x50,
                                 TestDeviceHelper.PEER_ID_HI,
                                 TestDeviceHelper.PEER_ID_MI,
                                 TestDeviceHelper.PEER_ID_LO,
                                 0x00, // ignored
                                 0x00, // ignored
                                 0x04, // ignored
                                 FLAGS,
                                 command1,
                                 command2);

                var plm  = buildPlmForTest(scenario.Playback());
                var test = plm.Network;

                int eventCount = 0;
                test.StandardMessageReceived += new StandardMessageReceivedHandler((s, e) =>
                {
                    Assert.AreSame(test, s);
                    Assert.AreEqual(FLAGS, e.RawFlags);
                    Assert.AreEqual(command1, e.Command1);
                    Assert.AreEqual(command2, e.Command2);

                    Assert.AreEqual(TestDeviceHelper.PEER_ID_STRING, e.PeerId.ToString());
                    eventCount++;
                });

                plm.Receive();
                Assert.AreEqual(1, eventCount);
            }
        }
        private void testReceiveX10HouseAndUnit(string houseCode, byte unitCode, byte x10Code)
        {
            using (var scenario = new SerialPortScenario())
            {
                scenario
                    .IncomingMessage(0x02, 0x52, x10Code, 0x00);

                var plm = buildPlmForTest(scenario.Playback());
                var test = plm.Network.X10;

                int eventCount = 0;
                object sender = null;
                string eventHouseCode = null;
                byte eventUnitCode = 0;
                test.UnitAddressed += new X10UnitAddressedHandler((s, e) =>
                {
                    sender = s;
                    eventHouseCode = e.HouseCode;
                    eventUnitCode = e.UnitCode;
                    eventCount++;
                });

                plm.Receive();
                Assert.AreEqual(1, eventCount);
                Assert.AreEqual(test, sender);
                Assert.AreEqual(houseCode, eventHouseCode);
                Assert.AreEqual(unitCode, eventUnitCode);
            }
        }
        private void testStandardMessageReceivedEvent(byte command1, byte command2)
        {
            const byte FLAGS = Constants.MSG_FLAGS_GROUP_BROADCAST | Constants.MSG_FLAGS_MAX_HOPS;
            using (var scenario = new SerialPortScenario())
            {
                scenario
                    .IncomingMessage(0x02, 0x50,
                        TestDeviceHelper.PEER_ID_HI,
                        TestDeviceHelper.PEER_ID_MI,
                        TestDeviceHelper.PEER_ID_LO,
                        0x00, // ignored
                        0x00, // ignored
                        0x04, // ignored
                        FLAGS,
                        command1,
                        command2);

                var plm = buildPlmForTest(scenario.Playback());
                var test = plm.Network;

                int eventCount = 0;
                test.StandardMessageReceived += new StandardMessageReceivedHandler((s, e) =>
                {
                    Assert.AreSame(test, s);
                    Assert.AreEqual(FLAGS, e.RawFlags);
                    Assert.AreEqual(command1, e.Command1);
                    Assert.AreEqual(command2, e.Command2);

                    Assert.AreEqual(TestDeviceHelper.PEER_ID_STRING, e.PeerId.ToString());
                    eventCount++;
                });

                plm.Receive();
                Assert.AreEqual(1, eventCount);
            }
        }
        public void testAllLinkingCompletedEvent(byte linkCode, byte group)
        {
            using (var scenario = new SerialPortScenario())
            {
                scenario
                    .IncomingMessage(0x02, 0x53, linkCode, group,
                        TestDeviceHelper.PEER_ID_HI,
                        TestDeviceHelper.PEER_ID_MI,
                        TestDeviceHelper.PEER_ID_LO,
                        PEER_DEVCAT,
                        PEER_DEVSUB,
                        0xFF);

                var plm = buildPlmForTest(scenario.Playback());
                var test = plm.Network;

                int eventCount = 0;
                test.AllLinkingCompleted += new AllLinkingCompletedHandler((s, e) =>
                {
                    Assert.AreSame(test, s);
                    Assert.AreEqual(group, e.AllLinkGroup);
                    switch (linkCode)
                    {
                        case 0x00:
                            Assert.AreEqual(AllLinkingAction.LinkedWithPlmAsSlave, e.AllLinkingAction);
                            break;
                        case 0x01:
                            Assert.AreEqual(AllLinkingAction.LinkedWithPlmAsMaster, e.AllLinkingAction);
                            break;
                        case 0xFF:
                            Assert.AreEqual(AllLinkingAction.LinkDeleted, e.AllLinkingAction);
                            break;
                        default:
                            throw new InvalidOperationException();
                    }
                    Assert.AreEqual(TestDeviceHelper.PEER_ID_STRING, e.PeerId.ToString());
                    Assert.AreEqual(PEER_DEVCAT, e.DeviceCategoryCode);
                    Assert.AreEqual(PEER_DEVSUB, e.DeviceSubcategoryCode);
                    string devCat = Constants.DeviceCategoryLookup[PEER_DEVCAT];
                    string devSubcat = Constants.DeviceSubcategoryLookup[PEER_DEVCAT][PEER_DEVSUB];
                    Assert.AreEqual(devCat, e.DeviceCategory);
                    Assert.AreEqual(devSubcat, e.DeviceSubcategory);
                    eventCount++;
                });

                plm.Receive();
                Assert.AreEqual(1, eventCount);
            }
        }