From 8724d6c2f83cabca8ae0e44f75adab4403918add Mon Sep 17 00:00:00 2001 From: atusa17 Date: Sun, 24 Mar 2019 22:27:27 -0600 Subject: [PATCH] PAN-11 created the deleteDefinition method --- .../tsp/services/DefinitionService.java | 40 ++++++++++++++++++- .../tsp/services/DefinitionServiceTest.java | 8 ++++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/services/src/main/java/edu/msudenver/tsp/services/DefinitionService.java b/services/src/main/java/edu/msudenver/tsp/services/DefinitionService.java index e8ec3a2..eec2324 100644 --- a/services/src/main/java/edu/msudenver/tsp/services/DefinitionService.java +++ b/services/src/main/java/edu/msudenver/tsp/services/DefinitionService.java @@ -6,6 +6,7 @@ import edu.msudenver.tsp.services.dto.Definition; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import java.time.Duration; @@ -97,7 +98,7 @@ public class DefinitionService { socketTimeoutMilliseconds); if (persistenceApiResponse.isPresent()) { - LOG.info("Returning {}", persistenceApiResponse.get()); + LOG.info("Creation successful. Returning {}", persistenceApiResponse.get()); } else { LOG.info("Unable to create new definition {}", definition); } @@ -134,7 +135,7 @@ public class DefinitionService { socketTimeoutMilliseconds); if (persistenceApiResponse.isPresent()) { - LOG.info("Returning {}", persistenceApiResponse.get()); + LOG.info("Update successful. Returning {}", persistenceApiResponse.get()); } else { LOG.info("Unable to update definition {}", definition); } @@ -147,4 +148,39 @@ public class DefinitionService { LOG.info("Update definition request took {}ms", Duration.between(start, Instant.now()).toMillis()); } } + + public boolean deleteDefinition(final Definition definition) { + if (definition == null) { + LOG.error("Given null definition, returning false"); + return false; + } + + if (definition.getId() == 0) { + LOG.error("Given invalid id 0, returning false"); + return false; + } + + LOG.info("Sending request to delete definition {}", definition); + final Instant start = Instant.now(); + + try { + final boolean deleteIsSuccessful = restService.delete(persistenceApiBaseUrl + "/" + definition.getId(), + connectionTimeoutMilliseconds, + socketTimeoutMilliseconds, + HttpStatus.NO_CONTENT); + + if (deleteIsSuccessful) { + LOG.info("Deletion successful. Returning true"); + } else { + LOG.info("Unable to delete definition {}", definition); + } + + return deleteIsSuccessful; + } catch (final Exception e) { + LOG.error("Error when deleting definition {}", e); + return false; + } finally { + LOG.info("Delete definition request took {}ms", Duration.between(start, Instant.now()).toMillis()); + } + } } diff --git a/services/src/test/java/edu/msudenver/tsp/services/DefinitionServiceTest.java b/services/src/test/java/edu/msudenver/tsp/services/DefinitionServiceTest.java index e7b423f..e18e54a 100644 --- a/services/src/test/java/edu/msudenver/tsp/services/DefinitionServiceTest.java +++ b/services/src/test/java/edu/msudenver/tsp/services/DefinitionServiceTest.java @@ -124,6 +124,14 @@ public class DefinitionServiceTest { verify(restService).post(anyString(), eq(testDefinitionJson), any(), anyInt(), anyInt()); } + @Test + public void testCreateDefinition_NullDefinition() { + final Optional nullDefinition = definitionService.createDefinition(null); + + assertFalse(nullDefinition.isPresent()); + verifyZeroInteractions(restService); + } + @Test public void testCreateDefinition_UnableToCreateDefinition() { final Definition testDefinition = createDefinition();