From bf372f6102dad66d36e469c8f10e1c25c840a46a Mon Sep 17 00:00:00 2001
From: pkulkarni <pkulkarni75@gmail.com>
Date: Tue, 13 Jun 2017 10:01:19 +0200
Subject: [PATCH] Implementing New TCs for Discovery: oneM2M/CSE/DIS/BV/001,
 oneM2M/CSE/DIS/BV/003, oneM2M/CSE/DIS/BO/006, oneM2M/CSE/DIS/BI/007

---
 LibOneM2M/OneM2M_Templates.ttcn |  34 ++++++
 OneM2M_Testcases.ttcn           | 209 ++++++++++++++++++++++++++++++++
 2 files changed, 243 insertions(+)

diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index bd72b1b..146405c 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -222,6 +222,40 @@ module OneM2M_Templates {
 					semanticsFilter_list := {}
 				}
 			};
+			
+			/**
+			  * @desc RETRIEVE request primtive containing the Discovery Type in the discoveryResultType field and Filter Criteria in the filterCriteria field
+			  * @param p_targetResourceAddress Target resource address 
+			  * @param p_filterCriteria FilterCriteria
+			  * @param p_originator Originator (from)
+			 */
+			template (value) RequestPrimitive m_retrieveResourceDiscResTypeFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) DiscResType p_discResType, in template (value) FilterUsage p_filterUsage) modifies m_retrieveResource := {
+				requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
+				filterCriteria := {
+					contentType_list := {}, 
+					attribute_list := {}, 
+					filterUsage := p_filterUsage,
+					semanticsFilter_list := {}
+				},
+				discoveryResultType := p_discResType
+			};
+			
+			/**
+				  * @desc RETRIEVE request primtive containing the Discovery Type in the discoveryResultType field and Filter Criteria in the filterCriteria field
+				  * @param p_targetResourceAddress Target resource address 
+				  * @param p_filterCriteria FilterCriteria
+				  * @param p_originator Originator (from)
+				 */
+				template (value) RequestPrimitive m_retrieveResourceInvalidFormatOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) modifies m_retrieveResource := {
+					requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
+					filterCriteria := {
+						contentType_list := {}, 
+						attribute_list := {}, 
+						filterUsage := omit,
+						semanticsFilter_list := {}
+					}
+				};
+			
     	}//end group Retrieve
 
     	group Update {
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index c2da397..bb71ecb 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -9368,6 +9368,215 @@ module OneM2M_Testcases {
         		
         	} //end group g_CSE_DIS_BV_001
         	
+        	group g_CSE_DIS_BV_003
+        	{
+        		testcase TC_CSE_DIS_BV_003() runs on CseTester system CseSystem {
+					// Local variables
+					var MsgIn v_response;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var RequestPrimitive v_request;
+					var CseTester v_notifyHandler;
+					var integer v_ae2Index := -1;
+					const ResourceType c_containerResourceType := int3; 
+				
+					// Test control
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
+				
+					v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex);
+					v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1));
+					mcaPort.send(m_request(v_request));
+					tc_ac.start;
+					alt {
+					
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response {
+							tc_ac.stop;
+							if(not ischosen(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].URIList)){
+							  setverdict(pass, testcasename() & ": No Content is present");	
+							}
+							else
+							{
+							  setverdict(fail, testcasename() & ": Content available");
+							}
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while retrieving resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, testcasename() & ": No answer while retrieving resource");
+						}
+					 }	
+								
+					// Postamble
+					f_cse_postamble_deleteResources();
+				
+					// Tear down
+					f_cf01Down();
+				} // end TC_CSE_DIS_BV_003
+        	} //end group g_CSE_DIS_BV_003
+        	
+        	group g_CSE_DIS_BV_004
+        	{
+				testcase TC_CSE_DIS_BV_004() runs on CseTester system CseSystem {
+					// Local variables
+					var MsgIn v_response;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var RequestPrimitive v_request;
+					var CseTester v_notifyHandler;
+					var integer v_ae2Index := -1;
+					const ResourceType c_containerResourceType := int3; 
+					
+					// Test control
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
+					
+					v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex);
+					v_request := valueof(m_retrieveResourceDiscResTypeFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int2, int1));
+					mcaPort.send(m_request(v_request));
+					tc_ac.start;
+					alt {
+						
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response {
+							tc_ac.stop;
+							if(not ischosen(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].URIList)){
+							  setverdict(fail, testcasename() & ": URI List Representation containing unstructured addresses not present");	
+							}
+							else
+							{
+						      setverdict(pass, testcasename() & ": URI List Representation containing unstructured addresses available");
+							}
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while retrieving resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, testcasename() & ": No answer while retrieving resource");
+						}
+					 }	
+    								
+					// Postamble
+					f_cse_postamble_deleteResources();
+					
+					// Tear down
+					f_cf01Down();
+				} // end TC_CSE_DIS_BV_004
+				
+        	} //end group g_CSE_DIS_BV_004
+        	
+			group g_CSE_DIS_BO_006
+			{
+					testcase TC_CSE_DIS_BO_006() runs on CseTester system CseSystem {
+						// Local variables
+						var MsgIn v_response;
+						var integer v_aeIndex := -1;
+						var integer v_resourceIndex := -1;
+						var RequestPrimitive v_request;
+						var CseTester v_notifyHandler;
+						var integer v_ae2Index := -1;
+						const ResourceType c_containerResourceType := int3; 
+					
+						// Test control
+
+						// Test component configuration
+						f_cf01Up();
+
+						// Test adapter configuration
+
+						// Preamble
+						v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
+					
+						v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1));
+						mcaPort.send(m_request(v_request));
+						tc_ac.start;
+						alt {
+						
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, testcasename() & ": Resource not found");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while retrieving resource");
+							}
+							[] tc_ac.timeout {
+								setverdict(fail, testcasename() & ": No answer while retrieving resource");
+							}
+						 }	
+    								
+						// Postamble
+						f_cse_postamble_deleteResources();
+					
+						// Tear down
+						f_cf01Down();
+					} // end TC_CSE_DIS_BO_006
+				
+			} //end group g_CSE_DIS_BO_006
+			
+			group g_CSE_DIS_BI_007
+			{
+					testcase TC_CSE_DIS_BI_007() runs on CseTester system CseSystem {
+						// Local variables
+						var MsgIn v_response;
+						var integer v_aeIndex := -1;
+						var integer v_resourceIndex := -1;
+						var RequestPrimitive v_request;
+						var CseTester v_notifyHandler;
+						var integer v_ae2Index := -1;
+						const ResourceType c_containerResourceType := int3; 
+					
+						// Test control
+
+						// Test component configuration
+						f_cf01Up();
+
+						// Test adapter configuration
+
+						// Preamble
+						v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
+					    
+						v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); 
+						v_request := valueof(m_retrieveResourceInvalidFormatOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
+						mcaPort.send(m_request(v_request));
+						tc_ac.start;
+						alt {
+						
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int4102))) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, testcasename() & ": Contents Unacceptable");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while retrieving resource");
+							}
+							[] tc_ac.timeout {
+								setverdict(fail, testcasename() & ": No answer while retrieving resource");
+							}
+						 }	
+    								
+						// Postamble
+						f_cse_postamble_deleteResources();
+					
+						// Tear down
+						f_cf01Down();
+					} // end TC_CSE_DIS_BI_007	
+			} //end group g_CSE_DIS_BI_007
+				
         } //end group Group Discovery
 		
 		group Subscription_And_Notification {
-- 
GitLab