diff --git a/src/main/java/org/etsi/osl/tmf/metrics/reposervices/GeneralMetricsRepoService.java b/src/main/java/org/etsi/osl/tmf/metrics/reposervices/GeneralMetricsRepoService.java index e1fa49a7b603b617b52f8e21cb6e9699f2cea51e..fb3af6a76e120fe77896d12a2d50178d7c5cfb34 100644 --- a/src/main/java/org/etsi/osl/tmf/metrics/reposervices/GeneralMetricsRepoService.java +++ b/src/main/java/org/etsi/osl/tmf/metrics/reposervices/GeneralMetricsRepoService.java @@ -2,15 +2,19 @@ package org.etsi.osl.tmf.metrics.reposervices; import org.etsi.osl.tmf.pm632.repo.IndividualRepository; import org.etsi.osl.tmf.rcm634.repo.ResourceSpecificationRepository; +import org.etsi.osl.tmf.scm633.model.ServiceCatalog; import org.etsi.osl.tmf.scm633.model.ServiceCategory; import org.etsi.osl.tmf.scm633.repo.CandidateRepository; +import org.etsi.osl.tmf.scm633.repo.CatalogRepository; import org.etsi.osl.tmf.scm633.repo.CategoriesRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.Duration; import java.time.OffsetDateTime; +import java.util.HashSet; import java.util.List; +import java.util.Set; @Service public class GeneralMetricsRepoService { @@ -21,6 +25,9 @@ public class GeneralMetricsRepoService { @Autowired ResourceSpecificationRepository resourceSpecificationRepository; + @Autowired + CatalogRepository catalogRepository; + @Autowired CategoriesRepository categoriesRepository; @@ -43,7 +50,12 @@ public class GeneralMetricsRepoService { Duration.between(lastRetrieved, now).compareTo(CACHE_DURATION) > 0) { int count = 0; - List serviceCategories = categoriesRepository.findByOrderByName(); + Set serviceCategories = new HashSet<>(); + List serviceCatalogs = catalogRepository.findByOrderByName(); + + for (ServiceCatalog serviceCatalog: serviceCatalogs) { + serviceCategories.addAll(serviceCatalog.getCategoryObj()); + } for (ServiceCategory serviceCategory : serviceCategories) { count += serviceCategory.getServiceCandidateObj().size() diff --git a/src/test/java/org/etsi/osl/services/api/metrics/GeneralMetricsApiControllerTest.java b/src/test/java/org/etsi/osl/services/api/metrics/GeneralMetricsApiControllerTest.java index 3776c5c7ddd101c2f65c8244123cbbbe6c7a8db9..20a97508f92c622e777b37d696a40478548a433b 100644 --- a/src/test/java/org/etsi/osl/services/api/metrics/GeneralMetricsApiControllerTest.java +++ b/src/test/java/org/etsi/osl/services/api/metrics/GeneralMetricsApiControllerTest.java @@ -5,8 +5,10 @@ import org.etsi.osl.tmf.OpenAPISpringBoot; import org.etsi.osl.tmf.pm632.model.IndividualCreate; import org.etsi.osl.tmf.pm632.reposervices.IndividualRepoService; import org.etsi.osl.tmf.rcm634.reposervices.ResourceSpecificationRepoService; +import org.etsi.osl.tmf.scm633.model.ServiceCatalog; import org.etsi.osl.tmf.scm633.model.ServiceCategory; import org.etsi.osl.tmf.scm633.reposervices.CandidateRepoService; +import org.etsi.osl.tmf.scm633.reposervices.CatalogRepoService; import org.etsi.osl.tmf.scm633.reposervices.CategoryRepoService; import org.junit.Before; import org.junit.Test; @@ -24,7 +26,9 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.WebApplicationContext; +import java.util.HashSet; import java.util.List; +import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; @@ -59,6 +63,9 @@ public class GeneralMetricsApiControllerTest { @Autowired CandidateRepoService candidateRepoService; + @Autowired + CatalogRepoService catalogRepoService; + @Autowired CategoryRepoService categoryRepoService; @@ -100,8 +107,13 @@ public class GeneralMetricsApiControllerTest { int totalSpecs = JsonPath.read(response, "$.publishedServiceSpecifications"); - List serviceCategories = categoryRepoService.findAll(); int count = 0; + Set serviceCategories = new HashSet<>(); + List serviceCatalogs = catalogRepoService.findAll(); + + for (ServiceCatalog serviceCatalog : serviceCatalogs) { + serviceCategories.addAll(serviceCatalog.getCategoryObj()); + } for (ServiceCategory serviceCategory : serviceCategories) { count += serviceCategory.getServiceCandidateObj().size() + serviceCategory.getServiceCandidateRefs().size();