public void LeController_DeviceAddressReceived() { var transportMock = new Mock <FakeCommandTransport> { CallBase = true }; transportMock .Setup(x => x.GetCommandCompletePayload(It.IsAny <byte[]>(), It.IsAny <DataType>())) .Returns(new Func <byte[], DataType, byte[]>((data, dataType) => { var readBdAddrData = new ReadBdAddrCommand().ToByteArray(); if (!Enumerable.SequenceEqual(data, readBdAddrData)) { return(null); } return(new byte[] { 0x60, 0x50, 0x40, 0x30, 0x20, 0x10 }); })); using (var controller = new LeController(transportMock.Object)) { DeviceAddress deviceAddress = null; var done = new ManualResetEvent(false); controller.DeviceAddressReceived += (sender, e) => { deviceAddress = e.DeviceAddress; done.Set(); }; controller.Open(); Assert.IsTrue(done.WaitOne(1000, false)); Assert.AreEqual(new byte[] { 0x10, 0x20, 0x30, 0x40, 0x50, 0x60 }, deviceAddress.Address); } }
public void LeController_DeviceAddressReceived() { var transportMock = new Mock<FakeCommandTransport> { CallBase = true }; transportMock .Setup(x => x.GetCommandCompletePayload(It.IsAny<byte[]>(), It.IsAny<DataType>())) .Returns(new Func<byte[], DataType, byte[]>((data, dataType) => { var readBdAddrData = new ReadBdAddrCommand().ToByteArray(); if (!Enumerable.SequenceEqual(data, readBdAddrData)) return null; return new byte[] { 0x60, 0x50, 0x40, 0x30, 0x20, 0x10 }; })); using (var controller = new LeController(transportMock.Object)) { DeviceAddress deviceAddress = null; var done = new ManualResetEvent(false); controller.DeviceAddressReceived += (sender, e) => { deviceAddress = e.DeviceAddress; done.Set(); }; controller.Open(); Assert.IsTrue(done.WaitOne(1000, false)); Assert.AreEqual(new byte[] { 0x10, 0x20, 0x30, 0x40, 0x50, 0x60 }, deviceAddress.Address); } }
public void Command_ReadBdAddrCommand() { var command = new ReadBdAddrCommand(); Assert.AreEqual(new byte[] { 0x09, 0x10, 0x00 }, command.ToByteArray()); }