Exemplo n.º 1
0
 public void LeController_OpenUnderlyingTransport()
 {
     var transportMock = new Mock<ITransport>();
     var controller = new LeController(transportMock.Object);
     controller.Open();
     transportMock.Verify(x => x.Open(), Times.Once());
     transportMock.Verify(x => x.Close(), Times.Never());
 }
Exemplo n.º 2
0
 public void LeController_Dispose()
 {
     var transportMock = new Mock<ITransport>();
     using (var controller = new LeController(transportMock.Object))
         controller.Open();
     transportMock.Verify(x => x.Open(), Times.Once());
     transportMock.Verify(x => x.Close(), Times.Once());
 }
Exemplo n.º 3
0
 public void LeController_InitCommands()
 {
     var transportMock = new Mock<FakeCommandTransport> { CallBase = true };
     using (var controller = new LeController(transportMock.Object))
     {
         controller.Open();
         Thread.Sleep(10);
     }
     transportMock.Verify(
         transport => transport.Send(
             It.Is<byte[]>(x => x.SequenceEqual(new ResetCommand().ToByteArray())),
             It.Is<DataType>(x => x == DataType.Command)),
         Times.Exactly(1));
     transportMock.Verify(
         transport => transport.Send(It.IsAny<byte[]>(), It.Is<DataType>(x => x == DataType.Command)),
         Times.Exactly(3));
 }
Exemplo n.º 4
0
        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);
            }
        }