From 3b7502709c487c8699ad8847c84a990e67e5b4dc Mon Sep 17 00:00:00 2001 From: lpapadopoulos <lpapadopoulos@ubitech.eu> Date: Tue, 9 Apr 2024 15:00:04 +0300 Subject: [PATCH] tmf 674 api enhancements + new test --- .../gsm674/api/GeographicSiteManagementApi.java | 2 +- .../GeographicSiteManagementApiController.java | 16 +++++++++++++++- .../GeographicSiteManagementService.java | 6 ++++-- ...eographicSiteManagementApiControllerTest.java | 15 +++++++++++---- .../GeographicSiteManagementServiceTest.java | 5 ++--- 5 files changed, 33 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/etsi/osl/tmf/gsm674/api/GeographicSiteManagementApi.java b/src/main/java/org/etsi/osl/tmf/gsm674/api/GeographicSiteManagementApi.java index c2661e8..c50b604 100644 --- a/src/main/java/org/etsi/osl/tmf/gsm674/api/GeographicSiteManagementApi.java +++ b/src/main/java/org/etsi/osl/tmf/gsm674/api/GeographicSiteManagementApi.java @@ -170,7 +170,7 @@ public interface GeographicSiteManagementApi { produces = { "application/json" }, consumes = { "application/json" }, method = RequestMethod.GET) - default ResponseEntity<GeographicSite> retrieveGeographicSite() { + default ResponseEntity<GeographicSite> retrieveGeographicSite(@Parameter(description = "Identifier of the Geographic site",required=true) @PathVariable("id") String id) { if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { if (getAcceptHeader().get().contains("application/json")) { try { diff --git a/src/main/java/org/etsi/osl/tmf/gsm674/api/GeographicSiteManagementApiController.java b/src/main/java/org/etsi/osl/tmf/gsm674/api/GeographicSiteManagementApiController.java index fb9fade..23f1be2 100644 --- a/src/main/java/org/etsi/osl/tmf/gsm674/api/GeographicSiteManagementApiController.java +++ b/src/main/java/org/etsi/osl/tmf/gsm674/api/GeographicSiteManagementApiController.java @@ -27,7 +27,7 @@ public class GeographicSiteManagementApiController implements GeographicSiteMana this.geographicSiteManagementService = geographicSiteManagementService; } -// @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) @Override public ResponseEntity<List<GeographicSite>> listGeographicSite() { @@ -41,6 +41,20 @@ public class GeographicSiteManagementApiController implements GeographicSiteMana } } + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity<GeographicSite> retrieveGeographicSite(@PathVariable("id") String id) { + + + try { + return new ResponseEntity<>(geographicSiteManagementService.findGeographicSiteByUUID(id), HttpStatus.OK); + + } catch (Exception e) { + log.error(COULD_NOT_SERIALIZE, e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) @Override public ResponseEntity<GeographicSite> createGeographicSite( diff --git a/src/main/java/org/etsi/osl/tmf/gsm674/reposervices/GeographicSiteManagementService.java b/src/main/java/org/etsi/osl/tmf/gsm674/reposervices/GeographicSiteManagementService.java index 68a3ead..3b36430 100644 --- a/src/main/java/org/etsi/osl/tmf/gsm674/reposervices/GeographicSiteManagementService.java +++ b/src/main/java/org/etsi/osl/tmf/gsm674/reposervices/GeographicSiteManagementService.java @@ -31,8 +31,10 @@ public class GeographicSiteManagementService { return (List<GeographicSite>) geographicSiteManagementRepository.findAll(); } - public Optional<GeographicSite> findGeographicSiteByUUID(String uuid){ - return geographicSiteManagementRepository.findByUuid(uuid); + public GeographicSite findGeographicSiteByUUID(String uuid){ + Optional<GeographicSite> gs=geographicSiteManagementRepository.findByUuid(uuid); + return gs.orElse(null); + } public GeographicSite createGeographicSite(GeographicSite geographicSite){ diff --git a/src/test/java/org/etsi/osl/services/api/gsm674/GeographicSiteManagementApiControllerTest.java b/src/test/java/org/etsi/osl/services/api/gsm674/GeographicSiteManagementApiControllerTest.java index cdbb474..04878fd 100644 --- a/src/test/java/org/etsi/osl/services/api/gsm674/GeographicSiteManagementApiControllerTest.java +++ b/src/test/java/org/etsi/osl/services/api/gsm674/GeographicSiteManagementApiControllerTest.java @@ -16,6 +16,8 @@ import org.springframework.http.ResponseEntity; import java.util.ArrayList; import java.util.List; +import java.util.Optional; +import java.util.UUID; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.ArgumentMatchers.any; @@ -52,12 +54,17 @@ class GeographicSiteManagementApiControllerTest { } @Test - void throwExceptionTestWhenRetrieveGeographicSites(){ - when(service.findAllGeographicSites()).thenThrow(RuntimeException.class); - ResponseEntity<GeographicSite> response = controller.retrieveGeographicSite(); - assertEquals(HttpStatus.NOT_IMPLEMENTED, response.getStatusCode()); + void testFetchGeographicSite() { + GeographicSite site = new GeographicSite(); + // Add test data to sites list + when(service.findGeographicSiteByUUID("123")).thenReturn(site); + + ResponseEntity<GeographicSite> response = controller.retrieveGeographicSite("123"); + assertEquals(HttpStatus.OK, response.getStatusCode()); + assertEquals(site, response.getBody()); } + @Test void testCreateGeographicSite() { GeographicSite site = new GeographicSite(); diff --git a/src/test/java/org/etsi/osl/services/api/gsm674/GeographicSiteManagementServiceTest.java b/src/test/java/org/etsi/osl/services/api/gsm674/GeographicSiteManagementServiceTest.java index 7c7952d..0ffbb2c 100644 --- a/src/test/java/org/etsi/osl/services/api/gsm674/GeographicSiteManagementServiceTest.java +++ b/src/test/java/org/etsi/osl/services/api/gsm674/GeographicSiteManagementServiceTest.java @@ -49,10 +49,9 @@ class GeographicSiteManagementServiceTest { GeographicSite site = new GeographicSite(); when(repository.findByUuid(uuid)).thenReturn(Optional.of(site)); - Optional<GeographicSite> result = service.findGeographicSiteByUUID(uuid); + GeographicSite result = service.findGeographicSiteByUUID(uuid); - assertTrue(result.isPresent()); - assertEquals(site, result.get()); + assertEquals(site, result); } @Test -- GitLab