public override Test.Framework.TestResult Run()
        {
            Test.Framework.TestResult  result;
            Test.Framework.TestVerdict expVerdict = Test.Framework.TestVerdict.Pass;
            string expResult = "get_discovered_xxx succeeded.";

            DDS.DomainParticipantFactory dpf;
            DDS.IDomainParticipant       dp1;
            DDS.IDomainParticipant       dp2;
            DDS.IDomainParticipant       dp3;
            DDS.ITopic   topic1;
            DDS.ITopic   topic2;
            DDS.TopicQos tQos;
            tc_get_discovered_xxx.Type1TypeSupport type1_ts;
            bool dp1res = false;
            bool dp2res = false;
            bool dp3res = false;
            bool t1res  = false;
            bool t2res  = false;

            DDS.ReturnCode returnCode;

            DDS.ParticipantBuiltinTopicData participant_data = null;
            DDS.TopicBuiltinTopicData       topic_data       = null;
            DDS.SampleInfo[]         sample_infos            = null;
            DDS.DomainParticipantQos dpQos     = null;
            DDS.InstanceHandle[]     sequence  = null;
            DDS.InstanceHandle[]     sequence1 = null;

            System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
            tQos = new DDS.TopicQos();

            dpf = DDS.DomainParticipantFactory.Instance;
            if (dpf == null)
            {
                result = new Test.Framework.TestResult(expResult, "DomainParticipantFactory could not be initialised."
                                                       , expVerdict, Test.Framework.TestVerdict.Fail);
                return(result);
            }
            result = new Test.Framework.TestResult(expResult, "DomainParticipantFactory could be initialised."
                                                   , expVerdict, Test.Framework.TestVerdict.Pass);

            if (dpf.GetDefaultParticipantQos(ref dpQos) != DDS.ReturnCode.Ok)
            {
                result = new Test.Framework.TestResult(expResult, "Default DomainParticipantQos could not be resolved."
                                                       , expVerdict, Test.Framework.TestVerdict.Fail);
                return(result);
            }


            dpQos.UserData.Value = encoding.GetBytes("dp1");

            dp1 = dpf.CreateParticipant(DDS.DomainId.Default, dpQos, null, 0);
            if (dp1 == null)
            {
                result = new Test.Framework.TestResult(expResult, "Test case failed. Failed to create dp1 participant"
                                                       , expVerdict, Test.Framework.TestVerdict.Fail);
                return(result);
            }

            dpQos.UserData.Value = encoding.GetBytes("dp2");

            dp2 = dpf.CreateParticipant(DDS.DomainId.Default, dpQos, null, 0);
            if (dp2 == null)
            {
                result = new Test.Framework.TestResult(expResult, "Test case failed. Failed to create dp2 participant"
                                                       , expVerdict, Test.Framework.TestVerdict.Fail);
                return(result);
            }

            dpQos.UserData.Value = encoding.GetBytes("dp3");

            dp3 = dpf.CreateParticipant(DDS.DomainId.Default, dpQos, null, 0);
            if (dp3 == null)
            {
                result = new Test.Framework.TestResult(expResult, "Test case failed. Failed to create dp3 participant"
                                                       , expVerdict, Test.Framework.TestVerdict.Fail);
                return(result);
            }

            /*
             * Get default Topic Qos settings
             */
            dp1.GetDefaultTopicQos(ref tQos);

            /* Create Topic */
            type1_ts = new tc_get_discovered_xxx.Type1TypeSupport();
            type1_ts.RegisterType(dp1, "tc_get_discovered_xxx::Type1");
            topic1 = dp1.CreateTopic("Topic1", "tc_get_discovered_xxx::Type1", tQos);

            if (topic1 == null)
            {
                result = new Test.Framework.TestResult(expResult, "Test case failed. Failed to create Topic1"
                                                       , expVerdict, Test.Framework.TestVerdict.Fail);
                return(result);
            }

            topic2 = dp1.CreateTopic("Topic2", "tc_get_discovered_xxx::Type1", tQos);

            if (topic2 == null)
            {
                result = new Test.Framework.TestResult(expResult, "Test case failed. Failed to create Topic2"
                                                       , expVerdict, Test.Framework.TestVerdict.Fail);
                return(result);
            }

            returnCode = dp1.GetDiscoveredParticipants(ref sequence);

            if (returnCode != DDS.ReturnCode.Ok)
            {
                result = new Test.Framework.TestResult(expResult, "get_discovered_participants returned not OK."
                                                       , expVerdict, Test.Framework.TestVerdict.Fail);
                return(result);
            }
            else
            {
                /* the test should find 5 participants:
                 * buildinParticipant
                 * spliced
                 * dp1
                 * dp2
                 * dp3
                 */

                if (sequence.Length != 5)
                {
                    result = new Test.Framework.TestResult(expResult, "get_discovered_participants failed found: " + sequence.Length + " expected 5"
                                                           , expVerdict, Test.Framework.TestVerdict.Fail);
                    return(result);
                }

                /* read from each handle the UserDataQos and check the result against the made participant names*/
                for (int i = 0; i < sequence.Length; i++)
                {
                    returnCode = dp1.GetDiscoveredParticipantData(ref participant_data, sequence[i]);

                    if (returnCode == DDS.ReturnCode.Ok)
                    {
                        if (participant_data.UserData.Value.Length > 0)
                        {
                            if (encoding.GetString(participant_data.UserData.Value).CompareTo("dp1") == 0)
                            {
                                dp1res = true;
                            }
                            else if (encoding.GetString(participant_data.UserData.Value).CompareTo("dp2") == 0)
                            {
                                dp2res = true;
                            }
                            else if (encoding.GetString(participant_data.UserData.Value).CompareTo("dp3") == 0)
                            {
                                dp3res = true;
                            }
                        }
                        // returnCode = dataReader.ReturnLoan(ref data_values, ref sample_infos);
                    }
                    else
                    {
                        result = new Test.Framework.TestResult(
                            expResult, "read instance failed",
                            expVerdict, Test.Framework.TestVerdict.Fail);
                        return(result);
                    }
                }
                if (!dp1res || !dp2res || !dp3res)
                {
                    result = new Test.Framework.TestResult(
                        expResult, "failed to discover all participants",
                        expVerdict, Test.Framework.TestVerdict.Fail);
                    return(result);
                }
            }

            returnCode = dp1.GetDiscoveredTopics(ref sequence1);

            if (returnCode != DDS.ReturnCode.Ok)
            {
                result = new Test.Framework.TestResult(expResult, "get_discovered_topics returned not OK."
                                                       , expVerdict, Test.Framework.TestVerdict.Fail);
                return(result);
            }
            else
            {
                if (sequence1.Length != 15)
                {
                    result = new Test.Framework.TestResult(expResult, "get_discovered_topics failed found: " + sequence1.Length + " expected 15"
                                                           , expVerdict, Test.Framework.TestVerdict.Fail);
                    return(result);
                }

                /* read from each handle the name and check the result against the made topic names*/
                for (int i = 0; i < sequence1.Length; i++)
                {
                    returnCode = dp1.GetDiscoveredTopicData(ref topic_data, sequence1[i]);

                    if (returnCode == DDS.ReturnCode.Ok)
                    {
                        if (topic_data.Name.CompareTo("Topic1") == 0)
                        {
                            t1res = true;
                        }
                        else if (topic_data.Name.CompareTo("Topic2") == 0)
                        {
                            t2res = true;
                        }
                    }
                    else
                    {
                        result = new Test.Framework.TestResult(
                            expResult, "get discovered topic data failed",
                            expVerdict, Test.Framework.TestVerdict.Fail);
                        return(result);
                    }
                }
                if (!t1res || !t2res)
                {
                    result = new Test.Framework.TestResult(
                        expResult, "failed to discover all topics",
                        expVerdict, Test.Framework.TestVerdict.Fail);
                    return(result);
                }

                result = new Test.Framework.TestResult(expResult, expResult, expVerdict, expVerdict);
                return(result);
            }
        }
