Fix tests

Issue-ID: NONRTRIC-812
Signed-off-by: elinuxhenrik <henrik.b.andersson@est.tech>
Change-Id: I106200f33b7ca081db919543db4ac1006d5a8a87
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 @@
 	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 @@
 	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 @@
 	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, &notFound, 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 @@
 	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 @@
 	"os"
 	"testing"
 
+	"oransc.org/nonrtric/capifcore/internal/common29122"
 	"oransc.org/nonrtric/capifcore/internal/providermanagement"
 
 	"github.com/labstack/echo/v4"
@@ -60,32 +61,7 @@
 	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 @@
 	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, &notFound, resultError.Status)
+}
+
 func getEcho(serviceRegister providermanagement.ServiceRegister, helmManager helmmanagement.HelmManager) (*PublishService, *echo.Echo) {
 	swagger, err := publishapi.GetSwagger()
 	if err != nil {
@@ -144,3 +144,32 @@
 	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,
+	}
+}