public void TestDeleteContainedEntities() { // Initialize entities TestStructTypeSupport support = new TestStructTypeSupport(); string typeName = support.GetTypeName(); ReturnCode result = support.RegisterType(_participant, typeName); Assert.AreEqual(ReturnCode.Ok, result); Topic topic = _participant.CreateTopic(nameof(TestDeleteContainedEntities), typeName); Assert.IsNotNull(topic); Assert.IsNull(topic.GetListener()); Assert.AreEqual(nameof(TestDeleteContainedEntities), topic.Name); Assert.AreEqual(typeName, topic.TypeName); Subscriber subscriber = _participant.CreateSubscriber(); Assert.IsNotNull(subscriber); // Call DeleteContainedEntities in an empty subscriber result = subscriber.DeleteContainedEntities(); Assert.AreEqual(ReturnCode.Ok, result); // Create a DataReader in the subscriber DataReader dataReader = subscriber.CreateDataReader(topic); Assert.IsNotNull(subscriber); // Try to delete the publisher without delete the datareader result = _participant.DeleteSubscriber(subscriber); Assert.AreEqual(ReturnCode.PreconditionNotMet, result); // Call DeleteContainedEntities and remove the subscriber again result = subscriber.DeleteContainedEntities(); Assert.AreEqual(ReturnCode.Ok, result); result = _participant.DeleteSubscriber(subscriber); Assert.AreEqual(ReturnCode.Ok, result); // Create a DataReader with null parameter DataReader nullDataReader = subscriber.CreateDataReader(null); Assert.IsNull(nullDataReader); // Create DataReader with incorrect qos DataReaderQos drQos = new DataReaderQos(); drQos.ResourceLimits.MaxSamples = 1; drQos.ResourceLimits.MaxSamplesPerInstance = 2; nullDataReader = subscriber.CreateDataReader(topic, drQos); Assert.IsNull(nullDataReader); }