Example #2
0
        public override Test.Framework.TestResult Run()
        {
            Test.Framework.TestResult result;
            Test.Framework.TestVerdict expVerdict = Test.Framework.TestVerdict.Pass;
            string expResult = "get_discovered_xxx succeeded.";
            DDS.DomainParticipantFactory dpf;
            DDS.IDomainParticipant dp1;
            DDS.IDomainParticipant dp2;
            DDS.IDomainParticipant dp3;
            DDS.ITopic                                  topic1;
            DDS.ITopic                                  topic2;
            DDS.TopicQos                                tQos;
            tc_get_discovered_xxx.Type1TypeSupport                type1_ts;
            bool dp1res = false;
            bool dp2res = false;
            bool dp3res = false;
            bool t1res = false;
            bool t2res = false;

            DDS.ReturnCode returnCode;
                
            DDS.ParticipantBuiltinTopicData       participant_data = null;
            DDS.TopicBuiltinTopicData             topic_data = null;
	        DDS.SampleInfo[]                      sample_infos = null;
	        DDS.DomainParticipantQos              dpQos = null;
	        DDS.InstanceHandle[]                  sequence = null;
	        DDS.InstanceHandle[]                  sequence1 = null;
            
            System.Text.ASCIIEncoding  encoding = new System.Text.ASCIIEncoding();
            tQos = new DDS.TopicQos();

            dpf = DDS.DomainParticipantFactory.Instance;
            if (dpf == null)
            {
                result = new Test.Framework.TestResult(expResult, "DomainParticipantFactory could not be initialised."
                    , expVerdict, Test.Framework.TestVerdict.Fail);
                return result;
            }
            result = new Test.Framework.TestResult(expResult, "DomainParticipantFactory could be initialised."
                , expVerdict, Test.Framework.TestVerdict.Pass);

            if (dpf.GetDefaultParticipantQos(ref dpQos) != DDS.ReturnCode.Ok)
            {
                result = new Test.Framework.TestResult(expResult, "Default DomainParticipantQos could not be resolved."
                    , expVerdict, Test.Framework.TestVerdict.Fail);
                return result;
            }
 
            
            dpQos.UserData.Value = encoding.GetBytes("dp1");
            
            dp1 = dpf.CreateParticipant (DDS.DomainId.Default, dpQos, null, 0);
	        if (dp1 == null) {
	              result = new Test.Framework.TestResult(expResult, "Test case failed. Failed to create dp1 participant"
                    , expVerdict, Test.Framework.TestVerdict.Fail);
                return result;
	        } 
	        
	        dpQos.UserData.Value = encoding.GetBytes("dp2");
            
            dp2 = dpf.CreateParticipant (DDS.DomainId.Default, dpQos, null, 0);
            if (dp2 == null) {
                  result = new Test.Framework.TestResult(expResult, "Test case failed. Failed to create dp2 participant"
                    , expVerdict, Test.Framework.TestVerdict.Fail);
                return result;
            } 
            
            dpQos.UserData.Value = encoding.GetBytes("dp3");
            
            dp3 = dpf.CreateParticipant (DDS.DomainId.Default, dpQos, null, 0);
            if (dp3 == null) {
                  result = new Test.Framework.TestResult(expResult, "Test case failed. Failed to create dp3 participant"
                    , expVerdict, Test.Framework.TestVerdict.Fail);
                return result;
            } 
            
            /*
             * Get default Topic Qos settings
             */
            dp1.GetDefaultTopicQos(ref tQos);

            /* Create Topic */
            type1_ts = new tc_get_discovered_xxx.Type1TypeSupport();
            type1_ts.RegisterType(dp1, "tc_get_discovered_xxx::Type1");
            topic1 = dp1.CreateTopic("Topic1", "tc_get_discovered_xxx::Type1", tQos);
            
            if (topic1 == null) {
                  result = new Test.Framework.TestResult(expResult, "Test case failed. Failed to create Topic1"
                    , expVerdict, Test.Framework.TestVerdict.Fail);
                return result;
            } 

            topic2 = dp1.CreateTopic("Topic2", "tc_get_discovered_xxx::Type1", tQos);
            
            if (topic2 == null) {
                  result = new Test.Framework.TestResult(expResult, "Test case failed. Failed to create Topic2"
                    , expVerdict, Test.Framework.TestVerdict.Fail);
                return result;
            } 
            
            returnCode = dp1.GetDiscoveredParticipants(ref sequence);

	        if (returnCode != DDS.ReturnCode.Ok) {
	            result = new Test.Framework.TestResult(expResult, "get_discovered_participants returned not OK."
	                    , expVerdict, Test.Framework.TestVerdict.Fail);
	                return result;
	
	
	        } else {
	            /* the test should find 5 participants:
	             * buildinParticipant
	             * spliced
	             * dp1
	             * dp2
	             * dp3
	             */
	
	            if (sequence.Length != 5) {
	                result = new Test.Framework.TestResult(expResult, "get_discovered_participants failed found: "+sequence.Length+" expected 5"
	                    , expVerdict, Test.Framework.TestVerdict.Fail);
	                return result;
	            }
	            
	            /* read from each handle the UserDataQos and check the result against the made participant names*/
	            for (int i=0; i<sequence.Length;i++) {
	
	                returnCode = dp1.GetDiscoveredParticipantData(ref participant_data,sequence[i]);
	                
	                if (returnCode == DDS.ReturnCode.Ok) {
	                    if (participant_data.UserData.Value.Length >0) {
	                        if ( encoding.GetString(participant_data.UserData.Value).CompareTo("dp1") == 0) {
	                            dp1res = true;
	                        } else if (encoding.GetString(participant_data.UserData.Value).CompareTo("dp2") == 0) {
	                            dp2res= true;
	                        }  else if (encoding.GetString(participant_data.UserData.Value).CompareTo("dp3") == 0) {
	                            dp3res = true;
	                        }
	                    }
	                   // returnCode = dataReader.ReturnLoan(ref data_values, ref sample_infos);
	                } else {
	                     result = new Test.Framework.TestResult(
	                            expResult, "read instance failed",
	                            expVerdict, Test.Framework.TestVerdict.Fail);
	                    return result;
	                }
	            }
	            if (!dp1res || !dp2res || !dp3res) {
	                 result = new Test.Framework.TestResult(
	                        expResult, "failed to discover all participants",
	                        expVerdict, Test.Framework.TestVerdict.Fail);
	                return result;
	            }
	        }
	        
	        returnCode = dp1.GetDiscoveredTopics(ref sequence1);

            if (returnCode != DDS.ReturnCode.Ok) {
                result = new Test.Framework.TestResult(expResult, "get_discovered_topics returned not OK."
                        , expVerdict, Test.Framework.TestVerdict.Fail);
                    return result;
    
    
            } else {
		        if (sequence1.Length != 10) {
	                result = new Test.Framework.TestResult(expResult, "get_discovered_topics failed found: "+sequence1.Length+" expected 10"
	                    , expVerdict, Test.Framework.TestVerdict.Fail);
	                return result;
	            }

	            /* read from each handle the name and check the result against the made topic names*/
	            for (int i=0; i<sequence1.Length;i++) {

	                returnCode = dp1.GetDiscoveredTopicData(ref topic_data,sequence1[i]);
	                
	                if (returnCode == DDS.ReturnCode.Ok) {
                        if ( topic_data.Name.CompareTo("Topic1") == 0) {
                            t1res = true;
                        } else if (topic_data.Name.CompareTo("Topic2") == 0) {
                            t2res= true;
                        } 
	                } else {
	                     result = new Test.Framework.TestResult(
	                            expResult, "get discovered topic data failed",
	                            expVerdict, Test.Framework.TestVerdict.Fail);
	                    return result;
	                }
	            }
	            if (!t1res || !t2res) {
	                 result = new Test.Framework.TestResult(
	                        expResult, "failed to discover all topics",
	                        expVerdict, Test.Framework.TestVerdict.Fail);
	                return result;
	            }
	            
	        result = new Test.Framework.TestResult(expResult, expResult, expVerdict, expVerdict);
	        return result;   
          } 
      }