"net/http"
"os"
"path"
+ "strings"
"testing"
"oransc.org/nonrtric/capifcore/internal/invokermanagementapi"
AefProfiles: &aefProfiles,
},
}
- newInvoker := getInvoker("invoker a", apiList)
+ invokerInfo := "invoker a"
+ newInvoker := getInvoker(invokerInfo, apiList)
// Onboard a valid invoker
result := testutil.NewRequest().Post("/onboardedInvokers").WithJsonBody(newInvoker).Go(t, requestHandler)
var resultInvoker invokermanagementapi.APIInvokerEnrolmentDetails
err := result.UnmarshalBodyToObject(&resultInvoker)
assert.NoError(t, err, "error unmarshaling response")
- assert.Equal(t, "api_invoker_id_invoker_a", *resultInvoker.ApiInvokerId)
+ wantedInvokerId := "api_invoker_id_" + strings.Replace(invokerInfo, " ", "_", 1)
+ assert.Equal(t, wantedInvokerId, *resultInvoker.ApiInvokerId)
assert.Equal(t, newInvoker.NotificationDestination, resultInvoker.NotificationDestination)
assert.Equal(t, newInvoker.OnboardingInformation.ApiInvokerPublicKey, resultInvoker.OnboardingInformation.ApiInvokerPublicKey)
- assert.Equal(t, "onboarding_secret_invoker_a", *resultInvoker.OnboardingInformation.OnboardingSecret)
+ wantedInvokerSecret := "onboarding_secret_" + strings.Replace(invokerInfo, " ", "_", 1)
+ assert.Equal(t, wantedInvokerSecret, *resultInvoker.OnboardingInformation.OnboardingSecret)
assert.Equal(t, "http://example.com/onboardedInvokers/"+*resultInvoker.ApiInvokerId, result.Recorder.Header().Get(echo.HeaderLocation))
- assert.True(t, invokerUnderTest.IsInvokerRegistered("api_invoker_id_invoker_a"))
- assert.True(t, invokerUnderTest.VerifyInvokerSecret("api_invoker_id_invoker_a", "onboarding_secret_invoker_a"))
+ assert.True(t, invokerUnderTest.IsInvokerRegistered(wantedInvokerId))
+ assert.True(t, invokerUnderTest.VerifyInvokerSecret(wantedInvokerId, wantedInvokerSecret))
publishRegisterMock.AssertCalled(t, "AreAPIsPublished", mock.Anything)
// Onboard an invoker missing required NotificationDestination, should get 400 with problem details
assert.NoError(t, err, "error unmarshaling response")
badRequest := http.StatusBadRequest
assert.Equal(t, &badRequest, problemDetails.Status)
- errMsg := "Invoker missing required NotificationDestination"
- assert.Equal(t, &errMsg, problemDetails.Cause)
+ assert.Contains(t, *problemDetails.Cause, "missing")
+ assert.Contains(t, *problemDetails.Cause, "NotificationDestination")
// Onboard an invoker missing required OnboardingInformation.ApiInvokerPublicKey, should get 400 with problem details
invalidInvoker = invokermanagementapi.APIInvokerEnrolmentDetails{
err = result.UnmarshalBodyToObject(&problemDetails)
assert.NoError(t, err, "error unmarshaling response")
assert.Equal(t, &badRequest, problemDetails.Status)
- errMsg = "Invoker missing required OnboardingInformation.ApiInvokerPublicKey"
- assert.Equal(t, &errMsg, problemDetails.Cause)
+ assert.Contains(t, *problemDetails.Cause, "missing")
+ assert.Contains(t, *problemDetails.Cause, "OnboardingInformation.ApiInvokerPublicKey")
}
func TestDeleteInvoker(t *testing.T) {
assert.NoError(t, err, "error unmarshaling response")
badRequest := http.StatusBadRequest
assert.Equal(t, &badRequest, problemDetails.Status)
- errMsg := "Invoker missing required NotificationDestination"
- assert.Equal(t, &errMsg, problemDetails.Cause)
+ assert.Contains(t, *problemDetails.Cause, "missing")
+ assert.Contains(t, *problemDetails.Cause, "NotificationDestination")
// Update with an invoker missing required OnboardingInformation.ApiInvokerPublicKey, should get 400 with problem details
invalidInvoker.NotificationDestination = "url"
err = result.UnmarshalBodyToObject(&problemDetails)
assert.NoError(t, err, "error unmarshaling response")
assert.Equal(t, &badRequest, problemDetails.Status)
- errMsg = "Invoker missing required OnboardingInformation.ApiInvokerPublicKey"
- assert.Equal(t, &errMsg, problemDetails.Cause)
+ assert.Contains(t, *problemDetails.Cause, "missing")
+ assert.Contains(t, *problemDetails.Cause, "OnboardingInformation.ApiInvokerPublicKey")
// Update with an invoker with other ApiInvokerId than the one provided in the URL, should get 400 with problem details
invalidId := "1"
err = result.UnmarshalBodyToObject(&problemDetails)
assert.NoError(t, err, "error unmarshaling response")
assert.Equal(t, &badRequest, problemDetails.Status)
- errMsg = "Invoker ApiInvokerId not matching"
- assert.Equal(t, &errMsg, problemDetails.Cause)
+ assert.Contains(t, *problemDetails.Cause, "not matching")
+ assert.Contains(t, *problemDetails.Cause, "ApiInvokerId")
// Update an invoker that has not been onboarded, shold get 404 with problem details
missingId := "1"
assert.NoError(t, err, "error unmarshaling response")
notFound := http.StatusNotFound
assert.Equal(t, ¬Found, problemDetails.Status)
- errMsg = "The invoker to update has not been onboarded"
- assert.Equal(t, &errMsg, problemDetails.Cause)
+ assert.Contains(t, *problemDetails.Cause, "not been onboarded")
+ assert.Contains(t, *problemDetails.Cause, "invoker")
}
func TestGetInvokerApiList(t *testing.T) {
AefProfiles: &aefProfiles,
},
}
- newInvoker := getInvoker("invoker a", apiList)
+ invokerInfo := "invoker a"
+ newInvoker := getInvoker(invokerInfo, apiList)
testutil.NewRequest().Post("/onboardedInvokers").WithJsonBody(newInvoker).Go(t, requestHandler)
aefProfiles = []publishserviceapi.AefProfile{
getAefProfile("aefId2"),
newInvoker = getInvoker("invoker b", apiList)
testutil.NewRequest().Post("/onboardedInvokers").WithJsonBody(newInvoker).Go(t, requestHandler)
- wantedApiList := invokerUnderTest.GetInvokerApiList("api_invoker_id_invoker_a")
+ wantedApiList := invokerUnderTest.GetInvokerApiList("api_invoker_id_" + strings.Replace(invokerInfo, " ", "_", 1))
assert.NotNil(t, wantedApiList)
assert.Equal(t, apiId, *(*wantedApiList)[0].ApiId)
}