public async Task When_ListeningAndSendingUnicastWithIPV6_Then_MessagesAreSentAndReceived() { var hostname = Dns.GetHostName(); var ipAddresses = await Dns.GetHostAddressesAsync(hostname); var address = ipAddresses.First(x => x.AddressFamily == AddressFamily.InterNetworkV6); using (var sender = new UnicastSacnSender(address)) { using (var receiver = new UnicastSacnReceiver()) { DataPacket received = null; receiver.OnDataPacketReceived += (sender, packet) => { received = packet; }; receiver.Listen(address); var packet = new DataPacket(); packet.FramingLayer.SourceName = "Source name"; packet.FramingLayer.Universe = 25; packet.DMPLayer.PropertyValues = new byte[] { 1, 2, 3, 4 }; await sender.Send(packet); await Task.Delay(250); Assert.NotNull(received); } } }
public async Task Given_ThePacketIsASynchronizationPacket_When_UnicastSendIsCalled_Then_ThePacketIsSent() { var expectedAddress = new IPAddress(new byte[] { 1, 2, 3, 4 }); var packet = new SynchronizationPacket(); byte[] expectedBytes = new byte[packet.Length]; packet.Write(expectedBytes); var udpWrapper = Mock.Of <IUdpWrapper>(); var sender = new UnicastSacnSender(udpWrapper, expectedAddress); await sender.Send(packet); Mock.Get(udpWrapper) .Verify(x => x.Send( It.Is <IPEndPoint>(x => x.Address == expectedAddress && x.Port == 5568), It.Is <ReadOnlyMemory <byte> >(x => x.ToArray().SequenceEqual(expectedBytes)) )); }