public void TestRead() { List <ParticipantBuiltinTopicData> data = new List <ParticipantBuiltinTopicData>(); List <SampleInfo> infos = new List <SampleInfo>(); ReturnCode ret = _dr.Read(data, infos); Assert.AreEqual(ReturnCode.NoData, ret); Assert.AreEqual(0, data.Count); Assert.AreEqual(0, infos.Count); DomainParticipantQos qos = new DomainParticipantQos(); qos.UserData.Value = new byte[] { 0x42 }; DomainParticipant otherParticipant = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.RTPS_DOMAIN, qos); Assert.IsNotNull(otherParticipant); otherParticipant.BindRtpsUdpTransportConfig(); Assert.IsTrue(_participant.WaitForParticipants(1, 20_000)); ret = _dr.Read(data, infos); Assert.AreEqual(ReturnCode.Ok, ret); Assert.AreEqual(1, data.Count); Assert.AreEqual(1, infos.Count); Assert.AreEqual(1, data.First().UserData.Value.Count); Assert.AreEqual(0x42, data.First().UserData.Value.First()); ret = otherParticipant.DeleteContainedEntities(); Assert.AreEqual(ReturnCode.Ok, ret); ret = AssemblyInitializer.Factory.DeleteParticipant(otherParticipant); Assert.AreEqual(ReturnCode.Ok, ret); }
public void TestRead() { List <PublicationBuiltinTopicData> data = new List <PublicationBuiltinTopicData>(); List <SampleInfo> infos = new List <SampleInfo>(); ReturnCode ret = _dr.Read(data, infos); Assert.AreEqual(ReturnCode.NoData, ret); Assert.AreEqual(0, data.Count); Assert.AreEqual(0, infos.Count); DomainParticipant otherParticipant = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.RTPS_DOMAIN); Assert.IsNotNull(otherParticipant); otherParticipant.BindRtpsUdpTransportConfig(); Assert.IsTrue(_participant.WaitForParticipants(1, 20_000)); TestStructTypeSupport support = new TestStructTypeSupport(); string typeName = support.GetTypeName(); ReturnCode result = support.RegisterType(otherParticipant, typeName); Assert.AreEqual(ReturnCode.Ok, result); var topic = otherParticipant.CreateTopic(TestContext.TestName, typeName); Assert.IsNotNull(topic); var publisher = otherParticipant.CreatePublisher(); Assert.IsNotNull(publisher); DataWriterQos dwQos = TestHelper.CreateNonDefaultDataWriterQos(); dwQos.Ownership.Kind = OwnershipQosPolicyKind.SharedOwnershipQos; DataWriter dataWriter = publisher.CreateDataWriter(topic, dwQos); Assert.IsNotNull(dataWriter); int count = 200; ret = ReturnCode.NoData; while (ret != ReturnCode.Ok && count > 0) { Thread.Sleep(100); ret = _dr.Read(data, infos); count--; } Assert.AreEqual(ret, ReturnCode.Ok); Assert.AreEqual(1, data.Count); Assert.AreEqual(1, infos.Count); TestHelper.TestNonDefaultPublicationData(data.First()); ret = otherParticipant.DeleteContainedEntities(); Assert.AreEqual(ReturnCode.Ok, ret); ret = AssemblyInitializer.Factory.DeleteParticipant(otherParticipant); Assert.AreEqual(ReturnCode.Ok, ret); }
public void TestGetKeyValue() { // Call GetKeyValue with HandleNil ParticipantBuiltinTopicData data = default; SampleInfo info = new SampleInfo(); ReturnCode ret = _dr.GetKeyValue(ref data, InstanceHandle.HandleNil); Assert.AreEqual(ReturnCode.BadParameter, ret); DomainParticipantQos qos = new DomainParticipantQos(); qos.UserData.Value = new byte[] { 0x42 }; DomainParticipant otherParticipant = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.RTPS_DOMAIN, qos); Assert.IsNotNull(otherParticipant); otherParticipant.BindRtpsUdpTransportConfig(); Assert.IsTrue(_participant.WaitForParticipants(1, 20_000)); Assert.IsTrue(otherParticipant.WaitForParticipants(1, 20_000)); // Get the for an existing instance ret = _dr.ReadNextSample(ref data, info); Assert.AreEqual(ReturnCode.Ok, ret); Assert.AreEqual(1, data.UserData.Value.Count); Assert.AreEqual(0x42, data.UserData.Value.First()); ParticipantBuiltinTopicData aux = default; ret = _dr.GetKeyValue(ref aux, info.InstanceHandle); Assert.AreEqual(ReturnCode.Ok, ret); for (int i = 0; i < 3; i++) { Assert.AreEqual(data.Key.Value[i], aux.Key.Value[i]); } ret = otherParticipant.DeleteContainedEntities(); Assert.AreEqual(ReturnCode.Ok, ret); ret = AssemblyInitializer.Factory.DeleteParticipant(otherParticipant); Assert.AreEqual(ReturnCode.Ok, ret); }