Commit 3e912294 authored by Michele Carignani's avatar Michele Carignani
Browse files

CTI revision of MEC 011 TP (plus .gitignore)

   - removed _noted file
   - added domain and data external files
parent 44597636
Loading
Loading
Loading
Loading

.gitignore

0 → 100644
+3 −0
Original line number Diff line number Diff line
*.aird
*.tdl
.project
+16 −0
Original line number Diff line number Diff line
Package MEC_011_DATA {
	
	Data { /* To be mo */
		type STRING;
		type JSON;
		type string with s of type STRING;
		
		STRING "application/json;charset=utf-8";
		string CONTENT_JSON containing s indicating value "application/json;charset=utf-8"; 
		
		JSON valid_serviceInfo_list; // As specified in MEC 011 Sect. 6.2.2
	
		
	
	}
}
 No newline at end of file
+24 −0
Original line number Diff line number Diff line
Package MEC_011_Domain {
	
	Domain {
		pics:
		- PIC_MEC_PLAT
		- PIC_SERVICES
		;
		entities:
		- MEC_APP	// MEC Application using the MEC Platform Application Enablement API
		- IUT		// MEC Platform
		;
		events:
		- services_running		// services available in the IUT
		- started				// MEC_APP up and running
		- authorised			// MEC_APP authenticated and authorised to use services
		- consume_services		// MEC_APP can use services
		- receives				// IUT receives an HTTP request
		- sends					// IUT sends an HTTP response
		- being_in
		- idle_state // Idle state: The MEC platform has services running and MEC Application is authorized to consume services
		;
	}
	
}
 No newline at end of file
+21 −76
Original line number Diff line number Diff line
@@ -13,103 +13,48 @@ copyright notice shall be included in all copies of whole or part of this
file and shall not imply any sub-license right.
*/
 
