public void TestDefaultValues() { TransportInst inst = TransportRegistry.Instance.CreateInst(INSTANCE_NAME, TRANSPORT_TYPE); MulticastInst mi = new MulticastInst(inst); Assert.IsFalse(mi.DefaultToIpv6); Assert.AreEqual("224.0.0.128:49152", mi.GroupAddress); Assert.AreEqual(string.Empty, mi.LocalAddress); Assert.AreEqual(32U, mi.NakDepth); Assert.AreEqual(4U, mi.NakDelayIntervals); Assert.IsNotNull(mi.NakInterval); Assert.AreEqual(0, mi.NakInterval.Seconds); Assert.AreEqual(500000, mi.NakInterval.MicroSeconds); Assert.AreEqual(3U, mi.NakMax); Assert.IsNotNull(mi.NakTimeout); Assert.AreEqual(30, mi.NakTimeout.Seconds); Assert.AreEqual(0, mi.NakTimeout.MicroSeconds); Assert.AreEqual(49152, mi.PortOffset); Assert.IsTrue(mi.Reliable); Assert.AreEqual(2.0, mi.SynBackoff); Assert.IsNotNull(mi.SynInterval); Assert.AreEqual(0, mi.SynInterval.Seconds); Assert.AreEqual(250000, mi.SynInterval.MicroSeconds); Assert.IsNotNull(mi.SynTimeout); Assert.AreEqual(30, mi.SynTimeout.Seconds); Assert.AreEqual(0, mi.SynTimeout.MicroSeconds); Assert.IsFalse(mi.AsyncSend); Assert.AreEqual(1, mi.Ttl); Assert.AreEqual(32U, mi.DatalinkControlChunks); Assert.AreEqual(10000, mi.DatalinkReleaseDelay); Assert.IsTrue(mi.IsReliable); Assert.AreEqual(2147481599u, mi.MaxPacketSize); Assert.AreEqual(10U, mi.MaxSamplesPerPacket); Assert.AreEqual(INSTANCE_NAME, mi.Name); Assert.AreEqual(4096u, mi.OptimumPacketSize); Assert.AreEqual(5U, mi.QueueInitialPools); Assert.AreEqual(10U, mi.QueueMessagesPerPool); if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { Assert.AreEqual(65536U, mi.RcvBufferSize); } else { Assert.AreEqual(65535U, mi.RcvBufferSize); } Assert.AreEqual(TRANSPORT_TYPE, mi.TransportType); Assert.IsFalse(mi.ThreadPerConnection); TransportRegistry.Instance.RemoveInst(mi); }
public void TestNonDefaultValues() { TransportInst inst = TransportRegistry.Instance.CreateInst(INSTANCE_NAME, TRANSPORT_TYPE); MulticastInst mi = new MulticastInst(inst) { DefaultToIpv6 = true, GroupAddress = "224.0.0.64:49150", LocalAddress = "127.0.0.1:", NakDepth = 64U, NakDelayIntervals = 8U, NakInterval = new TimeValue { Seconds = 1, MicroSeconds = 0, }, NakMax = 6U, NakTimeout = new TimeValue { Seconds = 10, MicroSeconds = 500000, }, PortOffset = 49150, Reliable = false, SynBackoff = 1.5, SynInterval = new TimeValue { Seconds = 10, MicroSeconds = 500000, }, SynTimeout = new TimeValue { Seconds = 10, MicroSeconds = 500000, }, AsyncSend = true, Ttl = 2, DatalinkControlChunks = 64U, DatalinkReleaseDelay = 20000, MaxPacketSize = 2147481500u, MaxSamplesPerPacket = 20U, OptimumPacketSize = 2048u, QueueInitialPools = 10U, QueueMessagesPerPool = 20U, RcvBufferSize = 65530U, ThreadPerConnection = true, }; Assert.IsTrue(mi.DefaultToIpv6); Assert.AreEqual("224.0.0.64:49150", mi.GroupAddress); Assert.AreEqual("127.0.0.1:", mi.LocalAddress); Assert.AreEqual(64U, mi.NakDepth); Assert.AreEqual(8U, mi.NakDelayIntervals); Assert.IsNotNull(mi.NakInterval); Assert.AreEqual(1, mi.NakInterval.Seconds); Assert.AreEqual(0, mi.NakInterval.MicroSeconds); Assert.AreEqual(6U, mi.NakMax); Assert.IsNotNull(mi.NakTimeout); Assert.AreEqual(10, mi.NakTimeout.Seconds); Assert.AreEqual(500000, mi.NakTimeout.MicroSeconds); Assert.AreEqual(49150, mi.PortOffset); Assert.IsFalse(mi.Reliable); Assert.AreEqual(1.5, mi.SynBackoff); Assert.IsNotNull(mi.SynInterval); Assert.AreEqual(10, mi.SynInterval.Seconds); Assert.AreEqual(500000, mi.SynInterval.MicroSeconds); Assert.IsNotNull(mi.SynTimeout); Assert.AreEqual(10, mi.SynTimeout.Seconds); Assert.AreEqual(500000, mi.SynTimeout.MicroSeconds); Assert.IsTrue(mi.AsyncSend); Assert.AreEqual(2, mi.Ttl); Assert.AreEqual(64U, mi.DatalinkControlChunks); Assert.AreEqual(20000, mi.DatalinkReleaseDelay); Assert.IsFalse(mi.IsReliable); Assert.AreEqual(2147481500u, mi.MaxPacketSize); Assert.AreEqual(20U, mi.MaxSamplesPerPacket); Assert.AreEqual(INSTANCE_NAME, mi.Name); Assert.AreEqual(2048u, mi.OptimumPacketSize); Assert.AreEqual(10U, mi.QueueInitialPools); Assert.AreEqual(20U, mi.QueueMessagesPerPool); Assert.AreEqual(65530U, mi.RcvBufferSize); Assert.AreEqual(TRANSPORT_TYPE, mi.TransportType); Assert.IsTrue(mi.ThreadPerConnection); TransportRegistry.Instance.RemoveInst(mi); }
public void TestCreateInst() { // Create a RTPS UDP transport instance TransportInst inst = TransportRegistry.Instance.CreateInst(nameof(TestCreateInst), "rtps_udp"); Assert.IsNotNull(inst); Assert.AreEqual(nameof(TestCreateInst), inst.Name); Assert.AreEqual("rtps_udp", inst.TransportType); RtpsUdpInst rui = new RtpsUdpInst(inst); Assert.IsNotNull(rui); TransportRegistry.Instance.RemoveInst(inst); // Create a UDP transport instance inst = TransportRegistry.Instance.CreateInst(nameof(TestCreateInst), "udp"); Assert.IsNotNull(inst); Assert.AreEqual(nameof(TestCreateInst), inst.Name); Assert.AreEqual("udp", inst.TransportType); UdpInst udpi = new UdpInst(inst); Assert.IsNotNull(udpi); TransportRegistry.Instance.RemoveInst(inst); // Create a Multicast transport instance inst = TransportRegistry.Instance.CreateInst(nameof(TestCreateInst), "multicast"); Assert.IsNotNull(inst); Assert.AreEqual(nameof(TestCreateInst), inst.Name); Assert.AreEqual("multicast", inst.TransportType); MulticastInst multicasti = new MulticastInst(inst); Assert.IsNotNull(multicasti); TransportRegistry.Instance.RemoveInst(inst); // Create a Multicast transport instance inst = TransportRegistry.Instance.CreateInst(nameof(TestCreateInst), "tcp"); Assert.IsNotNull(inst); Assert.AreEqual(nameof(TestCreateInst), inst.Name); Assert.AreEqual("tcp", inst.TransportType); MulticastInst tcpi = new MulticastInst(inst); Assert.IsNotNull(tcpi); TransportRegistry.Instance.RemoveInst(inst); // Create a SharedMemory transport instance inst = TransportRegistry.Instance.CreateInst(nameof(TestCreateInst), "shmem"); Assert.IsNotNull(inst); Assert.AreEqual(nameof(TestCreateInst), inst.Name); Assert.AreEqual("shmem", inst.TransportType); ShmemInst shmemi = new ShmemInst(inst); Assert.IsNotNull(shmemi); TransportRegistry.Instance.RemoveInst(inst); // Create a instance with an invalid transport type inst = TransportRegistry.Instance.CreateInst(nameof(TestCreateInst), "quantic_teletransport"); Assert.IsNull(inst); // Try to create a transport instance with empty name bool exception = false; try { inst = TransportRegistry.Instance.CreateInst(null, "shmem"); } catch (Exception ex) { exception = true; Assert.IsTrue(ex.GetType() == typeof(ArgumentNullException)); } Assert.IsTrue(exception); exception = false; try { inst = TransportRegistry.Instance.CreateInst(string.Empty, "shmem"); } catch (Exception ex) { exception = true; Assert.IsTrue(ex.GetType() == typeof(ArgumentNullException)); } Assert.IsTrue(exception); exception = false; try { inst = TransportRegistry.Instance.CreateInst(" ", "shmem"); } catch (Exception ex) { exception = true; Assert.IsTrue(ex.GetType() == typeof(ArgumentNullException)); } Assert.IsTrue(exception); }