public void OnCommandRecivedTest()
        {
            // relay1
            CommandArgs args = new CommandArgs();
            args.Type = CommandType.Set;
            args.Command = Command.Command.Relay;
            args.Value = new byte[] { 17 };
            RelayViewModel relay = new RelayViewModel();
            relay.SendCommand += (sender, a) =>
                {
                    Assert.Fail("This method should not be called");
                };
            bool called = false;
            PropertyChangedEventHandler relay1 = (sender, a) =>
                {
                    called = true;
                    Assert.AreEqual("Relay1", a.PropertyName, "PropertyName");
                };
            relay.PropertyChanged += relay1;
            relay.OnCommandRecived(this, args);
            Assert.IsTrue(called, "called");
            Assert.IsTrue(relay.Relay1, "relay.Relay1");
            relay.PropertyChanged -= relay1;

            // relay2
            called = false;
            PropertyChangedEventHandler relay2 = (sender, a) =>
                {
                    called = true;
                    Assert.AreEqual("Relay2", a.PropertyName, "PropertyName");
                };
            args.Value[0] = 33;
            relay.PropertyChanged += relay2;
            Assert.IsFalse(called, "called");
            relay.OnCommandRecived(this, args);
            Assert.IsTrue(called, "called");
            relay.PropertyChanged -= relay2;

            //relay3
            called = false;
            PropertyChangedEventHandler relay3 = (sender, a) =>
                {
                    called = true;
                    Assert.AreEqual("Relay3", a.PropertyName, "PropertyName");
                };
            args.Value[0] = 49;
            relay.PropertyChanged += relay3;
            Assert.IsFalse(called, "called");
            relay.OnCommandRecived(this, args);
            Assert.IsTrue(called, "called");
            relay.PropertyChanged -= relay3;

            //relay4
            called = false;
            PropertyChangedEventHandler relay4 = (sender, a) =>
                {
                    called = true;
                    Assert.AreEqual("Relay4", a.PropertyName, "PropertyName");
                };
            args.Value[0] = 65;
            relay.PropertyChanged += relay4;
            Assert.IsFalse(called, "called");
            relay.OnCommandRecived(this, args);
            Assert.IsTrue(called, "called");
            relay.PropertyChanged -= relay4;
        }