public void TestInitialize()
        {
            _listener    = new MyParticipantListener();
            _participant = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.RTPS_DOMAIN, _listener);
            Assert.IsNotNull(_participant);
            _participant.BindRtpsUdpTransportConfig();

            TestStructTypeSupport support = new TestStructTypeSupport();
            string     typeName           = support.GetTypeName();
            ReturnCode result             = support.RegisterType(_participant, typeName);

            Assert.AreEqual(ReturnCode.Ok, result);

            _topic = _participant.CreateTopic(TestContext.TestName, typeName);
            Assert.IsNotNull(_topic);
            Assert.IsNull(_topic.GetListener());
            Assert.AreEqual(TestContext.TestName, _topic.Name);
            Assert.AreEqual(typeName, _topic.TypeName);

            SubscriberQos sQos = new SubscriberQos();

            sQos.EntityFactory.AutoenableCreatedEntities = false;
            sQos.Presentation.OrderedAccess  = true;
            sQos.Presentation.CoherentAccess = true;
            sQos.Presentation.AccessScope    = PresentationQosPolicyAccessScopeKind.InstancePresentationQos;
            _subscriber = _participant.CreateSubscriber(sQos);
            Assert.IsNotNull(_subscriber);

            PublisherQos pQos = new PublisherQos();

            pQos.EntityFactory.AutoenableCreatedEntities = false;
            pQos.Presentation.OrderedAccess  = true;
            pQos.Presentation.CoherentAccess = true;
            pQos.Presentation.AccessScope    = PresentationQosPolicyAccessScopeKind.InstancePresentationQos;
            _publisher = _participant.CreatePublisher(pQos);
            Assert.IsNotNull(_publisher);

            _writer = _publisher.CreateDataWriter(_topic);
            Assert.IsNotNull(_writer);
            _dataWriter = new TestStructDataWriter(_writer);

            DataReaderQos qos = new DataReaderQos();

            qos.Reliability.Kind = ReliabilityQosPolicyKind.ReliableReliabilityQos;
            _reader = _subscriber.CreateDataReader(_topic, qos);
            Assert.IsNotNull(_reader);
        }
예제 #2
0
        public void TestCreateParticipant()
        {
            // Test simplest overload
            DomainParticipant domainParticipant0 = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.RTPS_DOMAIN);

            Assert.IsNotNull(domainParticipant0);
            Assert.AreEqual(AssemblyInitializer.RTPS_DOMAIN, domainParticipant0.DomainId);
            Assert.IsNull(domainParticipant0.GetListener());

            DomainParticipantQos qos    = new DomainParticipantQos();
            ReturnCode           result = domainParticipant0.GetQos(qos);

            Assert.AreEqual(ReturnCode.Ok, result);
            TestHelper.TestDefaultDomainParticipantQos(qos);

            // Test overload with QoS parameter
            qos = TestHelper.CreateNonDefaultDomainParticipantQos();
            DomainParticipant domainParticipant1 = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.RTPS_DOMAIN, qos);

            Assert.IsNotNull(domainParticipant1);
            Assert.AreEqual(AssemblyInitializer.RTPS_DOMAIN, domainParticipant1.DomainId);
            Assert.IsNull(domainParticipant1.GetListener());

            qos    = new DomainParticipantQos();
            result = domainParticipant1.GetQos(qos);
            Assert.AreEqual(ReturnCode.Ok, result);
            TestHelper.TestNonDefaultDomainParticipantQos(qos);

            // Test overload with listener parameter
            MyParticipantListener listener           = new MyParticipantListener();
            DomainParticipant     domainParticipant2 = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.RTPS_DOMAIN, listener);

            Assert.IsNotNull(domainParticipant2);
            Assert.AreEqual(AssemblyInitializer.RTPS_DOMAIN, domainParticipant2.DomainId);
            Assert.IsNotNull(domainParticipant2.GetListener());

            result = domainParticipant2.GetQos(qos);
            Assert.AreEqual(ReturnCode.Ok, result);
            TestHelper.TestDefaultDomainParticipantQos(qos);

            // Test overload with listener and StatusMask parameters
            DomainParticipant domainParticipant3 = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.RTPS_DOMAIN, listener, StatusMask.NoStatusMask);

            Assert.IsNotNull(domainParticipant3);
            Assert.AreEqual(AssemblyInitializer.RTPS_DOMAIN, domainParticipant3.DomainId);
            Assert.IsNotNull(domainParticipant3.GetListener());

            result = domainParticipant2.GetQos(qos);
            Assert.AreEqual(ReturnCode.Ok, result);
            TestHelper.TestDefaultDomainParticipantQos(qos);

            // Test overload with QoS and listener parameters
            qos = new DomainParticipantQos();
            qos.EntityFactory.AutoenableCreatedEntities = false;
            qos.UserData.Value = new List <byte> {
                0x42
            };
            DomainParticipant domainParticipant4 = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.RTPS_DOMAIN, qos, listener);

            Assert.IsNotNull(domainParticipant4);
            Assert.AreEqual(AssemblyInitializer.RTPS_DOMAIN, domainParticipant4.DomainId);

            result = domainParticipant4.GetQos(qos);
            Assert.AreEqual(ReturnCode.Ok, result);
            TestHelper.TestNonDefaultDomainParticipantQos(qos);

            // Test full call overload
            qos = new DomainParticipantQos();
            qos.EntityFactory.AutoenableCreatedEntities = false;
            qos.UserData.Value = new List <byte> {
                0x42
            };
            DomainParticipant domainParticipant5 = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.RTPS_DOMAIN, qos, listener, StatusMask.NoStatusMask);

            Assert.IsNotNull(domainParticipant5);
            Assert.AreEqual(AssemblyInitializer.RTPS_DOMAIN, domainParticipant5.DomainId);

            result = domainParticipant5.GetQos(qos);
            Assert.AreEqual(ReturnCode.Ok, result);
            TestHelper.TestNonDefaultDomainParticipantQos(qos);

            // Delete all participants
            result = AssemblyInitializer.Factory.DeleteParticipant(domainParticipant0);
            Assert.AreEqual(ReturnCode.Ok, result);

            result = AssemblyInitializer.Factory.DeleteParticipant(domainParticipant1);
            Assert.AreEqual(ReturnCode.Ok, result);

            result = AssemblyInitializer.Factory.DeleteParticipant(domainParticipant2);
            Assert.AreEqual(ReturnCode.Ok, result);

            result = AssemblyInitializer.Factory.DeleteParticipant(domainParticipant3);
            Assert.AreEqual(ReturnCode.Ok, result);

            result = AssemblyInitializer.Factory.DeleteParticipant(domainParticipant4);
            Assert.AreEqual(ReturnCode.Ok, result);

            result = AssemblyInitializer.Factory.DeleteParticipant(domainParticipant5);
            Assert.AreEqual(ReturnCode.Ok, result);
        }