TSK-62: Let getTaskSummaries throw WorkbasketNotFoundException
This commit is contained in:
parent
12a607a76a
commit
341d77f572
|
@ -2,6 +2,7 @@ package pro.taskana;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.model.TaskSummary;
|
||||
|
||||
/**
|
||||
|
@ -9,5 +10,5 @@ import pro.taskana.model.TaskSummary;
|
|||
*/
|
||||
public interface SummaryService {
|
||||
|
||||
List<TaskSummary> getTaskSummariesByWorkbasketId(String workbasketId);
|
||||
List<TaskSummary> getTaskSummariesByWorkbasketId(String workbasketId) throws WorkbasketNotFoundException;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
import pro.taskana.SummaryService;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.impl.util.LoggerUtils;
|
||||
import pro.taskana.model.TaskSummary;
|
||||
import pro.taskana.model.mappings.SummaryMapper;
|
||||
|
@ -28,9 +29,10 @@ public class SummaryServiceImpl implements SummaryService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<TaskSummary> getTaskSummariesByWorkbasketId(String workbasketId) {
|
||||
public List<TaskSummary> getTaskSummariesByWorkbasketId(String workbasketId) throws WorkbasketNotFoundException {
|
||||
LOGGER.debug("entry to getTaskSummariesByWorkbasketId(workbasketId = {}", workbasketId);
|
||||
List<TaskSummary> taskSummaries = new ArrayList<>();
|
||||
taskanaEngineImpl.getWorkbasketService().getWorkbasket(workbasketId);
|
||||
try {
|
||||
taskanaEngineImpl.openConnection();
|
||||
taskSummaries = summaryMapper.findTasksummariesByWorkbasketId(workbasketId);
|
||||
|
|
|
@ -1,28 +1,24 @@
|
|||
package pro.taskana.impl;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.doThrow;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.model.TaskSummary;
|
||||
import pro.taskana.model.Workbasket;
|
||||
import pro.taskana.model.mappings.SummaryMapper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* Testing the {@link SummaryServiceImpl} component.
|
||||
* Mocks are initialized before each Method by @Runner-Annotation.
|
||||
|
@ -42,14 +38,19 @@ public class SummaryServiceImplTest {
|
|||
@Mock
|
||||
private SqlSession sqlSessionMock;
|
||||
|
||||
@Mock
|
||||
private WorkbasketServiceImpl workbasketServiceMock;
|
||||
|
||||
@Test
|
||||
public void testGetTaskSummariesByWorkbasketIdWithInternalException() {
|
||||
public void testGetTaskSummariesByWorkbasketIdWithInternalException() throws WorkbasketNotFoundException {
|
||||
// given - set behaviour and expected result
|
||||
String workbasketId = "1";
|
||||
List<TaskSummary> expectedResultList = new ArrayList<>();
|
||||
doNothing().when(taskanaEngineImplMock).openConnection();
|
||||
doThrow(new IllegalArgumentException("Invalid ID: " + workbasketId)).when(summaryMapperMock).findTasksummariesByWorkbasketId(workbasketId);
|
||||
doNothing().when(taskanaEngineImplMock).returnConnection();
|
||||
doReturn(workbasketServiceMock).when(taskanaEngineImplMock).getWorkbasketService();
|
||||
doReturn(new Workbasket()).when(workbasketServiceMock).getWorkbasket(any());
|
||||
|
||||
// when - make the call
|
||||
List<TaskSummary> actualResultList = cut.getTaskSummariesByWorkbasketId(workbasketId);
|
||||
|
@ -58,42 +59,56 @@ public class SummaryServiceImplTest {
|
|||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(summaryMapperMock, times(1)).findTasksummariesByWorkbasketId(workbasketId);
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(summaryMapperMock, taskanaEngineImplMock, sqlSessionMock);
|
||||
verify(taskanaEngineImplMock, times(1)).getWorkbasketService();
|
||||
verify(workbasketServiceMock, times(1)).getWorkbasket(any());
|
||||
|
||||
verifyNoMoreInteractions(summaryMapperMock, taskanaEngineImplMock, sqlSessionMock,
|
||||
workbasketServiceMock);
|
||||
assertThat(actualResultList, equalTo(expectedResultList));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetTaskSummariesByWorkbasketIdGettingResults() {
|
||||
public void testGetTaskSummariesByWorkbasketIdGettingResults() throws WorkbasketNotFoundException {
|
||||
String workbasketId = "1";
|
||||
List<TaskSummary> expectedResultList = Arrays.asList(new TaskSummary(), new TaskSummary());
|
||||
doNothing().when(taskanaEngineImplMock).openConnection();
|
||||
doNothing().when(taskanaEngineImplMock).returnConnection();
|
||||
doReturn(workbasketServiceMock).when(taskanaEngineImplMock).getWorkbasketService();
|
||||
doReturn(new Workbasket()).when(workbasketServiceMock).getWorkbasket(any());
|
||||
doReturn(expectedResultList).when(summaryMapperMock).findTasksummariesByWorkbasketId(workbasketId);
|
||||
|
||||
List<TaskSummary> actualResultList = cut.getTaskSummariesByWorkbasketId(workbasketId);
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).getWorkbasketService();
|
||||
verify(workbasketServiceMock, times(1)).getWorkbasket(any());
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(summaryMapperMock, times(1)).findTasksummariesByWorkbasketId(workbasketId);
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(summaryMapperMock, taskanaEngineImplMock, sqlSessionMock);
|
||||
verifyNoMoreInteractions(summaryMapperMock, taskanaEngineImplMock, sqlSessionMock, workbasketServiceMock);
|
||||
assertThat(actualResultList, equalTo(expectedResultList));
|
||||
assertThat(actualResultList.size(), equalTo(expectedResultList.size()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetTaskSummariesByWorkbasketIdGettingNull() {
|
||||
public void testGetTaskSummariesByWorkbasketIdGettingNull() throws WorkbasketNotFoundException {
|
||||
String workbasketId = "1";
|
||||
List<TaskSummary> expectedResultList = new ArrayList<>();
|
||||
doNothing().when(taskanaEngineImplMock).openConnection();
|
||||
doNothing().when(taskanaEngineImplMock).returnConnection();
|
||||
doReturn(null).when(summaryMapperMock).findTasksummariesByWorkbasketId(workbasketId);
|
||||
doReturn(workbasketServiceMock).when(taskanaEngineImplMock).getWorkbasketService();
|
||||
doReturn(new Workbasket()).when(workbasketServiceMock).getWorkbasket(any());
|
||||
|
||||
List<TaskSummary> actualResultList = cut.getTaskSummariesByWorkbasketId(workbasketId);
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(summaryMapperMock, times(1)).findTasksummariesByWorkbasketId(workbasketId);
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(summaryMapperMock, taskanaEngineImplMock, sqlSessionMock);
|
||||
verify(taskanaEngineImplMock, times(1)).getWorkbasketService();
|
||||
verify(workbasketServiceMock, times(1)).getWorkbasket(any());
|
||||
verifyNoMoreInteractions(summaryMapperMock, taskanaEngineImplMock, sqlSessionMock,
|
||||
workbasketServiceMock);
|
||||
|
||||
assertThat(actualResultList, equalTo(expectedResultList));
|
||||
assertThat(actualResultList.size(), equalTo(expectedResultList.size()));
|
||||
}
|
||||
|
|
|
@ -1,30 +1,15 @@
|
|||
package pro.taskana.impl.integration;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.security.auth.login.LoginException;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.h2.store.fs.FileUtils;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.TaskanaEngine.ConnectionManagementMode;
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.impl.ClassificationServiceImpl;
|
||||
import pro.taskana.impl.SummaryServiceImpl;
|
||||
import pro.taskana.impl.TaskServiceImpl;
|
||||
import pro.taskana.impl.TaskanaEngineImpl;
|
||||
import pro.taskana.impl.WorkbasketServiceImpl;
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.impl.*;
|
||||
import pro.taskana.impl.configuration.DBCleaner;
|
||||
import pro.taskana.impl.configuration.TaskanaEngineConfigurationTest;
|
||||
import pro.taskana.model.Classification;
|
||||
|
@ -32,6 +17,16 @@ import pro.taskana.model.Task;
|
|||
import pro.taskana.model.TaskSummary;
|
||||
import pro.taskana.model.Workbasket;
|
||||
|
||||
import javax.security.auth.login.LoginException;
|
||||
import javax.sql.DataSource;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
/**
|
||||
* Testing {@link SummaryServiceImpl} with real DB-Connection and
|
||||
* real results.
|
||||
|
@ -95,22 +90,20 @@ public class SummaryServiceImplIntAutoCommitTest {
|
|||
assertThat(actualTaskSumamryResult.size(), equalTo(expectedTaskSumamries.size()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldReturnEmptyTaskSummaryListByNullParameter() {
|
||||
List<TaskSummary> expectedTaskSumamries = new ArrayList<>();
|
||||
@Test(expected = WorkbasketNotFoundException.class)
|
||||
public void shouldThrowWorkbasketNotFoundExceptionByNullParameter() throws WorkbasketNotFoundException {
|
||||
List<TaskSummary> actualTaskSumamryResult = summaryServiceImp.getTaskSummariesByWorkbasketId(null);
|
||||
assertThat(actualTaskSumamryResult, equalTo(expectedTaskSumamries));
|
||||
assertThat(actualTaskSumamryResult.size(), equalTo(expectedTaskSumamries.size()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldReturnEmptyTaskSummaryListByNoResultFound() {
|
||||
List<TaskSummary> expectedTaskSumamries = new ArrayList<>();
|
||||
List<TaskSummary> actualTaskSumamryResult = summaryServiceImp.getTaskSummariesByWorkbasketId("123");
|
||||
assertThat(actualTaskSumamryResult, equalTo(expectedTaskSumamries));
|
||||
assertThat(actualTaskSumamryResult.size(), equalTo(expectedTaskSumamries.size()));
|
||||
@Test(expected = WorkbasketNotFoundException.class)
|
||||
public void shouldThrowWorkbasketNotFoundExceptionByInvalidWorkbasketParameter() throws WorkbasketNotFoundException {
|
||||
Workbasket wb = new Workbasket();
|
||||
wb.setName("wb");
|
||||
workbasketServiceImpl.createWorkbasket(wb);
|
||||
List<TaskSummary> actualTaskSumamryResult = summaryServiceImp.getTaskSummariesByWorkbasketId("1");
|
||||
}
|
||||
|
||||
|
||||
private void generateDummyData() throws Exception {
|
||||
dummyWorkbasket = new Workbasket();
|
||||
dummyWorkbasket.setId("1");
|
||||
|
|
Loading…
Reference in New Issue