Пример #1
0
        public void TestNoSendIfInitiallyDisconnect()
        {
            var serviceMock = new Mock <IServiceCore>();
            var timerMock   = new Mock <ITimer>();

            serviceMock.Setup(x => x.Connected).Returns(false);

            Packet sentPacket = null;

            serviceMock.Setup(x => x.SendPacket(It.IsAny <Packet>())).Callback <Packet>(x => sentPacket = x);

            var sender = new ServiceRequestRepeater(serviceMock.Object, "_tcp.local", timerMock.Object);

            Assert.IsNull(sentPacket);
        }
Пример #2
0
        public void TestNoSendAfterStop()
        {
            var serviceMock = new Mock <IServiceCore>();
            var timerMock   = new Mock <ITimer>();

            serviceMock.Setup(x => x.Connected).Returns(true);

            Packet sentPacket = null;

            serviceMock.Setup(x => x.SendPacket(It.IsAny <Packet>())).Callback <Packet>(x => sentPacket = x);

            var sender = new ServiceRequestRepeater(serviceMock.Object, "_tcp.local", timerMock.Object);

            sender.Start();
            Assert.IsNotNull(sentPacket);
            sentPacket = null;
            sender.Stop(); // Need to add this
            timerMock.Raise(x => x.Fired += null);
            Assert.IsNull(sentPacket);
        }
Пример #3
0
        public void TestUnicastAfterReconnect()
        {
            var serviceMock = new Mock <IServiceCore>();
            var timerMock   = new Mock <ITimer>();

            serviceMock.Setup(x => x.Connected).Returns(true);
            Packet sentPacket = null;

            serviceMock.Setup(x => x.SendPacket(It.IsAny <Packet>())).Callback <Packet>(x => sentPacket = x);

            var sender = new ServiceRequestRepeater(serviceMock.Object, "_tcp.local", timerMock.Object);

            sender.Start();
            sentPacket = null;
            serviceMock.Raise(x => x.NetworkStatusChanged += null, false, true);

            Assert.IsFalse(sentPacket.Queries[0].IsMulticast);
            sentPacket = null;

            timerMock.Raise(x => x.Fired += null);
            Assert.IsTrue(sentPacket.Queries[0].IsMulticast);
        }
Пример #4
0
        public void TestNormalRepeatPacketSending()
        {
            var serviceMock = new Mock <IServiceCore>();
            var timerMock   = new Mock <ITimer>();

            serviceMock.Setup(x => x.Connected).Returns(true);
            Packet sentPacket = null;

            serviceMock.Setup(x => x.SendPacket(It.IsAny <Packet>())).Callback <Packet>(x => sentPacket = x);

            var sender = new ServiceRequestRepeater(serviceMock.Object, "_tcp.local", timerMock.Object);

            sender.Start();

            Assert.IsFalse(sentPacket.Flags.IsResponse);
            Assert.AreEqual(12, sentPacket.Queries[0].Record.RecordType);
            Assert.AreEqual("_tcp.local", sentPacket.Queries[0].Record.Name);
            sentPacket = null;

            timerMock.Raise(x => x.Fired += null);
            Assert.IsFalse(sentPacket.Flags.IsResponse);
            Assert.AreEqual(12, sentPacket.Queries[0].Record.RecordType);
            Assert.AreEqual("_tcp.local", sentPacket.Queries[0].Record.Name);
        }