Commit 66eba492 authored by Mubeena Ishaq's avatar Mubeena Ishaq
Browse files

Merge branch 'STF625_TASK4' of https://forge.etsi.org/rep/mec/AdvantEDGE into STF625_TASK4

parents becbf02f 360258bb
Loading
Loading
Loading
Loading
+111 −29
Original line number Diff line number Diff line
@@ -500,22 +500,22 @@ func TestNotImplemented(t *testing.T) {
	fmt.Println("--- ", t.Name())
	log.MeepTextLogInit(t.Name())

	_, err := sendRequest(http.MethodDelete, "/subscriptions/1", nil, nil, nil, http.StatusNotImplemented, IndividualSubscriptionDELETE)
	if err != nil {
		t.Fatalf("Failed to get expected response")
	}

	_, err = sendRequest(http.MethodGet, "/subscriptions/1", nil, nil, nil, http.StatusNotImplemented, IndividualSubscriptionGET)
	if err != nil {
		t.Fatalf("Failed to get expected response")
	}

	_, err = sendRequest(http.MethodPut, "/subscriptions/1", nil, nil, nil, http.StatusNotImplemented, IndividualSubscriptionPUT)
	if err != nil {
		t.Fatalf("Failed to get expected response")
	}

	_, err = sendRequest(http.MethodGet, "/queries/pc5_provisioning_info", nil, nil, nil, http.StatusNotImplemented, ProvInfoGET)
	// _, err := sendRequest(http.MethodDelete, "/subscriptions/1", nil, nil, nil, http.StatusNotImplemented, IndividualSubscriptionDELETE)
	// if err != nil {
	// 	t.Fatalf("Failed to get expected response")
	// }

	// _, err = sendRequest(http.MethodGet, "/subscriptions/1", nil, nil, nil, http.StatusNotImplemented, IndividualSubscriptionGET)
	// if err != nil {
	// 	t.Fatalf("Failed to get expected response")
	// }

	// _, err = sendRequest(http.MethodPut, "/subscriptions/1", nil, nil, nil, http.StatusNotImplemented, IndividualSubscriptionPUT)
	// if err != nil {
	// 	t.Fatalf("Failed to get expected response")
	// }

	_, err := sendRequest(http.MethodGet, "/queries/pc5_provisioning_info", nil, nil, nil, http.StatusNotImplemented, ProvInfoGET)
	if err != nil {
		t.Fatalf("Failed to get expected response")
	}
@@ -530,20 +530,15 @@ func TestNotImplemented(t *testing.T) {
		t.Fatalf("Failed to get expected response")
	}

	_, err = sendRequest(http.MethodGet, "/subscriptions", nil, nil, nil, http.StatusNotImplemented, SubGET)
	if err != nil {
		t.Fatalf("Failed to get expected response")
	}

	_, err = sendRequest(http.MethodPost, "/subscriptions", nil, nil, nil, http.StatusNotImplemented, SubPOST)
	if err != nil {
		t.Fatalf("Failed to get expected response")
	}
	// _, err = sendRequest(http.MethodGet, "/subscriptions", nil, nil, nil, http.StatusNotImplemented, SubGET)
	// if err != nil {
	// 	t.Fatalf("Failed to get expected response")
	// }

	_, err = sendRequest(http.MethodPost, "/publish_v2x_message", nil, nil, nil, http.StatusNotImplemented, V2xMessagePOST)
	if err != nil {
		t.Fatalf("Failed to get expected response")
	}
	// _, err = sendRequest(http.MethodPost, "/publish_v2x_message", nil, nil, nil, http.StatusNotImplemented, V2xMessagePOST)
	// if err != nil {
	// 	t.Fatalf("Failed to get expected response")
	// }

}

@@ -649,6 +644,93 @@ func TestPredictedQosPost(t *testing.T) {
	terminateScenario()
}

func TestSubscriptionPost(t *testing.T) {
	fmt.Println("--- ", t.Name())
	log.MeepTextLogInit(t.Name())

	initializeVars()

	err := Init()
	if err != nil {
		t.Fatalf("Error initializing test basic procedure")
	}
	err = Run()
	if err != nil {
		t.Fatalf("Error running test basic procedure")
	}

	fmt.Println("Set a scenario")
	initialiseScenario(testScenario)

	time.Sleep(1000 * time.Millisecond)
	updateScenario("mobility1")

	/******************************
	 * expected response section
	 ******************************/
	// Initialize the data structure for the POST request
	// MEC-030 Clause 6.3.5
	// MEC-030 Clause 7.8.3.4
	expected_subscriptionType := "V2xMsgSubscription"
	expected_callbackReference := "MyCallback"

	expected_href := LinkType{Href: "http://meAppServer.example.com/vis/v2/subscriptions/123"}
	expected_self := Links{Self: &expected_href}
	//expected_link := V2xMsgSubscription{Links: &expected_self}
	expected_msgType := []string{"1", "2"}
	//expected_stdOrganization :=
	expected_filterCriteria := V2xMsgSubscriptionFilterCriteria{StdOrganization: "ETSI", MsgType: expected_msgType}
	expected_v2xMsgSubscription := V2xMsgSubscription{Links: &expected_self, CallbackReference: expected_callbackReference, ExpiryDeadline: nil, FilterCriteria: &expected_filterCriteria, RequestTestNotification: false, SubscriptionType: expected_subscriptionType, WebsockNotifConfig: nil}
	expected_v2xMsgSubscription_str, err := json.Marshal(expected_v2xMsgSubscription)
	if err != nil {
		t.Fatalf(err.Error())
	}
	fmt.Println("expected_v2xMsgSubscription_str: ", string(expected_v2xMsgSubscription_str))

	/******************************
	 * expected request section
	 ******************************/

	subscriptionType := "V2xMsgSubscription"
	callbackReference := "MyCallback"
	msgType := []string{"1", "2"}
	//expected_stdOrganization :=
	filterCriteria := V2xMsgSubscriptionFilterCriteria{StdOrganization: "ETSI", MsgType: msgType}

	testv2xMsgSubscription := V2xMsgSubscription{CallbackReference: callbackReference, FilterCriteria: &filterCriteria, RequestTestNotification: false, SubscriptionType: subscriptionType, WebsockNotifConfig: nil}
	body, err := json.Marshal(testv2xMsgSubscription)
	if err != nil {
		t.Fatalf(err.Error())
	}
	fmt.Println("body: ", string(body))

	/******************************
	 * request execution section
	 ******************************/

	rr, err := sendRequest(http.MethodPost, "/subscription", bytes.NewBuffer(body), nil, nil, http.StatusCreated, subscriptionsPost)
	if err != nil {
		t.Fatalf(err.Error())
	}
	log.Info("sendRequest done")

	var respBody V2xMsgSubscription
	err = json.Unmarshal([]byte(rr), &respBody)
	if err != nil {
		t.Fatalf(err.Error())
	}
	fmt.Println("respBody: ", respBody)
	if rr != string(expected_v2xMsgSubscription_str) {
		t.Fatalf(err.Error())
	}
	log.Info("Received expected response")

	/******************************
	 * back to initial state section
	 ******************************/
	terminateScenario()
}

func initializeVars() {
	mod.DbAddress = redisTestAddr
	redisAddr = redisTestAddr