Beispiel #1
0
        public async Task Handle_ResponseAvaiable()
        {
            IPv6HeaderInformation headerInformation = new IPv6HeaderInformation(
                IPv6Address.FromString("fe80::2"), IPv6Address.FromString("fe80::1"));

            DHCPv6Packet packet          = DHCPv6Packet.AsOuter(headerInformation, 1, DHCPv6PacketTypes.Solicit, new List <DHCPv6PacketOption>());
            DHCPv6Packet reseponsePacket = DHCPv6Packet.AsOuter(IPv6HeaderInformation.AsResponse(headerInformation), 1, DHCPv6PacketTypes.ADVERTISE, new List <DHCPv6PacketOption>());

            Mock <IDHCPv6LeaseEngine> leaseEngineMock = new Mock <IDHCPv6LeaseEngine>(MockBehavior.Strict);

            leaseEngineMock.Setup(x => x.HandlePacket(packet)).ReturnsAsync(reseponsePacket).Verifiable();

            Mock <IServiceBus> serviceBusMock = new Mock <IServiceBus>(MockBehavior.Strict);

            serviceBusMock.Setup(x => x.Publish(It.Is <DHCPv6PacketReadyToSendMessage>(y => y.Packet == reseponsePacket))).Returns(Task.CompletedTask).Verifiable();

            ValidDHCPv6PacketArrivedMessageHandler handler = new ValidDHCPv6PacketArrivedMessageHandler(
                serviceBusMock.Object, leaseEngineMock.Object,
                Mock.Of <ILogger <ValidDHCPv6PacketArrivedMessageHandler> >());

            await handler.Handle(new ValidDHCPv6PacketArrivedMessage(packet), CancellationToken.None);

            leaseEngineMock.Verify();
            serviceBusMock.Verify();
        }
Beispiel #2
0
        public void AsReponse()
        {
            IPv6HeaderInformation requestHeader = new IPv6HeaderInformation(
                IPv6Address.FromString("fe80::1"), IPv6Address.FromString("fe80::2")
                );

            IPv6HeaderInformation responseHeader = IPv6HeaderInformation.AsResponse(requestHeader);

            Assert.Equal(requestHeader.Destionation, responseHeader.Source);
            Assert.Equal(requestHeader.Source, responseHeader.Destionation);
        }