X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=capifcore%2Finternal%2Fprovidermanagement%2Fprovidermanagement_test.go;h=de647faed1ee2684a21757de43e33cd6122db0c2;hb=4e2b0618206193e13ba73831b6d6cb866e1d1dae;hp=b5c899b125cfabe03ce496bb58fbe7fe808ee856;hpb=c58285c8b76f7833877e328f94e947b0384c4a86;p=nonrtric%2Fplt%2Fsme.git diff --git a/capifcore/internal/providermanagement/providermanagement_test.go b/capifcore/internal/providermanagement/providermanagement_test.go index b5c899b..de647fa 100644 --- a/capifcore/internal/providermanagement/providermanagement_test.go +++ b/capifcore/internal/providermanagement/providermanagement_test.go @@ -70,7 +70,7 @@ func TestRegisterValidProvider(t *testing.T) { assert.True(t, managerUnderTest.IsFunctionRegistered("APF_id_rApp_as_APF")) } -func TestUpdateValidProvider(t *testing.T) { +func TestUpdateValidProviderWithNewFunction(t *testing.T) { managerUnderTest, requestHandler := getEcho() provider := getProvider() @@ -78,7 +78,7 @@ func TestUpdateValidProvider(t *testing.T) { (*provider.ApiProvFuncs)[0].ApiProvFuncId = &funcIdAPF (*provider.ApiProvFuncs)[1].ApiProvFuncId = &funcIdAMF (*provider.ApiProvFuncs)[2].ApiProvFuncId = &funcIdAEF - managerUnderTest.onboardedProviders[domainID] = provider + managerUnderTest.registeredProviders[domainID] = provider // Modify the provider updatedProvider := getProvider() @@ -95,6 +95,9 @@ func TestUpdateValidProvider(t *testing.T) { testFuncs = append(testFuncs, provapi.APIProviderFunctionDetails{ ApiProvFuncInfo: &newFuncInfoAEF, ApiProvFuncRole: provapi.ApiProviderFuncRoleAEF, + RegInfo: provapi.RegistrationInformation{ + ApiProvPubKey: "key", + }, }) updatedProvider.ApiProvFuncs = &testFuncs @@ -111,6 +114,38 @@ func TestUpdateValidProvider(t *testing.T) { assert.True(t, managerUnderTest.IsFunctionRegistered("AEF_id_new_func_as_AEF")) } +func TestUpdateValidProviderWithDeletedFunction(t *testing.T) { + managerUnderTest, requestHandler := getEcho() + + provider := getProvider() + provider.ApiProvDomId = &domainID + (*provider.ApiProvFuncs)[0].ApiProvFuncId = &funcIdAPF + (*provider.ApiProvFuncs)[1].ApiProvFuncId = &funcIdAMF + (*provider.ApiProvFuncs)[2].ApiProvFuncId = &funcIdAEF + managerUnderTest.registeredProviders[domainID] = provider + + // Modify the provider + updatedProvider := getProvider() + updatedProvider.ApiProvDomId = &domainID + (*updatedProvider.ApiProvFuncs)[0].ApiProvFuncId = &funcIdAPF + (*updatedProvider.ApiProvFuncs)[2].ApiProvFuncId = &funcIdAEF + testFuncs := []provapi.APIProviderFunctionDetails{ + (*updatedProvider.ApiProvFuncs)[0], + (*updatedProvider.ApiProvFuncs)[2], + } + updatedProvider.ApiProvFuncs = &testFuncs + + result := testutil.NewRequest().Put("/registrations/"+domainID).WithJsonBody(updatedProvider).Go(t, requestHandler) + + var resultProvider provapi.APIProviderEnrolmentDetails + assert.Equal(t, http.StatusOK, result.Code()) + err := result.UnmarshalBodyToObject(&resultProvider) + assert.NoError(t, err, "error unmarshaling response") + assert.Len(t, (*resultProvider.ApiProvFuncs), 2) + assert.Empty(t, resultProvider.FailReason) + assert.False(t, managerUnderTest.IsFunctionRegistered(funcIdAMF)) +} + func TestUpdateMissingFunction(t *testing.T) { managerUnderTest, requestHandler := getEcho() @@ -120,7 +155,7 @@ func TestUpdateMissingFunction(t *testing.T) { (*provider.ApiProvFuncs)[0].ApiProvFuncId = &otherId (*provider.ApiProvFuncs)[1].ApiProvFuncId = &funcIdAMF (*provider.ApiProvFuncs)[2].ApiProvFuncId = &funcIdAEF - managerUnderTest.onboardedProviders[domainID] = provider + managerUnderTest.registeredProviders[domainID] = provider // Modify the provider updatedProvider := getProvider() @@ -145,7 +180,7 @@ func TestDeleteProvider(t *testing.T) { provider := getProvider() provider.ApiProvDomId = &domainID (*provider.ApiProvFuncs)[0].ApiProvFuncId = &funcIdAPF - managerUnderTest.onboardedProviders[domainID] = provider + managerUnderTest.registeredProviders[domainID] = provider assert.True(t, managerUnderTest.IsFunctionRegistered(funcIdAPF)) result := testutil.NewRequest().Delete("/registrations/"+domainID).Go(t, requestHandler) @@ -158,7 +193,7 @@ func TestProviderHandlingValidation(t *testing.T) { newProvider := provapi.APIProviderEnrolmentDetails{} - // Register a valid provider + // Register an invalid provider result := testutil.NewRequest().Post("/registrations").WithJsonBody(newProvider).Go(t, requestHandler) assert.Equal(t, http.StatusBadRequest, result.Code()) @@ -167,8 +202,8 @@ func TestProviderHandlingValidation(t *testing.T) { assert.NoError(t, err, "error unmarshaling response") badRequest := http.StatusBadRequest assert.Equal(t, &badRequest, problemDetails.Status) - errMsg := "Provider missing required ApiProvDomInfo" - assert.Equal(t, &errMsg, problemDetails.Cause) + assert.Contains(t, *problemDetails.Cause, "Provider not valid") + assert.Contains(t, *problemDetails.Cause, "regSec") } func TestGetExposedFunctionsForPublishingFunction(t *testing.T) { @@ -179,8 +214,8 @@ func TestGetExposedFunctionsForPublishingFunction(t *testing.T) { (*provider.ApiProvFuncs)[0].ApiProvFuncId = &funcIdAPF (*provider.ApiProvFuncs)[1].ApiProvFuncId = &funcIdAMF (*provider.ApiProvFuncs)[2].ApiProvFuncId = &funcIdAEF - managerUnderTest.onboardedProviders[domainID] = provider - managerUnderTest.onboardedProviders[otherDomainID] = getOtherProvider() + managerUnderTest.registeredProviders[domainID] = provider + managerUnderTest.registeredProviders[otherDomainID] = getOtherProvider() exposedFuncs := managerUnderTest.GetAefsForPublisher(funcIdAPF) assert.Equal(t, 1, len(exposedFuncs)) @@ -192,17 +227,27 @@ func getProvider() provapi.APIProviderEnrolmentDetails { { ApiProvFuncInfo: &funcInfoAPF, ApiProvFuncRole: provapi.ApiProviderFuncRoleAPF, + RegInfo: provapi.RegistrationInformation{ + ApiProvPubKey: "key", + }, }, { ApiProvFuncInfo: &funcInfoAMF, ApiProvFuncRole: provapi.ApiProviderFuncRoleAMF, + RegInfo: provapi.RegistrationInformation{ + ApiProvPubKey: "key", + }, }, { ApiProvFuncInfo: &funcInfoAEF, ApiProvFuncRole: provapi.ApiProviderFuncRoleAEF, + RegInfo: provapi.RegistrationInformation{ + ApiProvPubKey: "key", + }, }, } return provapi.APIProviderEnrolmentDetails{ + RegSec: "sec", ApiProvDomInfo: &domainInfo, ApiProvFuncs: &testFuncs, }