From c956436e747ab021a2593aae4f46fdbc66ece7fb Mon Sep 17 00:00:00 2001 From: elinuxhenrik Date: Mon, 31 Oct 2022 09:41:08 +0100 Subject: [PATCH] Fix tests Issue-ID: NONRTRIC-812 Signed-off-by: elinuxhenrik Change-Id: I106200f33b7ca081db919543db4ac1006d5a8a87 --- .../invokermanagement/invokermanagement_test.go | 6 +- .../providermanagement/providermanagement_test.go | 2 +- .../internal/publishservice/publishservice_test.go | 81 +++++++++++++++------- 3 files changed, 59 insertions(+), 30 deletions(-) diff --git a/capifcore/internal/invokermanagement/invokermanagement_test.go b/capifcore/internal/invokermanagement/invokermanagement_test.go index 63f7509..2c95658 100644 --- a/capifcore/internal/invokermanagement/invokermanagement_test.go +++ b/capifcore/internal/invokermanagement/invokermanagement_test.go @@ -120,7 +120,7 @@ func TestOnboardInvoker(t *testing.T) { var problemDetails common29122.ProblemDetails err = result.UnmarshalBodyToObject(&problemDetails) assert.NoError(t, err, "error unmarshaling response") - badRequest := 400 + badRequest := http.StatusBadRequest assert.Equal(t, &badRequest, problemDetails.Status) errMsg := "Invoker missing required NotificationDestination" assert.Equal(t, &errMsg, problemDetails.Cause) @@ -205,7 +205,7 @@ func TestUpdateInvoker(t *testing.T) { var problemDetails common29122.ProblemDetails err = result.UnmarshalBodyToObject(&problemDetails) assert.NoError(t, err, "error unmarshaling response") - badRequest := 400 + badRequest := http.StatusBadRequest assert.Equal(t, &badRequest, problemDetails.Status) errMsg := "Invoker missing required NotificationDestination" assert.Equal(t, &errMsg, problemDetails.Cause) @@ -243,7 +243,7 @@ func TestUpdateInvoker(t *testing.T) { assert.Equal(t, http.StatusNotFound, result.Code()) err = result.UnmarshalBodyToObject(&problemDetails) assert.NoError(t, err, "error unmarshaling response") - notFound := 404 + notFound := http.StatusNotFound assert.Equal(t, ¬Found, problemDetails.Status) errMsg = "The invoker to update has not been onboarded" assert.Equal(t, &errMsg, problemDetails.Cause) diff --git a/capifcore/internal/providermanagement/providermanagement_test.go b/capifcore/internal/providermanagement/providermanagement_test.go index 06919e5..069bcc4 100644 --- a/capifcore/internal/providermanagement/providermanagement_test.go +++ b/capifcore/internal/providermanagement/providermanagement_test.go @@ -121,7 +121,7 @@ func TestProviderHandlingValidation(t *testing.T) { var problemDetails common29122.ProblemDetails err := result.UnmarshalBodyToObject(&problemDetails) assert.NoError(t, err, "error unmarshaling response") - badRequest := 400 + badRequest := http.StatusBadRequest assert.Equal(t, &badRequest, problemDetails.Status) errMsg := "Provider missing required ApiProvDomInfo" assert.Equal(t, &errMsg, problemDetails.Cause) diff --git a/capifcore/internal/publishservice/publishservice_test.go b/capifcore/internal/publishservice/publishservice_test.go index 9262b11..a631071 100644 --- a/capifcore/internal/publishservice/publishservice_test.go +++ b/capifcore/internal/publishservice/publishservice_test.go @@ -26,6 +26,7 @@ import ( "os" "testing" + "oransc.org/nonrtric/capifcore/internal/common29122" "oransc.org/nonrtric/capifcore/internal/providermanagement" "github.com/labstack/echo/v4" @@ -60,32 +61,7 @@ func TestPublishUnpublishService(t *testing.T) { domainName := "domain" var protocol publishapi.Protocol = "HTTP_1_1" description := "Description,namespace,repoName,chartName,releaseName" - newServiceDescription := publishapi.ServiceAPIDescription{ - AefProfiles: &[]publishapi.AefProfile{ - { - AefId: aefId, - DomainName: &domainName, - Protocol: &protocol, - Versions: []publishapi.Version{ - { - ApiVersion: "v1", - Resources: &[]publishapi.Resource{ - { - CommType: "REQUEST_RESPONSE", - Operations: &[]publishapi.Operation{ - "POST", - }, - ResourceName: "app", - Uri: "app", - }, - }, - }, - }, - }, - }, - ApiName: "app-management", - Description: &description, - } + newServiceDescription := getServiceAPIDescription(aefId, domainName, description, protocol) // Publish a service result = testutil.NewRequest().Post("/aefId/service-apis").WithJsonBody(newServiceDescription).Go(t, requestHandler) @@ -126,6 +102,30 @@ func TestPublishUnpublishService(t *testing.T) { assert.Equal(t, http.StatusNotFound, result.Code()) } +func TestPostUnpublishedServiceWithUnregisteredFunction(t *testing.T) { + aefId := "aefId" + serviceRegisterMock := serviceMocks.ServiceRegister{} + serviceRegisterMock.On("IsFunctionRegistered", aefId).Return(false) + _, requestHandler := getEcho(&serviceRegisterMock, nil) + + domainName := "domain" + var protocol publishapi.Protocol = "HTTP_1_1" + description := "Description" + newServiceDescription := getServiceAPIDescription(aefId, domainName, description, protocol) + + // Publish a service + result := testutil.NewRequest().Post("/aefId/service-apis").WithJsonBody(newServiceDescription).Go(t, requestHandler) + + assert.Equal(t, http.StatusNotFound, result.Code()) + var resultError common29122.ProblemDetails + err := result.UnmarshalBodyToObject(&resultError) + assert.NoError(t, err, "error unmarshaling response") + errMsg := "Function not registered, aefId" + assert.Equal(t, &errMsg, resultError.Cause) + notFound := http.StatusNotFound + assert.Equal(t, ¬Found, resultError.Status) +} + func getEcho(serviceRegister providermanagement.ServiceRegister, helmManager helmmanagement.HelmManager) (*PublishService, *echo.Echo) { swagger, err := publishapi.GetSwagger() if err != nil { @@ -144,3 +144,32 @@ func getEcho(serviceRegister providermanagement.ServiceRegister, helmManager hel publishapi.RegisterHandlers(e, ps) return ps, e } + +func getServiceAPIDescription(aefId, domainName, description string, protocol publishapi.Protocol) publishapi.ServiceAPIDescription { + return publishapi.ServiceAPIDescription{ + AefProfiles: &[]publishapi.AefProfile{ + { + AefId: aefId, + DomainName: &domainName, + Protocol: &protocol, + Versions: []publishapi.Version{ + { + ApiVersion: "v1", + Resources: &[]publishapi.Resource{ + { + CommType: "REQUEST_RESPONSE", + Operations: &[]publishapi.Operation{ + "POST", + }, + ResourceName: "app", + Uri: "app", + }, + }, + }, + }, + }, + }, + ApiName: "app-management", + Description: &description, + } +} -- 2.16.6