Package MEC_011_mp1 {
	

/*
 * Q: one package for all endpoints or one package per endpoint?
 */
 
Package "MEC-011 API, Services endpoint, clause 7.4" {
	
	/*
	 * Q: Do we add the package purpose and/or scope as a 
	 * comment or is there any keyword for this (like for the test objective)?
	 */
	Domain {
		pics:
		- PIC_MEC_PLAT
		;
		entities:
		- MEC_APP	// MEC Application using the MEC Platform Application Enablement API
		- IUT		// MEC Platform
		;
		events:
		- services_running		// services available in the IUT
		- started				// MEC_APP up and running
		- authorised			// MEC_APP authenticated and authorised to use services
		- consume_services		// MEC_APP can use services
		- receives				// IUT receives an HTTP request
		- sends					// IUT sends an HTTP response
		;
	}
	import all from MEC_011_DATA;
	import all from MEC_011_Domain;
	
	Test Purpose {
		TP Id "TP/MEC/PLATFORM/API/SERVICES/001"
		TP Id "TP_MEC_PLAT_MP1_SAQ_BV_001" // SAQ = Service Availability Query
		
		Test objective 
			"Check that the IUT responds with a list of available MEC services 
			when queried by a MEC Application"
		
		Reference "ETSI GS MEC 011 V2.0.3, clause 7.4.3.1"
 		PICS Selection PIC_MEC_PLAT
		
		// ConfigId: TODO
 		
 		PICS Selection PIC_MEC_PLAT PIC_SERVICES

		Initial conditions  with {
			the IUT entity having services_running
			and the IUT entity having started the MEC_APP entity
			and the MEC_APP entity is authorised to consume_services	/* Q: authorisation is for the services defined by consume_services.
																		 * Is this clear and do-able?
																		 */
			the IUT entity being_in idle_state
		}

		Expected behaviour
		    ensure that {
		        when {
		        	// Q: should the parameters be done in a configuration (Data/Configuration like in lis.tplsan2 example)?
		            the IUT entity receives a GET containing
		                Uri indicating value "/mp1/v1/services?ser_category_id=xxx",	// Q: how to define the query parameters?
		                Host,
		                Content_type indicating value "application/json;charset=utf-8",		// Q: is the content type defined anywhere?
		                // Q: how to ensure HTTPS, OAuth 2.0 with bearer tokens (clause 7.2)
		                ;
		            ;
		                Uri indicating value "/mp1/v1/services",		             
		                Host indicating value IUT_HOSTNAME,
		                Token indicating value VALID_TOKEN,
		                Content_type indicating value CONTENT_JSON;   
  	                /* QUERY PARAMETERS CAN BE EXPRESSED IN THE FOLLOWING WAY WHEN TESTABLE
		                  	query_parameters containing
		                        ser_category_id indicating value CATEGORY_X, 
		                        is_local indicating value TRUE;		                
										*/
		        }
		        then {
		            the IUT entity sends a httpResponse containing
		                Status_Code indicating value "200 OK", 	// Q: are we to expect only the integer value or also the string?	

			            /* Q: should we test error responses (4xx) as well to ensure all cases are covered?
			             * Should the expected error have a pass verdict?
			             * 
			             * Q: should the status code be in the MEC-025 tables?
			             */

		                version indicating value "1.0",		// Q: do we only accept a specific version?
		                Content_type indicating value "application/json;charset=utf-8",
		                Status_Code indicating value "200 OK",
		                Content_type indicating value CONTENT_JSON,
		                body containing
		                	// Taken from an example
		                	// Are we going to use this verbose format or using mappable test data as per 'TDL Tutorial.pdf, slide 12'? 
		                    xmlMessage containing
		                        version indicating value "1.0",
		                        element "locationResponse" inNamespace "urn:ietf:params:xml:ns:geopriv:held" containing
		                            element "presence" inNamespace "urn:ietf:params:xml:ns:pidf" containing
		                                attribute "entity" indicating value valid "pres:" uri,
		                                element "tuple" containing
		                                    attribute "id",
		                                    element "status" containing
		                                        element "geopriv" inNamespace "urn:ietf:params:xml:ns:pidf:geopriv10" containing
		                                            element "location-info" containing
		                                                element "Point" inNamespace "http://www.opengis.net/gml" containing
		                                                    attribute "srsName" indicating value "urn:ogc:def:crs:EPSG::4326",
		                                                    element "pos" indicating value POINT_POS
		                                                ;
		                                            ;
		                                        ;
		                                    ;
		                                ;
		                            ;
		                        ;
		                    ;
		                ;
		                	valid_serviceInfo_list;
		            ;
		        }
		}
+0 −200
Original line number Diff line number Diff line
/*
Copyright (c) ETSI 2018.

This software is subject to copyrights owned by ETSI. Non-exclusive permission
is hereby granted, free of charge, to copy, reproduce and amend this file
under the following conditions: It is provided "as is", without warranty of any
kind, expressed or implied.

ETSI shall never be liable for any claim, damages, or other liability arising
from its use or inability of use.This permission does not apply to any documentation
associated with this file for which ETSI keeps all rights reserved. The present
copyright notice shall be included in all copies of whole or part of this
file and shall not imply any sub-license right.
*/



/*
 * Q: one package for all endpoints or one package per endpoint?
   A: TBD when we define the Test Suite Structure in details
 */
 
Package "MEC-011 API, Services endpoint, clause 7.4" {
	
	/*
	 * Q: Do we add the package purpose and/or scope as a 
	 * comment or is there any keyword for this (like for the test objective)?
	 */
	Domain {
		pics:
		- PIC_MEC_PLAT
		;
		entities:
		- MEC_APP	// MEC Application using the MEC Platform Application Enablement API
		- IUT		// MEC Platform
		;
		events:
		- services_running		// services available in the IUT
		- started				// MEC_APP up and running
		- authorised			// MEC_APP authenticated and authorised to use services
		- consume_services		// MEC_APP can use services
		- receives				// IUT receives an HTTP request
		- sends					// IUT sends an HTTP response
		;
	}
	
	Test Purpose {
		TP Id "TP/MEC/PLATFORM/API/SERVICES/001"
		
		Test objective 
			"Check that the IUT responds with a list of available MEC services 
			when queried by a MEC Application"
		
		Reference "ETSI GS MEC 011 V2.0.3, clause 7.4.3.1"
 		PICS Selection PIC_MEC_PLAT /* TODO add ICS from MEC 025 sect 7 */

		Initial conditions  with {
			the IUT entity having services_running /* TODO replace by the new PICS */
			and the IUT entity having started the MEC_APP entity /* TODO give a name to this state */
			and the MEC_APP entity is authorised to consume_services 
				/* TODO this can stay in the state? */	
				/* Q: authorisation is for the services defined by consume_services.
				 * Is this clear and do-able?
				 */
		}

		Expected behaviour
		    ensure that {
		        when {
		        	// Q: should the parameters be done in a configuration (Data/Configuration like in lis.tplsan2 example)?
		        		// A: can be resolved using "snippets" or "variant"
		            the IUT entity receives a GET containing
		                Uri indicating value "/mp1/v1/services?ser_category_id=xxx",	// Q: how to define the query parameters?
		                Host,
		                Content_type indicating value "application/json;charset=utf-8",		// Q: is the content type defined anywhere?
		                // Q: how to ensure HTTPS, OAuth 2.0 with bearer tokens (clause 7.2)
		                ;
		            ;
		        }
		        then {
		            the IUT entity sends a httpResponse containing
		                Status_Code indicating value "200 OK", 	// Q: are we to expect only the integer value or also the string?	

			            /* Q: should we test error responses (4xx) as well to ensure all cases are covered?
			             * Should the expected error have a pass verdict?
			             * 
			             * Q: should the status code be in the MEC-025 tables?
			             */

		                version indicating value "1.0",		// Q: do we only accept a specific version?
		                Content_type indicating value "application/json;charset=utf-8",
		                body containing
		                	// Taken from an example
		                	// Are we going to use this verbose format or using mappable test data as per 'TDL Tutorial.pdf, slide 12'? 
		                    xmlMessage containing
		                        version indicating value "1.0",
		                        element "locationResponse" inNamespace "urn:ietf:params:xml:ns:geopriv:held" containing
		                            element "presence" inNamespace "urn:ietf:params:xml:ns:pidf" containing
		                                attribute "entity" indicating value valid "pres:" uri,
		                                element "tuple" containing
		                                    attribute "id",
		                                    element "status" containing
		                                        element "geopriv" inNamespace "urn:ietf:params:xml:ns:pidf:geopriv10" containing
		                                            element "location-info" containing
		                                                element "Point" inNamespace "http://www.opengis.net/gml" containing
		                                                    attribute "srsName" indicating value "urn:ogc:def:crs:EPSG::4326",
		                                                    element "pos" indicating value POINT_POS
		                                                ;
		                                            ;
		                                        ;
		                                    ;
		                                ;
		                            ;
		                        ;
		                    ;
		                ;
		            ;
		        }
		}
	}


	


	Test Purpose {
		TP Id "TP/MEC/PLATFORM/API/SERVICES/002"
		
		/* Q:
		this is testing for 5.2.4 (service registration/update plus notification to other APPs) 
		but the reference is for  7.4.3.4 (service registration/update only).
		What shall be the scope of the test?
		*/
		
		Test objective 
			"Check that the IUT notifies the authorised relevant application instances 
			when a new service is registered or updated"
		
		Reference "ETSI GS MEC 011 V2.0.3, clause 7.4.3.4"
 		PICS Selection PIC_MEC_PLAT		// Q: do we need a different one?

		/* Q:
		should we have different APPs that won't get the notification because they  
		aren't registered for the service (for better test coverage and accuracy)?
		*/
		Initial conditions  with {
			the IUT entity having services_running
			and the IUT entity having started the MEC_APP entity
			and the MEC_APP is authorized to consume_services
		}

		Expected behaviour
		    ensure that {
		        when {
		        	// Q: should the parameters be done in a configuration (Data/Configuration like in lis.tplsan2 example)?
		            the IUT entity receives a POST containing
		                Uri indicating value "/mp1/v1/services",	// Q: how to define the query parameter?
		                Host,
		                Content_type indicating value "application/json;charset=utf-8",		// Q: is the content type defined anywhere?
		                // Q: how to ensure HTTPS, OAuth 2.0 with bearer tokens (clause 7.2)
		                ;
		            ;
		        }
		        then {
		            the IUT entity sends a httpResponse containing
			            // Q: should the status code be in the MEC-025 tables?
		                Status_Code indicating value "200 OK",
		                version indicating value "1.0",		// Q: do we only accept a specific version?
		                Content_type indicating value "application/json;charset=utf-8",
		                body containing
		                	// Taken from an example
		                	// Are we going to use this verbose format or using mappable test data as per 'TDL Tutorial.pdf, slide 12'? 
		                    xmlMessage containing
		                        version indicating value "1.0",
		                        element "locationResponse" inNamespace "urn:ietf:params:xml:ns:geopriv:held" containing
		                            element "presence" inNamespace "urn:ietf:params:xml:ns:pidf" containing
		                                attribute "entity" indicating value valid "pres:" uri,
		                                element "tuple" containing
		                                    attribute "id",
		                                    element "status" containing
		                                        element "geopriv" inNamespace "urn:ietf:params:xml:ns:pidf:geopriv10" containing
		                                            element "location-info" containing
		                                                element "Point" inNamespace "http://www.opengis.net/gml" containing
		                                                    attribute "srsName" indicating value "urn:ogc:def:crs:EPSG::4326",
		                                                    element "pos" indicating value POINT_POS
		                                                ;
		                                            ;
		                                        ;
		                                    ;
		                                ;
		                            ;
		                        ;
		                    ;
		                ;
		            ;
		        }
		}
	}

}