TSK-302: removed classificationTree
This commit is contained in:
parent
9258f9cef0
commit
f51174668b
|
@ -12,12 +12,6 @@ import pro.taskana.exceptions.NotAuthorizedException;
|
|||
*/
|
||||
public interface ClassificationService {
|
||||
|
||||
/**
|
||||
* Get all available Classification summaries as a tree.
|
||||
*
|
||||
* @return The List of all Classification summaries
|
||||
*/
|
||||
List<ClassificationSummary> getClassificationTree();
|
||||
|
||||
/**
|
||||
* Get all ClassificationSummaries with the given key. Returns also older and domain-specific versions of the
|
||||
|
|
|
@ -37,58 +37,13 @@ public class ClassificationServiceImpl implements ClassificationService {
|
|||
private TaskanaEngineImpl taskanaEngineImpl;
|
||||
|
||||
ClassificationServiceImpl(TaskanaEngine taskanaEngine, ClassificationMapper classificationMapper,
|
||||
TaskMapper taskMapper) {
|
||||
TaskMapper taskMapper) {
|
||||
super();
|
||||
this.taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
||||
this.classificationMapper = classificationMapper;
|
||||
this.taskMapper = taskMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ClassificationSummary> getClassificationTree() {
|
||||
LOGGER.debug("entry to getClassificationTree()");
|
||||
List<ClassificationSummary> rootClassificationSumamries = null;
|
||||
try {
|
||||
taskanaEngineImpl.openConnection();
|
||||
rootClassificationSumamries = this.createClassificationQuery()
|
||||
.parentIdIn("")
|
||||
.list();
|
||||
rootClassificationSumamries = this.populateChildClassifications(rootClassificationSumamries);
|
||||
return rootClassificationSumamries;
|
||||
} catch (NotAuthorizedException ex) {
|
||||
LOGGER.debug("getClassificationTree() caught NotAuthorizedException. Throwing SystemException");
|
||||
throw new SystemException(
|
||||
"ClassificationService.getClassificationTree caught unexpected NotAuthorizedException");
|
||||
} finally {
|
||||
taskanaEngineImpl.returnConnection();
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
int numberOfResultObjects = rootClassificationSumamries == null ? 0
|
||||
: rootClassificationSumamries.size();
|
||||
LOGGER.debug("exit from getClassificationTree(). Returning {} resulting Objects: {} ",
|
||||
numberOfResultObjects, LoggerUtils.listToString(rootClassificationSumamries));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private List<ClassificationSummary> populateChildClassifications(
|
||||
List<ClassificationSummary> classificationSumamries)
|
||||
throws NotAuthorizedException {
|
||||
try {
|
||||
taskanaEngineImpl.openConnection();
|
||||
List<ClassificationSummary> children = new ArrayList<>();
|
||||
for (ClassificationSummary classification : classificationSumamries) {
|
||||
List<ClassificationSummary> childClassifications = this.createClassificationQuery()
|
||||
.parentIdIn(classification.getId())
|
||||
.list();
|
||||
children.addAll(populateChildClassifications(childClassifications));
|
||||
}
|
||||
classificationSumamries.addAll(children);
|
||||
return classificationSumamries;
|
||||
} finally {
|
||||
taskanaEngineImpl.returnConnection();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Classification createClassification(Classification classification)
|
||||
throws ClassificationAlreadyExistException {
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package acceptance.classification;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.List;
|
||||
|
||||
import org.h2.store.fs.FileUtils;
|
||||
|
@ -13,8 +12,6 @@ import pro.taskana.Classification;
|
|||
import pro.taskana.ClassificationService;
|
||||
import pro.taskana.ClassificationSummary;
|
||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
|
||||
/**
|
||||
* Acceptance test for all "get classification" scenarios.
|
||||
|
@ -25,16 +22,20 @@ public class GetClassificationAccTest extends AbstractAccTest {
|
|||
super();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void cleanUpClass() {
|
||||
FileUtils.deleteRecursive("~/data", true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindAllClassifications()
|
||||
throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException {
|
||||
public void testFindAllClassifications() {
|
||||
ClassificationService classificationService = taskanaEngine.getClassificationService();
|
||||
List<ClassificationSummary> classificationSummaryList = classificationService.getClassificationTree();
|
||||
List<ClassificationSummary> classificationSummaryList = classificationService.createClassificationQuery().list();
|
||||
Assert.assertNotNull(classificationSummaryList);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetOneClassificationForDomain() throws SQLException, ClassificationNotFoundException {
|
||||
public void testGetOneClassificationForDomain() throws ClassificationNotFoundException {
|
||||
ClassificationService classificationService = taskanaEngine.getClassificationService();
|
||||
Classification classification = classificationService.getClassification("T6310", "DOMAIN_A");
|
||||
Assert.assertNotNull(classification);
|
||||
|
@ -42,7 +43,7 @@ public class GetClassificationAccTest extends AbstractAccTest {
|
|||
|
||||
@Test
|
||||
public void testGetOneClassificationForDomainAndGetClassificationFromRootDomain()
|
||||
throws SQLException, ClassificationNotFoundException {
|
||||
throws ClassificationNotFoundException {
|
||||
ClassificationService classificationService = taskanaEngine.getClassificationService();
|
||||
Classification classification = classificationService.getClassification("L10000", "DOMAIN_B");
|
||||
Assert.assertNotNull(classification);
|
||||
|
@ -51,16 +52,11 @@ public class GetClassificationAccTest extends AbstractAccTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testGetOneClassificationForRootDomain() throws SQLException, ClassificationNotFoundException {
|
||||
public void testGetOneClassificationForRootDomain() throws ClassificationNotFoundException {
|
||||
ClassificationService classificationService = taskanaEngine.getClassificationService();
|
||||
Classification classification = classificationService.getClassification("L10000", "");
|
||||
Assert.assertNotNull(classification);
|
||||
Assert.assertEquals("", classification.getDomain());
|
||||
Assert.assertEquals(999L, classification.getPriority());
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void cleanUpClass() {
|
||||
FileUtils.deleteRecursive("~/data", true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
|
|||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -29,7 +28,6 @@ import pro.taskana.Classification;
|
|||
import pro.taskana.ClassificationSummary;
|
||||
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.mappings.ClassificationMapper;
|
||||
|
||||
|
@ -62,24 +60,6 @@ public class ClassificationServiceImplTest {
|
|||
doNothing().when(taskanaEngineImplMock).returnConnection();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetClassificationTree() throws NotAuthorizedException, InvalidArgumentException {
|
||||
List<Classification> classifications = new ArrayList<>();
|
||||
|
||||
doReturn(classificationQueryImplMock).when(cutSpy).createClassificationQuery();
|
||||
doReturn(classificationQueryImplMock).when(classificationQueryImplMock).parentIdIn("");
|
||||
doReturn(classifications).when(classificationQueryImplMock).list();
|
||||
|
||||
List<ClassificationSummary> actaulResults = cutSpy.getClassificationTree();
|
||||
|
||||
verify(taskanaEngineImplMock, times(2)).openConnection();
|
||||
verify(cutSpy, times(1)).createClassificationQuery();
|
||||
verify(classificationQueryImplMock, times(1)).parentIdIn("");
|
||||
verify(classificationQueryImplMock, times(1)).list();
|
||||
verify(taskanaEngineImplMock, times(2)).returnConnection();
|
||||
assertThat(actaulResults, equalTo(classifications));
|
||||
}
|
||||
|
||||
@Test(expected = ClassificationAlreadyExistException.class)
|
||||
public void testCreateClassificationAlreadyExisting()
|
||||
throws ClassificationAlreadyExistException, ClassificationNotFoundException {
|
||||
|
|
|
@ -48,14 +48,13 @@ import pro.taskana.impl.configuration.TaskanaEngineConfigurationTest;
|
|||
*/
|
||||
public class ClassificationServiceImplIntAutoCommitTest {
|
||||
|
||||
private static final String ID_PREFIX_CLASSIFICATION = "CLI";
|
||||
static int counter = 0;
|
||||
|
||||
private DataSource dataSource;
|
||||
private ClassificationService classificationService;
|
||||
private TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
private TaskanaEngine taskanaEngine;
|
||||
private TaskanaEngineImpl taskanaEngineImpl;
|
||||
private static final String ID_PREFIX_CLASSIFICATION = "CLI";
|
||||
|
||||
@BeforeClass
|
||||
public static void resetDb() throws SQLException {
|
||||
|
@ -64,6 +63,11 @@ public class ClassificationServiceImplIntAutoCommitTest {
|
|||
cleaner.clearDb(ds, true);
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void cleanUpClass() {
|
||||
FileUtils.deleteRecursive("~/data", true);
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setup() throws FileNotFoundException, SQLException, LoginException {
|
||||
dataSource = TaskanaEngineConfigurationTest.getDataSource();
|
||||
|
@ -154,9 +158,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testFindAllClassifications()
|
||||
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
|
||||
InvalidArgumentException {
|
||||
public void testFindAllClassifications() throws ClassificationAlreadyExistException {
|
||||
Classification classification0 = this.createDummyClassificationWithUniqueKey("", "type1");
|
||||
classificationService.createClassification(classification0);
|
||||
Classification classification1 = this.createDummyClassificationWithUniqueKey("", "type1");
|
||||
|
@ -165,7 +167,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
|
|||
classification2.setParentId(classification0.getId());
|
||||
classificationService.createClassification(classification2);
|
||||
|
||||
Assert.assertEquals(2 + 1, classificationService.getClassificationTree().size());
|
||||
Assert.assertEquals(2 + 1, classificationService.createClassificationQuery().list().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -215,14 +217,12 @@ public class ClassificationServiceImplIntAutoCommitTest {
|
|||
.list();
|
||||
Assert.assertEquals(1, list.size());
|
||||
|
||||
List<ClassificationSummary> allClassifications = classificationService.getClassificationTree();
|
||||
List<ClassificationSummary> allClassifications = classificationService.createClassificationQuery().list();
|
||||
Assert.assertEquals(1, allClassifications.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindWithClassificationMapperDomainAndCategory()
|
||||
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
|
||||
InvalidArgumentException {
|
||||
public void testFindWithClassificationMapperDomainAndCategory() throws ClassificationAlreadyExistException {
|
||||
Classification classification1 = this.createDummyClassificationWithUniqueKey("domain1", "type1");
|
||||
classification1.setCategory("category1");
|
||||
classificationService.createClassification(classification1);
|
||||
|
@ -243,9 +243,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testFindWithClassificationMapperCustomAndCategory()
|
||||
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
|
||||
InvalidArgumentException {
|
||||
public void testFindWithClassificationMapperCustomAndCategory() throws ClassificationAlreadyExistException {
|
||||
Classification classification1 = this.createDummyClassificationWithUniqueKey("", "type1");
|
||||
classification1.setDescription("DESC1");
|
||||
classification1.setCategory("category1");
|
||||
|
@ -282,8 +280,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
|
|||
|
||||
@Test
|
||||
public void testFindWithClassificationMapperPriorityTypeAndParent()
|
||||
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
|
||||
NumberFormatException, InvalidArgumentException {
|
||||
throws ClassificationAlreadyExistException, NumberFormatException {
|
||||
Classification classification = this.createDummyClassificationWithUniqueKey("", "type1");
|
||||
classification.setPriority(Integer.decode("5"));
|
||||
classificationService.createClassification(classification);
|
||||
|
@ -317,8 +314,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
|
|||
|
||||
@Test
|
||||
public void testFindWithClassificationMapperServiceLevelNameAndDescription()
|
||||
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
|
||||
InvalidArgumentException {
|
||||
throws ClassificationAlreadyExistException {
|
||||
int all = 0;
|
||||
Classification classification = this.createDummyClassificationWithUniqueKey("", "type1");
|
||||
classification.setServiceLevel("P1D");
|
||||
|
@ -356,8 +352,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
|
|||
|
||||
@Test
|
||||
public void testDefaultSettingsWithClassificationMapper()
|
||||
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
|
||||
InvalidArgumentException {
|
||||
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException {
|
||||
Classification classification = this.createDummyClassificationWithUniqueKey("", "type1");
|
||||
classification = classificationService.createClassification(classification);
|
||||
|
||||
|
@ -393,11 +388,6 @@ public class ClassificationServiceImplIntAutoCommitTest {
|
|||
Assert.assertEquals(2, list.size());
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void cleanUpClass() {
|
||||
FileUtils.deleteRecursive("~/data", true);
|
||||
}
|
||||
|
||||
private TimeInterval today() {
|
||||
Instant begin = LocalDateTime.of(LocalDate.now(), LocalTime.MIN).atZone(ZoneId.systemDefault()).toInstant();
|
||||
Instant end = LocalDateTime.of(LocalDate.now(), LocalTime.MAX).atZone(ZoneId.systemDefault()).toInstant();
|
||||
|
|
|
@ -6,7 +6,6 @@ import static org.hamcrest.core.StringStartsWith.startsWith;
|
|||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
import java.time.Instant;
|
||||
|
@ -16,7 +15,6 @@ import java.time.LocalTime;
|
|||
import java.time.ZoneId;
|
||||
import java.util.List;
|
||||
|
||||
import javax.security.auth.login.LoginException;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.h2.store.fs.FileUtils;
|
||||
|
@ -51,13 +49,13 @@ import pro.taskana.impl.configuration.TaskanaEngineConfigurationTest;
|
|||
|
||||
public class ClassificationServiceImplIntExplicitTest {
|
||||
|
||||
private static final String ID_PREFIX_CLASSIFICATION = "CLI";
|
||||
static int counter = 0;
|
||||
private DataSource dataSource;
|
||||
private ClassificationService classificationService;
|
||||
private TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
private TaskanaEngine taskanaEngine;
|
||||
private TaskanaEngineImpl taskanaEngineImpl;
|
||||
private static final String ID_PREFIX_CLASSIFICATION = "CLI";
|
||||
|
||||
@BeforeClass
|
||||
public static void resetDb() throws SQLException {
|
||||
|
@ -66,8 +64,13 @@ public class ClassificationServiceImplIntExplicitTest {
|
|||
cleaner.clearDb(ds, true);
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void cleanUpClass() {
|
||||
FileUtils.deleteRecursive("~/data", true);
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setup() throws FileNotFoundException, SQLException, LoginException {
|
||||
public void setup() throws SQLException {
|
||||
dataSource = TaskanaEngineConfigurationTest.getDataSource();
|
||||
taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false);
|
||||
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
|
||||
|
@ -165,9 +168,7 @@ public class ClassificationServiceImplIntExplicitTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testFindAllClassifications()
|
||||
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
|
||||
ClassificationNotFoundException {
|
||||
public void testFindAllClassifications() throws SQLException, ClassificationAlreadyExistException {
|
||||
Connection connection = dataSource.getConnection();
|
||||
taskanaEngineImpl.setConnection(connection);
|
||||
Classification classification0 = this.createNewClassificationWithUniqueKey("", "t1");
|
||||
|
@ -178,7 +179,7 @@ public class ClassificationServiceImplIntExplicitTest {
|
|||
classification2.setParentId(classification0.getId());
|
||||
classificationService.createClassification(classification2);
|
||||
|
||||
Assert.assertEquals(2 + 1, classificationService.getClassificationTree().size());
|
||||
Assert.assertEquals(2 + 1, classificationService.createClassificationQuery().list().size());
|
||||
connection.commit();
|
||||
}
|
||||
|
||||
|
@ -204,8 +205,7 @@ public class ClassificationServiceImplIntExplicitTest {
|
|||
|
||||
@Test
|
||||
public void testInsertAndClassificationQuery()
|
||||
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
|
||||
ClassificationNotFoundException {
|
||||
throws SQLException, ClassificationAlreadyExistException {
|
||||
Connection connection = dataSource.getConnection();
|
||||
taskanaEngineImpl.setConnection(connection);
|
||||
Classification classification = this.createNewClassificationWithUniqueKey("", "t1");
|
||||
|
@ -219,7 +219,7 @@ public class ClassificationServiceImplIntExplicitTest {
|
|||
|
||||
@Test
|
||||
public void testUpdateAndClassificationQuery() throws NotAuthorizedException, SQLException,
|
||||
ClassificationAlreadyExistException, ClassificationNotFoundException, InvalidArgumentException {
|
||||
ClassificationAlreadyExistException, ClassificationNotFoundException {
|
||||
Connection connection = dataSource.getConnection();
|
||||
taskanaEngineImpl.setConnection(connection);
|
||||
Classification classification = this.createNewClassificationWithUniqueKey("", "t1");
|
||||
|
@ -241,15 +241,14 @@ public class ClassificationServiceImplIntExplicitTest {
|
|||
.list();
|
||||
Assert.assertEquals(1, list.size());
|
||||
|
||||
List<ClassificationSummary> allClassifications = classificationService.getClassificationTree();
|
||||
List<ClassificationSummary> allClassifications = classificationService.createClassificationQuery().list();
|
||||
Assert.assertEquals(1, allClassifications.size());
|
||||
connection.commit();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindWithClassificationMapperDomainAndCategory()
|
||||
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
|
||||
ClassificationNotFoundException {
|
||||
throws SQLException, ClassificationAlreadyExistException {
|
||||
Connection connection = dataSource.getConnection();
|
||||
taskanaEngineImpl.setConnection(connection);
|
||||
Classification classification1 = this.createNewClassificationWithUniqueKey("domain1", "t1");
|
||||
|
@ -275,8 +274,7 @@ public class ClassificationServiceImplIntExplicitTest {
|
|||
|
||||
@Test
|
||||
public void testFindWithClassificationMapperCustomAndCategory()
|
||||
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
|
||||
ClassificationNotFoundException {
|
||||
throws SQLException, ClassificationAlreadyExistException {
|
||||
Connection connection = dataSource.getConnection();
|
||||
taskanaEngineImpl.setConnection(connection);
|
||||
Classification classification1 = this.createNewClassificationWithUniqueKey("", "t1");
|
||||
|
@ -316,8 +314,7 @@ public class ClassificationServiceImplIntExplicitTest {
|
|||
|
||||
@Test
|
||||
public void testFindWithClassificationMapperPriorityTypeAndParent()
|
||||
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
|
||||
ClassificationNotFoundException {
|
||||
throws SQLException, ClassificationAlreadyExistException {
|
||||
Connection connection = dataSource.getConnection();
|
||||
taskanaEngineImpl.setConnection(connection);
|
||||
Classification classification = this.createNewClassificationWithUniqueKey("", "type1");
|
||||
|
@ -439,11 +436,6 @@ public class ClassificationServiceImplIntExplicitTest {
|
|||
taskanaEngineImpl.setConnection(null);
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void cleanUpClass() {
|
||||
FileUtils.deleteRecursive("~/data", true);
|
||||
}
|
||||
|
||||
private Classification createNewClassificationWithUniqueKey(String domain, String type) {
|
||||
Classification classification = classificationService.newClassification(domain, "TEST" + counter, type);
|
||||
counter++;
|
||||
|
|
|
@ -29,7 +29,7 @@ public class ClassificationController {
|
|||
@RequestMapping(method = RequestMethod.GET)
|
||||
public ResponseEntity<List<ClassificationSummary>> getClassifications() {
|
||||
try {
|
||||
List<ClassificationSummary> classificationTree = classificationService.getClassificationTree();
|
||||
List<ClassificationSummary> classificationTree = classificationService.createClassificationQuery().list();
|
||||
return ResponseEntity.status(HttpStatus.OK).body(classificationTree);
|
||||
} catch (Exception e) {
|
||||
return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
|
||||
|
|
Loading…
Reference in New Issue