Exemple #1
0
        public async Task When_ListeningAndSendingMulticastOnIPV6_Then_MessagesAreSentAndReceived()
        {
            UInt16 universe = 1;

            using (var sender = new MulticastSacnSenderIPV6())
            {
                using (var receiver = new MulticastSacnReceiverIPV6())
                {
                    DataPacket received = null;

                    var hostname    = Dns.GetHostName();
                    var ipAddresses = await Dns.GetHostAddressesAsync(hostname);

                    receiver.OnDataPacketReceived += (sender, packet) =>
                    {
                        received = packet;
                    };
                    receiver.Listen(IPAddress.IPv6Any);
                    receiver.JoinMulticastGroup(universe);

                    var packet = new DataPacket();
                    packet.FramingLayer.SourceName = "Source name";
                    packet.FramingLayer.Universe   = universe;
                    packet.DMPLayer.PropertyValues = new byte[] { 1, 2, 3, 4 };

                    await sender.Send(packet);

                    await Task.Delay(250);

                    Assert.NotNull(received);
                }
            }
        }
        public void Given_TheAddressIsIPV6_When_ListenIsCalled_Then_ItListensOnTheAddress()
        {
            var ip         = IPAddress.IPv6Any;
            var udpWrapper = Mock.Of <IUdpWrapper>();
            var receiver   = new MulticastSacnReceiverIPV6(udpWrapper, null);

            receiver.Listen(ip);
            Mock.Get(udpWrapper)
            .Verify(x => x.Listen(It.Is <IPEndPoint>(e => e.Address.Equals(ip))));
        }
        public void Given_TheAddressIsNotIPV6_When_ListenIsCalled_Then_AnExceptionIsThrown()
        {
            var receiver = new MulticastSacnReceiverIPV6(null, null);

            Assert.Throws <ArgumentException>(() => receiver.Listen(IPAddress.Any));
        }