Loading go-apps/meep-vis/server/vis_test.go +199 −4 Original line number Diff line number Diff line Loading @@ -732,10 +732,22 @@ func TestSubscriptionV2XMsgSubscription(t *testing.T) { updateScenario("mobility1") // POST _ = TestSubscriptionPost(t) expectedGetResponse := TestSubscriptionPost(t) // GET //todo //GET Subscription //expectedListResourceURL := "/" + testScenarioName + "vis/v2/subscriptions" //expectedResourceURL := expectedListResourceURL + "?subscription_type=v2x_msg" subscriptionTypeQuery := V2X_MSG testSubscriptionsGet(t, subscriptionTypeQuery, expectedGetResponse) // GET Individual Subscription testIndividualSubscriptionGet(t, expectedGetResponse) // PUT testIndividualSubscriptionPut(t, true) // DELETE testIndividualSubscriptionDelete(t, true) /****************************** * back to initial state section Loading @@ -744,6 +756,189 @@ func TestSubscriptionV2XMsgSubscription(t *testing.T) { } //Generic GET function for any subscription type func testSubscriptionsGet(t *testing.T, subscriptionTypeQuery string, expectedResponse string) { /****************************** * expected response section ******************************/ //passed as a parameter since a POST had to be sent first /****************************** * request body section ******************************/ /****************************** * request queries section ******************************/ queryParam := make(map[string]string) queryParam["subscription_type"] = subscriptionTypeQuery /****************************** * request execution section ******************************/ var err error if expectedResponse == "" { _, err = sendRequest(http.MethodGet, "vis/v2/subscriptions", nil, nil, queryParam, http.StatusNotFound, SubGET) if err != nil { t.Fatalf("Failed to get expected response") } } else { rr, err := sendRequest(http.MethodGet, "/vis/v2/subscriptions", nil, queryParam, nil, http.StatusOK, SubGET) if err != nil { t.Fatalf("Failed to get expected response") } if rr != expectedResponse { t.Fatalf("Failed to get expected response") } log.Info("Received expected response for GET Subscription method") } } func testIndividualSubscriptionGet(t *testing.T, expectedResponse string) { /****************************** * expected response section ******************************/ //passed as a parameter since a POST had to be sent first /****************************** * request vars section ******************************/ vars := make(map[string]string) vars["subscriptionId"] = "1" /****************************** * request body section ******************************/ /****************************** * request queries section ******************************/ /****************************** * request execution section ******************************/ var err error if expectedResponse == "" { _, err = sendRequest(http.MethodGet, "/vis/v2/subscriptions/1", nil, vars, nil, http.StatusNotFound, IndividualSubscriptionGET) if err != nil { t.Fatalf("Failed to get expected response") } } else { rr, err := sendRequest(http.MethodGet, "/vis/v2/subscriptions/1", nil, vars, nil, http.StatusOK, IndividualSubscriptionGET) if err != nil { t.Fatalf("Failed to get expected response") } if rr != expectedResponse { t.Fatalf("Failed to get expected response") } log.Info("Received expected response for GET method") } } func testIndividualSubscriptionDelete(t *testing.T, expectSuccess bool) { /****************************** * request vars section ******************************/ vars := make(map[string]string) vars["subscriptionId"] = "1" /****************************** * request execution section ******************************/ if expectSuccess { _, err := sendRequest(http.MethodDelete, "/vis/v2/subscriptions/1", nil, vars, nil, http.StatusNoContent, IndividualSubscriptionDELETE) if err != nil { t.Fatalf("Failed to get expected response") } } else { _, err := sendRequest(http.MethodDelete, "/vis/v2/subscriptions/1", nil, vars, nil, http.StatusNotFound, IndividualSubscriptionDELETE) if err != nil { t.Fatalf("Failed to get expected response") } } } func testIndividualSubscriptionPut(t *testing.T, expectSuccess bool) string { /****************************** * expected response section ******************************/ 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_v2xMsgSubscriptionPut_str, err := json.Marshal(expected_v2xMsgSubscription) if err != nil { t.Fatalf(err.Error()) } fmt.Println("expected_v2xMsgSubscriptionPut_str: ", string(expected_v2xMsgSubscriptionPut_str)) /****************************** * request vars section ******************************/ vars := make(map[string]string) vars["subscriptionId"] = "1" /****************************** * request body section ******************************/ subscriptionType := "V2xMsgSubscription" callbackReference := "MyCallback" msgType := []string{"1", "3"} //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 queries section ******************************/ /****************************** * request execution section ******************************/ // TODO change status code rr, err := sendRequest(http.MethodPut, "/vis/v2/subscriptions/1", bytes.NewBuffer(body), nil, nil, http.StatusOK, IndividualSubscriptionPUT) 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_v2xMsgSubscriptionPut_str) { t.Fatalf(err.Error()) } log.Info("Received expected response for PUT method") return string(expected_v2xMsgSubscriptionPut_str) } func TestV2xMsgPublicationPost(t *testing.T) { fmt.Println("--- ", t.Name()) log.MeepTextLogInit(t.Name()) Loading Loading
go-apps/meep-vis/server/vis_test.go +199 −4 Original line number Diff line number Diff line Loading @@ -732,10 +732,22 @@ func TestSubscriptionV2XMsgSubscription(t *testing.T) { updateScenario("mobility1") // POST _ = TestSubscriptionPost(t) expectedGetResponse := TestSubscriptionPost(t) // GET //todo //GET Subscription //expectedListResourceURL := "/" + testScenarioName + "vis/v2/subscriptions" //expectedResourceURL := expectedListResourceURL + "?subscription_type=v2x_msg" subscriptionTypeQuery := V2X_MSG testSubscriptionsGet(t, subscriptionTypeQuery, expectedGetResponse) // GET Individual Subscription testIndividualSubscriptionGet(t, expectedGetResponse) // PUT testIndividualSubscriptionPut(t, true) // DELETE testIndividualSubscriptionDelete(t, true) /****************************** * back to initial state section Loading @@ -744,6 +756,189 @@ func TestSubscriptionV2XMsgSubscription(t *testing.T) { } //Generic GET function for any subscription type func testSubscriptionsGet(t *testing.T, subscriptionTypeQuery string, expectedResponse string) { /****************************** * expected response section ******************************/ //passed as a parameter since a POST had to be sent first /****************************** * request body section ******************************/ /****************************** * request queries section ******************************/ queryParam := make(map[string]string) queryParam["subscription_type"] = subscriptionTypeQuery /****************************** * request execution section ******************************/ var err error if expectedResponse == "" { _, err = sendRequest(http.MethodGet, "vis/v2/subscriptions", nil, nil, queryParam, http.StatusNotFound, SubGET) if err != nil { t.Fatalf("Failed to get expected response") } } else { rr, err := sendRequest(http.MethodGet, "/vis/v2/subscriptions", nil, queryParam, nil, http.StatusOK, SubGET) if err != nil { t.Fatalf("Failed to get expected response") } if rr != expectedResponse { t.Fatalf("Failed to get expected response") } log.Info("Received expected response for GET Subscription method") } } func testIndividualSubscriptionGet(t *testing.T, expectedResponse string) { /****************************** * expected response section ******************************/ //passed as a parameter since a POST had to be sent first /****************************** * request vars section ******************************/ vars := make(map[string]string) vars["subscriptionId"] = "1" /****************************** * request body section ******************************/ /****************************** * request queries section ******************************/ /****************************** * request execution section ******************************/ var err error if expectedResponse == "" { _, err = sendRequest(http.MethodGet, "/vis/v2/subscriptions/1", nil, vars, nil, http.StatusNotFound, IndividualSubscriptionGET) if err != nil { t.Fatalf("Failed to get expected response") } } else { rr, err := sendRequest(http.MethodGet, "/vis/v2/subscriptions/1", nil, vars, nil, http.StatusOK, IndividualSubscriptionGET) if err != nil { t.Fatalf("Failed to get expected response") } if rr != expectedResponse { t.Fatalf("Failed to get expected response") } log.Info("Received expected response for GET method") } } func testIndividualSubscriptionDelete(t *testing.T, expectSuccess bool) { /****************************** * request vars section ******************************/ vars := make(map[string]string) vars["subscriptionId"] = "1" /****************************** * request execution section ******************************/ if expectSuccess { _, err := sendRequest(http.MethodDelete, "/vis/v2/subscriptions/1", nil, vars, nil, http.StatusNoContent, IndividualSubscriptionDELETE) if err != nil { t.Fatalf("Failed to get expected response") } } else { _, err := sendRequest(http.MethodDelete, "/vis/v2/subscriptions/1", nil, vars, nil, http.StatusNotFound, IndividualSubscriptionDELETE) if err != nil { t.Fatalf("Failed to get expected response") } } } func testIndividualSubscriptionPut(t *testing.T, expectSuccess bool) string { /****************************** * expected response section ******************************/ 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_v2xMsgSubscriptionPut_str, err := json.Marshal(expected_v2xMsgSubscription) if err != nil { t.Fatalf(err.Error()) } fmt.Println("expected_v2xMsgSubscriptionPut_str: ", string(expected_v2xMsgSubscriptionPut_str)) /****************************** * request vars section ******************************/ vars := make(map[string]string) vars["subscriptionId"] = "1" /****************************** * request body section ******************************/ subscriptionType := "V2xMsgSubscription" callbackReference := "MyCallback" msgType := []string{"1", "3"} //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 queries section ******************************/ /****************************** * request execution section ******************************/ // TODO change status code rr, err := sendRequest(http.MethodPut, "/vis/v2/subscriptions/1", bytes.NewBuffer(body), nil, nil, http.StatusOK, IndividualSubscriptionPUT) 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_v2xMsgSubscriptionPut_str) { t.Fatalf(err.Error()) } log.Info("Received expected response for PUT method") return string(expected_v2xMsgSubscriptionPut_str) } func TestV2xMsgPublicationPost(t *testing.T) { fmt.Println("--- ", t.Name()) log.MeepTextLogInit(t.Name()) Loading