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 c2661e822cbc78bdb00f3e75aa30cb497de8efa1..c50b604d4232cc2395c89cc1163617c792459f15 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 fb9fade688f0d4c2cd7b60a61e2b0a8f2381ac6b..23f1be21eb18cf5f1e9e892df19a50fd53b100d0 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 68a3ead03b1db59bca74ed1687b4eb9c94f07227..3b364306355f8b2e9504ca16b6e0bcc085ce7cd0 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 cdbb4747f4e2f13a87cb2c2f2f02b839ce177894..04878fd10c9dfdf92a02d8e22c5b999a523214bd 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 7c7952d2cf525f935c106911d9e1c44345a44b98..0ffbb2cb930558a1222221d67c7c92955e0bdb79 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