+func TestGetExposedFunctionsForPublishingFunction(t *testing.T) {
+ managerUnderTest := NewProviderManager()
+
+ managerUnderTest.onboardedProviders[domainID] = getProvider()
+ managerUnderTest.onboardedProviders[otherDomainID] = getOtherProvider()
+
+ exposedFuncs := managerUnderTest.GetAefsForPublisher(funcIdAPF)
+ assert.Equal(t, 1, len(exposedFuncs))
+ assert.Equal(t, funcIdAEF, exposedFuncs[0])
+}
+
+func getProvider() provapi.APIProviderEnrolmentDetails {
+ testFuncs := []provapi.APIProviderFunctionDetails{
+ {
+ ApiProvFuncId: &funcIdAPF,
+ ApiProvFuncInfo: &funcInfoAPF,
+ ApiProvFuncRole: provapi.ApiProviderFuncRoleAPF,
+ },
+ {
+ ApiProvFuncId: &funcIdAMF,
+ ApiProvFuncInfo: &funcInfoAMF,
+ ApiProvFuncRole: provapi.ApiProviderFuncRoleAMF,
+ },
+ {
+ ApiProvFuncId: &funcIdAEF,
+ ApiProvFuncInfo: &funcInfoAEF,
+ ApiProvFuncRole: provapi.ApiProviderFuncRoleAEF,
+ },
+ }
+ return provapi.APIProviderEnrolmentDetails{
+ ApiProvDomId: &domainID,
+ ApiProvDomInfo: &domainInfo,
+ ApiProvFuncs: &testFuncs,
+ }
+
+}
+
+func getOtherProvider() provapi.APIProviderEnrolmentDetails {
+ otherDomainInfo := "other domain"
+ otherFuncInfoAPF := "other as APF"
+ otherApfId := "APF_id_other_as_APF"
+ otherFuncInfoAMF := "other as AMF"
+ otherAmfId := "AMF_id_other_as_AMF"
+ otherFuncInfoAEF := "other as AEF"
+ otherAefId := "AEF_id_other_as_AEF"
+ testFuncs := []provapi.APIProviderFunctionDetails{
+ {
+ ApiProvFuncId: &otherApfId,
+ ApiProvFuncInfo: &otherFuncInfoAPF,
+ ApiProvFuncRole: provapi.ApiProviderFuncRoleAPF,
+ },
+ {
+ ApiProvFuncId: &otherAmfId,
+ ApiProvFuncInfo: &otherFuncInfoAMF,
+ ApiProvFuncRole: provapi.ApiProviderFuncRoleAMF,
+ },
+ {
+ ApiProvFuncId: &otherAefId,
+ ApiProvFuncInfo: &otherFuncInfoAEF,
+ ApiProvFuncRole: provapi.ApiProviderFuncRoleAEF,
+ },
+ }
+ return provapi.APIProviderEnrolmentDetails{
+ ApiProvDomId: &otherDomainID,
+ ApiProvDomInfo: &otherDomainInfo,
+ ApiProvFuncs: &testFuncs,
+ }
+
+}
+