PAN-11 wrote unit tests for the updateDefinition method

This commit is contained in:
2019-03-24 22:12:34 -06:00
parent 6d1db048c8
commit 5a44b5b793
2 changed files with 67 additions and 4 deletions
@@ -117,6 +117,11 @@ public class DefinitionService {
return Optional.empty();
}
if (definition.getId() == 0) {
LOG.error("Given invalid id 0, returning {}");
return Optional.empty();
}
LOG.info("Sending request to update definition {}", definition);
final Instant start = Instant.now();
@@ -43,7 +43,7 @@ public class DefinitionServiceTest {
}
@Test
public void testGetAllDefinitions_ReturnsEmptyOptional() {
public void testGetAllDefinitions_RequestReturnsEmptyOptional() {
when(restService.get(anyString(), any(), anyInt(), anyInt(), anyString()))
.thenReturn(Optional.empty());
@@ -79,7 +79,7 @@ public class DefinitionServiceTest {
}
@Test
public void testFindById_ReturnsEmptyOptional() {
public void testFindById_RequestReturnsEmptyOptional() {
when(restService.get(anyString(), any(), anyInt(), anyInt(), anyString()))
.thenReturn(Optional.empty());
@@ -125,7 +125,7 @@ public class DefinitionServiceTest {
}
@Test
public void testCreateDefinition_unableToCreateDefinition() {
public void testCreateDefinition_UnableToCreateDefinition() {
final Definition testDefinition = createDefinition();
final String testDefinitionJson = new GsonBuilder().create().toJson(testDefinition);
@@ -140,7 +140,7 @@ public class DefinitionServiceTest {
}
@Test
public void testCreateDefinition_restServiceThrowsException() {
public void testCreateDefinition_RestServiceThrowsException() {
final Definition testDefinition = createDefinition();
final String testDefinitionJson = new GsonBuilder().create().toJson(testDefinition);
@@ -154,6 +154,64 @@ public class DefinitionServiceTest {
verify(restService).post(anyString(), eq(testDefinitionJson), any(), anyInt(), anyInt());
}
@Test
public void testUpdateDefinition() {
when(restService.patch(anyString(), anyString(), any(), anyInt(), anyInt()))
.thenReturn(Optional.of(createDefinition().setName("Test update")));
final Definition testDefinition = new Definition();
testDefinition.setName("Test update");
testDefinition.setId(1);
final Optional<Definition> updatedDefinition = definitionService.updateDefinition(testDefinition);
assertTrue(updatedDefinition.isPresent());
assertThat(updatedDefinition.get().getId(), is(1));
assertThat(updatedDefinition.get().getName(), is(equalTo("Test update")));
verify(restService).patch(anyString(), anyString(), any(), anyInt(), anyInt());
}
@Test
public void testUpdateDefinition_nullDefinition() {
final Optional<Definition> testUpdate = definitionService.updateDefinition(null);
assertFalse(testUpdate.isPresent());
verifyZeroInteractions(restService);
}
@Test
public void testUpdateDefinition_IdIsZero() {
final Definition impossibleDefinition = createDefinition();
impossibleDefinition.setId(0);
final Optional<Definition> testUpdate = definitionService.updateDefinition(impossibleDefinition);
assertFalse(testUpdate.isPresent());
verifyZeroInteractions(restService);
}
@Test
public void testUpdateDefinition_RequestReturnsEmptyOptional() {
when(restService.patch(anyString(), anyString(), any(), anyInt(), anyInt()))
.thenReturn(Optional.empty());
final Optional<Definition> nonExistentDefinition = definitionService.updateDefinition(createDefinition());
assertFalse(nonExistentDefinition.isPresent());
verify(restService).patch(anyString(), anyString(), any(), anyInt(), anyInt());
}
@Test
public void testUpdateDefinition_ExceptionThrownWhenSendingRequest() {
when(restService.patch(anyString(), anyString(), any(), anyInt(), anyInt()))
.thenThrow(new UnsupportedOperationException("test exception"));
final Optional<Definition> exceptionThrowingDefinition = definitionService.updateDefinition(createDefinition());
assertFalse(exceptionThrowingDefinition.isPresent());
verify(restService).patch(anyString(), anyString(), any(), anyInt(), anyInt());
}
private Definition createDefinition() {
final List<String> definitionList = new ArrayList<>();
definitionList.add("Test definition 1");