TSK-815: Removed duplicated and moved functionality testing into acceptance test

This commit is contained in:
julian.schallenmueller 2019-03-07 11:04:15 +01:00 committed by Holger Hagen
parent cbc2ff16ac
commit 4a7664f9ef
8 changed files with 117 additions and 781 deletions

View File

@ -199,7 +199,7 @@ public class ClassificationQueryImpl implements ClassificationQuery {
num = Integer.parseInt(number);
} catch (NumberFormatException e) {
throw new InvalidArgumentException(
"Argument '" + number + "' to getCustomAttribute cannot be converted to a number between 1 and 16",
"Argument '" + number + "' to getCustomAttribute cannot be converted to a number between 1 and 8",
e.getCause());
}
if (customIn.length == 0) {

View File

@ -1,8 +1,10 @@
package acceptance.classification;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -15,6 +17,8 @@ import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.exceptions.TaskanaException;
import pro.taskana.impl.ClassificationImpl;
import pro.taskana.security.JAASRunner;
import pro.taskana.security.WithAccessId;
@ -24,6 +28,8 @@ import pro.taskana.security.WithAccessId;
@RunWith(JAASRunner.class)
public class CreateClassificationAccTest extends AbstractAccTest {
private static final String ID_PREFIX_CLASSIFICATION = "CLI";
private ClassificationService classificationService;
public CreateClassificationAccTest() {
@ -53,6 +59,7 @@ public class CreateClassificationAccTest extends AbstractAccTest {
assertNotNull(classification.getModified());
assertNotNull(classification.getId());
assertThat(classification.getIsValidInDomain(), equalTo(false));
assertTrue(classification.getId().startsWith(ID_PREFIX_CLASSIFICATION));
}
@WithAccessId(
@ -74,6 +81,7 @@ public class CreateClassificationAccTest extends AbstractAccTest {
assertNotNull(createdClassification.getModified());
assertThat(createdClassification.getIsValidInDomain(), equalTo(true));
assertThat(createdClassification.getDomain(), equalTo("DOMAIN_A"));
assertEquals(createdClassification.getKey(), "Key1");
// Check 2 new created
long amountOfClassificationsAfter = classificationService.createClassificationQuery().count();
@ -86,6 +94,7 @@ public class CreateClassificationAccTest extends AbstractAccTest {
assertNotNull(classification.getModified());
assertNotNull(classification.getId());
assertThat(classification.getIsValidInDomain(), equalTo(true));
assertTrue(classification.getId().startsWith(ID_PREFIX_CLASSIFICATION));
// Check master-copy
classification = classificationService.getClassification(classification.getKey(), "");
@ -94,6 +103,51 @@ public class CreateClassificationAccTest extends AbstractAccTest {
assertNotNull(classification.getModified());
assertNotNull(classification.getId());
assertThat(classification.getIsValidInDomain(), equalTo(false));
assertTrue(classification.getId().startsWith(ID_PREFIX_CLASSIFICATION));
}
@WithAccessId(
userName = "teamlead_1",
groupNames = {"group_1", "businessadmin"})
@Test
public void testCreateClassificationWithExistingMaster()
throws DomainNotFoundException, ClassificationAlreadyExistException,
NotAuthorizedException, InvalidArgumentException {
classificationService.createClassification(
classificationService.newClassification("Key0815", "", "TASK"));
long amountOfClassificationsBefore = classificationService.createClassificationQuery().count();
Classification expected = classificationService.newClassification("Key0815", "DOMAIN_B", "TASK");
Classification actual = classificationService.createClassification(expected);
long amountOfClassificationsAfter = classificationService.createClassificationQuery().count();
assertEquals(amountOfClassificationsBefore + 1, amountOfClassificationsAfter);
assertNotNull(actual);
assertEquals(actual, expected);
assertTrue(actual.getIsValidInDomain());
}
@WithAccessId(
userName = "teamlead_1",
groupNames = {"group_1", "businessadmin"})
@Test
public void testCreateChildInDomainAndCopyInMaster()
throws DomainNotFoundException, ClassificationAlreadyExistException,
TaskanaException, InvalidArgumentException {
Classification parent = classificationService.newClassification("Key0816", "DOMAIN_A", "TASK");
Classification actualParent = classificationService.createClassification(parent);
assertNotNull(actualParent);
long amountOfClassificationsBefore = classificationService.createClassificationQuery().count();
Classification child = classificationService.newClassification("Key0817", "DOMAIN_A", "TASK");
child.setParentId(actualParent.getId());
child.setParentKey(actualParent.getKey());
Classification actualChild = classificationService.createClassification(child);
long amountOfClassificationsAfter = classificationService.createClassificationQuery().count();
assertEquals(amountOfClassificationsBefore + 2, amountOfClassificationsAfter);
assertNotNull(actualChild);
}
@WithAccessId(
@ -192,4 +246,17 @@ public class CreateClassificationAccTest extends AbstractAccTest {
classification = classificationService.createClassification(classification);
}
@WithAccessId(
userName = "teamlead_1",
groupNames = {"group_1", "businessadmin"})
@Test(expected = InvalidArgumentException.class)
public void testCreateClassificationWithExplicitId()
throws DomainNotFoundException, ClassificationAlreadyExistException,
NotAuthorizedException, InvalidArgumentException {
ClassificationImpl classification = (ClassificationImpl) classificationService
.newClassification("Key0818", "", "TASK");
classification.setId("EXPLICIT ID");
classificationService.createClassification(classification);
}
}

View File

@ -18,13 +18,15 @@ import pro.taskana.exceptions.ClassificationNotFoundException;
*/
public class GetClassificationAccTest extends AbstractAccTest {
private ClassificationService classificationService;
public GetClassificationAccTest() {
super();
classificationService = taskanaEngine.getClassificationService();
}
@Test
public void testFindAllClassifications() {
ClassificationService classificationService = taskanaEngine.getClassificationService();
List<ClassificationSummary> classificationSummaryList = classificationService.createClassificationQuery()
.list();
assertNotNull(classificationSummaryList);
@ -32,7 +34,6 @@ public class GetClassificationAccTest extends AbstractAccTest {
@Test
public void testGetOneClassificationByKeyAndDomain() throws ClassificationNotFoundException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification classification = classificationService.getClassification("T6310", "DOMAIN_A");
assertNotNull(classification);
assertEquals("CLI:100000000000000000000000000000000011", classification.getId());
@ -56,7 +57,6 @@ public class GetClassificationAccTest extends AbstractAccTest {
@Test
public void testGetOneClassificationById() throws ClassificationNotFoundException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification classification = classificationService
.getClassification("CLI:100000000000000000000000000000000011");
assertNotNull(classification);
@ -82,7 +82,6 @@ public class GetClassificationAccTest extends AbstractAccTest {
@Test
public void testGetClassificationAsSummary() throws ClassificationNotFoundException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
ClassificationSummary classification = classificationService
.getClassification("CLI:100000000000000000000000000000000011").asSummary();
assertNotNull(classification);
@ -99,16 +98,25 @@ public class GetClassificationAccTest extends AbstractAccTest {
@Test(expected = ClassificationNotFoundException.class)
public void testGetOneClassificationByIdFails() throws ClassificationNotFoundException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification classification = classificationService
.getClassification("CLI:100000000470000000000000000000000011");
classificationService.getClassification("CLI:100000000470000000000000000000000011");
fail("ClassificationNotFoundException was expected");
}
@Test(expected = ClassificationNotFoundException.class)
public void testGetClassificationByNullKeyFails() throws ClassificationNotFoundException {
classificationService.getClassification(null, "");
fail("ClassificationNotFoundException was expected");
}
@Test(expected = ClassificationNotFoundException.class)
public void testGetClassificationByInvalidKeyAndDomain() throws ClassificationNotFoundException {
classificationService.getClassification("Key0815", "NOT_EXISTING");
fail("ClassificationNotFoundException was expected");
}
@Test
public void testGetOneClassificationForDomainAndGetClassificationFromMasterDomain()
throws ClassificationNotFoundException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification classification = classificationService.getClassification("L10000", "DOMAIN_B");
assertNotNull(classification);
assertEquals("", classification.getDomain());
@ -117,7 +125,6 @@ public class GetClassificationAccTest extends AbstractAccTest {
@Test
public void testGetOneClassificationForMasterDomain() throws ClassificationNotFoundException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification classification = classificationService.getClassification("L10000", "");
assertNotNull(classification);
assertEquals("", classification.getDomain());

View File

@ -399,6 +399,15 @@ public class QueryClassificationAccTest extends AbstractAccTest {
assertEquals(3, results.size());
}
@Test
public void testQueryForCustom2Like() throws InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
List<ClassificationSummary> results = classificationService.createClassificationQuery()
.customAttributeLike("2", "cus%")
.list();
assertEquals(4, results.size());
}
@Test
public void testQueryForCustom3Like() throws InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();

View File

@ -22,8 +22,10 @@ import pro.taskana.Classification;
import pro.taskana.ClassificationService;
import pro.taskana.Task;
import pro.taskana.TaskService;
import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.exceptions.TaskNotFoundException;
@ -40,8 +42,11 @@ import pro.taskana.security.WithAccessId;
@RunWith(JAASRunner.class)
public class UpdateClassificationAccTest extends AbstractAccTest {
private ClassificationService classificationService;
public UpdateClassificationAccTest() {
super();
classificationService = taskanaEngine.getClassificationService();
}
@WithAccessId(
@ -53,7 +58,6 @@ public class UpdateClassificationAccTest extends AbstractAccTest {
InvalidArgumentException {
String newName = "updated Name";
String newEntryPoint = "updated EntryPoint";
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification classification = classificationService.getClassification("T2100", "DOMAIN_A");
Instant createdBefore = classification.getCreated();
Instant modifiedBefore = classification.getModified();
@ -93,7 +97,6 @@ public class UpdateClassificationAccTest extends AbstractAccTest {
InvalidArgumentException {
String newName = "updated Name";
String newEntryPoint = "updated EntryPoint";
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification classification = classificationService.getClassification("T2100", "DOMAIN_A");
classification.setApplicationEntryPoint(newEntryPoint);
@ -126,7 +129,7 @@ public class UpdateClassificationAccTest extends AbstractAccTest {
TaskImpl beforeTask = (TaskImpl) taskanaEngine.getTaskService()
.getTask("TKI:000000000000000000000000000000000000");
Classification classification = taskanaEngine.getClassificationService()
Classification classification = classificationService
.getClassification(beforeTask.getClassificationSummary().getKey(), beforeTask.getDomain());
classification.setCategory("PROCESS");
Instant createdBefore = classification.getCreated();
@ -153,7 +156,6 @@ public class UpdateClassificationAccTest extends AbstractAccTest {
public void testUpdateClassificationNotLatestAnymore()
throws ClassificationNotFoundException, NotAuthorizedException, ConcurrencyException, InterruptedException,
InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification base = classificationService.getClassification("T2100", "DOMAIN_A");
Classification classification = classificationService.getClassification("T2100", "DOMAIN_A");
@ -177,7 +179,6 @@ public class UpdateClassificationAccTest extends AbstractAccTest {
public void testUpdateClassificationParentIdToInvalid()
throws NotAuthorizedException, ClassificationNotFoundException,
ConcurrencyException, InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification classification = classificationService.getClassification("T2100", "DOMAIN_A");
classification.setParentId("ID WHICH CANT BE FOUND");
classification = classificationService.updateClassification(classification);
@ -190,7 +191,6 @@ public class UpdateClassificationAccTest extends AbstractAccTest {
public void testUpdateClassificationParentKeyToInvalid()
throws NotAuthorizedException, ClassificationNotFoundException,
ConcurrencyException, InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification classification = classificationService.getClassification("T2100", "DOMAIN_A");
classification.setParentKey("KEY WHICH CANT BE FOUND");
classification = classificationService.updateClassification(classification);
@ -205,7 +205,6 @@ public class UpdateClassificationAccTest extends AbstractAccTest {
InterruptedException, TaskNotFoundException, InvalidArgumentException {
String newEntryPoint = "updated EntryPoint";
Instant before = Instant.now();
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification classification = classificationService
.getClassification("CLI:100000000000000000000000000000000003");
Instant createdBefore = classification.getCreated();
@ -283,13 +282,27 @@ public class UpdateClassificationAccTest extends AbstractAccTest {
public void testUpdateClassificationWithSameKeyAndParentKey()
throws ClassificationNotFoundException, NotAuthorizedException, ConcurrencyException, InvalidArgumentException {
ClassificationService classificationService = taskanaEngine.getClassificationService();
Classification classification = classificationService.getClassification("T2100", "DOMAIN_A");
classification.setParentKey(classification.getKey());
classificationService.updateClassification(classification);
}
@WithAccessId(
userName = "dummy",
groupNames = {"businessadmin"})
@Test
public void testUpdateClassificationWithEmptyServiceLevel()
throws DomainNotFoundException, ClassificationAlreadyExistException, NotAuthorizedException,
InvalidArgumentException, ClassificationNotFoundException, ConcurrencyException {
Classification classification = classificationService.newClassification("Key=0818", "DOMAIN_A", "TASK");
Classification created = classificationService.createClassification(classification);
created.setServiceLevel("");
classificationService.updateClassification(created);
}
private void validateNewTaskProperties(Instant before, List<String> tasksWithP15D, TaskService taskService,
DaysToWorkingDaysConverter converter, int serviceLevel) throws TaskNotFoundException, NotAuthorizedException {
for (String taskId : tasksWithP15D) {

View File

@ -1,18 +1,11 @@
package pro.taskana.impl;
import static junit.framework.TestCase.assertEquals;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import java.time.Instant;
import java.time.LocalDate;
import java.util.List;
@ -28,8 +21,6 @@ import org.mockito.junit.MockitoJUnitRunner;
import pro.taskana.Classification;
import pro.taskana.JobService;
import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
@ -72,344 +63,6 @@ public class ClassificationServiceImplTest {
doNothing().when(taskanaEngineImplMock).returnConnection();
}
@Test(expected = ClassificationAlreadyExistException.class)
public void testCreateClassificationAlreadyExisting()
throws ClassificationAlreadyExistException, NotAuthorizedException,
DomainNotFoundException, InvalidArgumentException {
Classification classification = createDummyClassification();
doReturn(classification).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
doReturn(true).when(taskanaEngineImplMock).domainExists(any());
try {
cutSpy.createClassification(classification);
} catch (ClassificationAlreadyExistException e) {
verify(taskanaEngineImplMock, times(1)).openConnection();
verify(classificationMapperMock, times(1)).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
verify(taskanaEngineImplMock, times(1)).returnConnection();
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(1)).domainExists(any());
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
throw e;
}
}
@Test(expected = InvalidArgumentException.class)
public void testCreateClassificationParentIdNotExisting()
throws ClassificationAlreadyExistException, ClassificationNotFoundException, NotAuthorizedException,
DomainNotFoundException, InvalidArgumentException {
Classification classification = createDummyClassification(null);
classification.setParentId("NOT EXISTING ID");
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
doReturn(null).when(classificationMapperMock).findById(classification.getParentId());
doReturn(true).when(taskanaEngineImplMock).domainExists(any());
try {
cutSpy.createClassification(classification);
} catch (InvalidArgumentException e) {
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(2)).openConnection();
verify(classificationMapperMock, times(1)).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
verify(cutSpy, times(1)).getClassification(classification.getParentId());
verify(classificationMapperMock, times(1)).findById(classification.getParentId());
verify(taskanaEngineImplMock, times(2)).returnConnection();
verify(taskanaEngineImplMock, times(1)).domainExists(any());
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
throw e;
}
}
@Test(expected = InvalidArgumentException.class)
public void testCreateClassificationParentKeyNotExisting()
throws ClassificationAlreadyExistException, ClassificationNotFoundException, NotAuthorizedException,
DomainNotFoundException, InvalidArgumentException {
Classification classification = createDummyClassification(null);
classification.setParentKey("NOT EXISTING KEY");
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getParentKey(),
classification.getDomain());
doReturn(true).when(taskanaEngineImplMock).domainExists(any());
try {
cutSpy.createClassification(classification);
} catch (InvalidArgumentException e) {
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(2)).openConnection();
verify(classificationMapperMock, times(1)).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
verify(classificationMapperMock, times(1)).findByKeyAndDomain(classification.getParentKey(),
classification.getDomain());
verify(classificationMapperMock, times(1)).findByKeyAndDomain(classification.getParentKey(), "");
verify(cutSpy, times(1)).getClassification(classification.getParentKey(), classification.getDomain());
verify(taskanaEngineImplMock, times(2)).returnConnection();
verify(taskanaEngineImplMock, times(1)).domainExists(any());
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
throw e;
}
}
@Test
public void testCreateClassificationInOwnDomainButExistingInMaster()
throws ClassificationAlreadyExistException, InterruptedException,
NotAuthorizedException, DomainNotFoundException, InvalidArgumentException {
Instant beforeTimestamp = Instant.now();
Thread.sleep(10L);
Classification classification = createDummyClassification(null);
String domain = classification.getDomain();
String key = classification.getKey();
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
doReturn(classification).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), "");
doReturn(true).when(taskanaEngineImplMock).domainExists(any());
classification = cutSpy.createClassification(classification);
Thread.sleep(10L);
verify(taskanaEngineImplMock, times(2)).openConnection();
verify(classificationMapperMock, times(1)).findByKeyAndDomain(key, domain);
verify(classificationMapperMock, times(1)).findByKeyAndDomain(key, "");
verify(classificationMapperMock, times(1)).insert(any());
verify(taskanaEngineImplMock, times(2)).returnConnection();
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(1)).domainExists(any());
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
Thread.sleep(15);
assertThat(classification.getCreated().toString().substring(0, 10), equalTo(todaysDate));
assertFalse(classification.getCreated().isAfter(Instant.now()));
assertTrue(classification.getCreated().isAfter(beforeTimestamp));
assertThat(classification.getDomain(), equalTo(domain));
assertThat(classification.getKey(), equalTo(key));
}
@Test
public void testCreateClassificationInOwnDomainAndCopyInMasterDomain()
throws ClassificationAlreadyExistException, NotAuthorizedException, DomainNotFoundException,
InvalidArgumentException {
Classification classification = createDummyClassification("");
String domain = classification.getDomain();
String key = classification.getKey();
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), "");
doReturn(true).when(taskanaEngineImplMock).domainExists(any());
classification = cutSpy.createClassification(classification);
verify(taskanaEngineImplMock, times(2)).openConnection();
verify(classificationMapperMock, times(1)).findByKeyAndDomain(key, domain);
verify(classificationMapperMock, times(2)).findByKeyAndDomain(key, "");
verify(classificationMapperMock, times(2)).insert(any());
verify(taskanaEngineImplMock, times(2)).returnConnection();
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(1)).domainExists(any());
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
assertThat(classification.getCreated().toString().substring(0, 10), equalTo(todaysDate));
assertThat(classification.getDomain(), equalTo(domain));
assertThat(classification.getKey(), equalTo(key));
}
@Test
public void testCreateChildClassificationInOwnDomainAndCopyInMasterDomain()
throws ClassificationAlreadyExistException, NotAuthorizedException, DomainNotFoundException,
InvalidArgumentException {
Classification classification = createDummyClassification("");
classification.setParentId("parentId");
classification.setParentKey("ParentKey");
ClassificationImpl parentDomainClassification = (ClassificationImpl) createDummyClassification("ParentId");
parentDomainClassification.setKey("ParentKey");
ClassificationImpl parentMasterClassification = (ClassificationImpl) createDummyClassification(
"ParentIdMaster");
parentMasterClassification.setKey("ParentKey");
parentMasterClassification.setDomain("");
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), "");
doReturn(parentMasterClassification).when(classificationMapperMock).findByKeyAndDomain("ParentKey", "");
doReturn(parentDomainClassification).when(classificationMapperMock).findById("parentId");
doReturn(true).when(taskanaEngineImplMock).domainExists(any());
cutSpy.createClassification(classification);
verify(classificationMapperMock, times(2)).insert(any());
}
@Test
public void testCreateClassificationIntoRootDomain()
throws ClassificationAlreadyExistException, NotAuthorizedException,
DomainNotFoundException, InvalidArgumentException {
ClassificationImpl classification = (ClassificationImpl) createDummyClassification(null);
classification.setDomain("");
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
classification = (ClassificationImpl) cutSpy.createClassification(classification);
verify(taskanaEngineImplMock, times(1)).openConnection();
verify(classificationMapperMock, times(1)).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
verify(classificationMapperMock, times(1)).insert(classification);
verify(taskanaEngineImplMock, times(1)).returnConnection();
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(1)).domainExists(any());
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
assertThat(classification.getCreated().toString().substring(0, 10), equalTo(todaysDate));
}
@Test
public void testUpdateExistingClassification()
throws ClassificationNotFoundException, NotAuthorizedException, ConcurrencyException, InvalidArgumentException {
Instant now = Instant.now();
Classification classification = createDummyClassification();
((ClassificationImpl) classification).setModified(now);
ClassificationImpl oldClassification = (ClassificationImpl) createDummyClassification();
oldClassification.setModified(now);
doReturn(oldClassification).when(cutSpy).getClassification(classification.getKey(), classification.getDomain());
classification = cutSpy.updateClassification(classification);
verify(taskanaEngineImplMock, times(1)).openConnection();
verify(cutSpy, times(1)).getClassification(classification.getKey(), classification.getDomain());
verify(classificationMapperMock, times(1)).update(any());
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(1)).returnConnection();
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
}
@Test
public void testUpdateClassificationWithEmptyServiceLevel()
throws ClassificationNotFoundException, NotAuthorizedException, ConcurrencyException, InvalidArgumentException {
Instant now = Instant.now();
Classification classification = createDummyClassification();
((ClassificationImpl) classification).setModified(now);
classification.setServiceLevel("");
ClassificationImpl oldClassification = (ClassificationImpl) createDummyClassification();
oldClassification.setModified(now);
doReturn(oldClassification).when(cutSpy).getClassification(classification.getKey(), classification.getDomain());
doReturn(jobServiceMock).when(taskanaEngineImplMock).getJobService();
cutSpy.updateClassification(classification);
verify(classificationMapperMock, times(1)).update(any());
}
@Test(expected = ClassificationNotFoundException.class)
public void testUpdateClassificationParentIdNotExisting()
throws ClassificationNotFoundException, NotAuthorizedException,
ConcurrencyException, InvalidArgumentException {
Instant now = Instant.now();
ClassificationImpl oldClassification = (ClassificationImpl) createDummyClassification();
oldClassification.setParentId("SOME ID");
oldClassification.setCreated(now);
oldClassification.setModified(now);
Classification classification = createDummyClassification();
classification.setParentId("DIFFERENT ID - FOR CHECKING PARENT");
((ClassificationImpl) classification).setCreated(oldClassification.getCreated());
((ClassificationImpl) classification).setModified(oldClassification.getModified());
doReturn(oldClassification).when(cutSpy).getClassification(classification.getKey(), classification.getDomain());
doReturn(null).when(classificationMapperMock).findById(classification.getParentId());
try {
cutSpy.updateClassification(classification);
} catch (ClassificationNotFoundException e) {
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(2)).openConnection();
verify(cutSpy, times(1)).getClassification(classification.getKey(),
classification.getDomain());
verify(cutSpy, times(1)).getClassification(classification.getParentId());
verify(classificationMapperMock, times(1)).findById(classification.getParentId());
verify(taskanaEngineImplMock, times(2)).returnConnection();
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
throw e;
}
}
@Test(expected = ClassificationNotFoundException.class)
public void testUpdateClassificationParentKeyNotExisting()
throws ClassificationNotFoundException, NotAuthorizedException,
ConcurrencyException, InvalidArgumentException {
Instant now = Instant.now();
ClassificationImpl oldClassification = (ClassificationImpl) createDummyClassification();
oldClassification.setParentKey("SOME KEY");
oldClassification.setCreated(now);
oldClassification.setModified(now);
Classification classification = createDummyClassification();
classification.setParentKey("DIFFERENT KEY - FOR CHECKING PARENT");
((ClassificationImpl) classification).setCreated(oldClassification.getCreated());
((ClassificationImpl) classification).setModified(oldClassification.getModified());
doReturn(oldClassification).when(cutSpy).getClassification(classification.getKey(), classification.getDomain());
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getParentKey(),
classification.getDomain());
try {
cutSpy.updateClassification(classification);
} catch (ClassificationNotFoundException e) {
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(2)).openConnection();
verify(cutSpy, times(1)).getClassification(classification.getKey(),
classification.getDomain());
verify(cutSpy, times(1)).getClassification(classification.getParentKey(),
classification.getDomain());
verify(classificationMapperMock, times(1)).findByKeyAndDomain(classification.getParentKey(),
classification.getDomain());
verify(classificationMapperMock, times(1)).findByKeyAndDomain(classification.getParentKey(), "");
verify(taskanaEngineImplMock, times(2)).returnConnection();
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
throw e;
}
}
@Test
public void testGetClassificationFromDomain() throws ClassificationNotFoundException {
Classification expectedClassification = createDummyClassification();
doReturn(expectedClassification).when(classificationMapperMock)
.findByKeyAndDomain(expectedClassification.getKey(), expectedClassification.getDomain());
Classification actualClassification = cutSpy.getClassification(expectedClassification.getKey(),
expectedClassification.getDomain());
verify(taskanaEngineImplMock, times(1)).openConnection();
verify(classificationMapperMock, times(1)).findByKeyAndDomain(expectedClassification.getKey(),
expectedClassification.getDomain());
verify(taskanaEngineImplMock, times(1)).returnConnection();
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
assertThat(actualClassification, equalTo(expectedClassification));
}
@Test(expected = ClassificationNotFoundException.class)
public void testGetClassificationThrowingNotFoundException() throws ClassificationNotFoundException {
Classification classification = createDummyClassification();
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), "");
try {
cutSpy.getClassification(classification.getKey(), classification.getDomain());
} catch (ClassificationNotFoundException e) {
verify(taskanaEngineImplMock, times(1)).openConnection();
verify(classificationMapperMock, times(1)).findByKeyAndDomain(classification.getKey(),
classification.getDomain());
verify(classificationMapperMock, times(1)).findByKeyAndDomain(classification.getKey(), "");
verify(taskanaEngineImplMock, times(1)).returnConnection();
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
throw e;
}
}
@Test(expected = ClassificationNotFoundException.class)
public void testGetClassificationWithInvalidNullKey() throws ClassificationNotFoundException {
try {
cutSpy.getClassification(null, "domain");
} catch (ClassificationNotFoundException e) {
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
throw e;
}
}
@Test
public void testCreateClassificationQuery() {
cutSpy.createClassificationQuery();
@ -428,7 +81,6 @@ public class ClassificationServiceImplTest {
assertEquals(e.getMessage(), "ClassificationId should be null on creation");
throw e;
}
}
private Classification createDummyClassification() {

View File

@ -1,10 +1,6 @@
package pro.taskana.impl.integration;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.core.IsNot.not;
import static org.hamcrest.core.StringStartsWith.startsWith;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
import java.sql.SQLException;
import java.time.Instant;
@ -34,7 +30,6 @@ import pro.taskana.exceptions.ConcurrencyException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.impl.ClassificationImpl;
import pro.taskana.impl.TaskanaEngineImpl;
import pro.taskana.impl.configuration.DBCleaner;
import pro.taskana.impl.configuration.TaskanaEngineConfigurationTest;
@ -46,7 +41,6 @@ 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;
@ -74,84 +68,6 @@ public class ClassificationServiceImplIntAutoCommitTest {
cleaner.clearDb(dataSource, false);
}
@Test
public void testInsertClassifications() throws Exception {
final String domain = "DOMAIN_A";
final String key = "dummy-key";
ClassificationImpl expectedClassification;
Classification actualClassification;
Classification actualClassification2;
// empty classification (master)
expectedClassification = (ClassificationImpl) this.createDummyClassificationWithUniqueKey("", "TASK");
expectedClassification = (ClassificationImpl) classificationService
.createClassification(expectedClassification);
actualClassification = classificationService.getClassification(expectedClassification.getKey(),
expectedClassification.getDomain());
assertThat(actualClassification, not(equalTo(null)));
assertThat(actualClassification.getCreated(), not(equalTo(null)));
assertThat(actualClassification.getId(), not(equalTo(null)));
assertThat(actualClassification.getId(), startsWith(ID_PREFIX_CLASSIFICATION));
// specific to domain + master
expectedClassification = (ClassificationImpl) this.createDummyClassificationWithUniqueKey(domain, "TASK");
expectedClassification.setKey(key);
expectedClassification = (ClassificationImpl) classificationService
.createClassification(expectedClassification);
actualClassification = classificationService.getClassification(expectedClassification.getKey(),
expectedClassification.getDomain());
actualClassification2 = classificationService.getClassification(expectedClassification.getKey(), "");
assertThat(actualClassification, not(equalTo(null)));
assertThat(actualClassification.getCreated(), not(equalTo(null)));
assertThat(actualClassification.getId(), not(equalTo(null)));
assertThat(actualClassification.getKey(), equalTo(key));
assertThat(actualClassification.getDomain(), equalTo(domain));
assertThat(actualClassification.getId(), startsWith(ID_PREFIX_CLASSIFICATION));
assertThat(actualClassification2, not(equalTo(null)));
assertThat(actualClassification2.getCreated(), not(equalTo(null)));
assertThat(actualClassification2.getId(), not(equalTo(null)));
assertThat(actualClassification2.getId(), not(equalTo(actualClassification.getId())));
assertThat(actualClassification2.getKey(), equalTo(key));
assertThat(actualClassification2.getDomain(), equalTo(""));
assertThat(actualClassification2.getId(), startsWith(ID_PREFIX_CLASSIFICATION));
// does exist already
try {
expectedClassification = (ClassificationImpl) this.createDummyClassificationWithUniqueKey(domain, "TASK");
expectedClassification.setKey(key);
classificationService.createClassification(expectedClassification);
fail("Should have thrown 'ClassificationAlreadyExistException' here.");
} catch (ClassificationAlreadyExistException e) {
}
// new classification but master existing
expectedClassification = (ClassificationImpl) this.createDummyClassificationWithUniqueKey("DOMAIN_B",
"TASK");
expectedClassification.setKey(key);
classificationService.createClassification(expectedClassification);
actualClassification = classificationService.getClassification(key, "DOMAIN_B");
assertThat(actualClassification, not(equalTo(null)));
assertThat(actualClassification.getCreated(), not(equalTo(null)));
assertThat(actualClassification.getId(), not(equalTo(null)));
assertThat(actualClassification.getKey(), equalTo(key));
assertThat(actualClassification.getDomain(), equalTo("DOMAIN_B"));
assertThat(actualClassification.getId(), startsWith(ID_PREFIX_CLASSIFICATION));
// verify that
Classification masterResults = classificationService.getClassification(key, "");
assertThat(masterResults, not(equalTo(null)));
// invalid serviceLevel
try {
expectedClassification = (ClassificationImpl) this.createDummyClassificationWithUniqueKey(domain,
"TASK");
expectedClassification.setKey("");
expectedClassification.setServiceLevel("ASAP");
classificationService.createClassification(expectedClassification);
fail("Should have thrown IllegalArgumentException, because ServiceLevel is invalid.");
} catch (InvalidArgumentException e) {
}
}
@Test
public void testFindAllClassifications()
throws ClassificationAlreadyExistException, NotAuthorizedException, DomainNotFoundException,
@ -183,7 +99,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
}
@Test
public void testInsertAndClassificationMapper()
public void testInsertClassification()
throws NotAuthorizedException, ClassificationAlreadyExistException, InvalidArgumentException,
DomainNotFoundException {
Classification classification = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "TASK");
@ -198,7 +114,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
}
@Test
public void testUpdateAndClassificationMapper()
public void testUpdateClassification()
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
ConcurrencyException, DomainNotFoundException, InvalidArgumentException {
Classification classification = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "TASK");
@ -221,142 +137,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
}
@Test
public void testFindWithClassificationMapperDomainAndCategory()
throws ClassificationAlreadyExistException, NotAuthorizedException, DomainNotFoundException,
InvalidArgumentException {
Classification classification1 = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "TASK");
classification1.setCategory("EXTERNAL");
classificationService.createClassification(classification1);
Classification classification2 = this.createDummyClassificationWithUniqueKey("DOMAIN_B", "TASK");
classification2.setCategory("EXTERNAL");
classificationService.createClassification(classification2);
Classification classification3 = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "TASK");
classification3.setCategory("MANUAL");
classificationService.createClassification(classification3);
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.categoryIn("EXTERNAL")
.domainIn("DOMAIN_A")
.list();
Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery().domainIn("DOMAIN_A", "DOMAIN_C").list();
Assert.assertEquals(2, list.size());
}
@Test
public void testFindWithClassificationMapperCustomAndCategory()
throws ClassificationAlreadyExistException, NotAuthorizedException, DomainNotFoundException,
InvalidArgumentException {
Classification classification1 = this.createDummyClassificationWithUniqueKey("", "TASK");
classification1.setDescription("DESC1");
classification1.setCategory("EXTERNAL");
classificationService.createClassification(classification1);
Classification classification2 = this.createDummyClassificationWithUniqueKey("", "TASK");
classification2.setDescription("DESC1");
classification2.setCustom1("custom1");
classification2.setCategory("EXTERNAL");
classificationService.createClassification(classification2);
Classification classification3 = this.createDummyClassificationWithUniqueKey("", "TASK");
classification3.setCustom1("custom2");
classification3.setCustom2("custom1");
classification3.setCategory("MANUAL");
classificationService.createClassification(classification3);
Classification classification4 = this.createDummyClassificationWithUniqueKey("", "TASK");
classification4.setDescription("description2");
classification4.setCustom8("custom2");
classification4.setCategory("EXTERNAL");
classificationService.createClassification(classification4);
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.descriptionLike("DESC1")
.customAttributeIn("1", "custom1")
.list();
Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery().customAttributeIn("2", "custom1").list();
Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery()
.descriptionLike("DESC1")
.categoryIn("EXTERNAL")
.list();
Assert.assertEquals(2, list.size());
}
@Test
public void testFindWithClassificationMapperPriorityTypeAndParent()
throws ClassificationAlreadyExistException, NumberFormatException, NotAuthorizedException,
DomainNotFoundException, InvalidArgumentException {
Classification classification = this.createDummyClassificationWithUniqueKey("", "TASK");
classification.setPriority(Integer.decode("5"));
classificationService.createClassification(classification);
Classification classification1 = this.createDummyClassificationWithUniqueKey("", "TASK");
classification1.setPriority(Integer.decode("3"));
classification1.setParentId(classification.getId());
classificationService.createClassification(classification1);
Classification classification2 = this.createDummyClassificationWithUniqueKey("", "DOCUMENT");
classification2.setPriority(Integer.decode("5"));
classification2.setParentId(classification.getId());
classificationService.createClassification(classification2);
Classification classification3 = this.createDummyClassificationWithUniqueKey("", "TASK");
classification3.setPriority(Integer.decode("5"));
classification3.setParentId(classification1.getId());
classificationService.createClassification(classification3);
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.parentIdIn(classification.getId())
.list();
Assert.assertEquals(2, list.size());
list = classificationService.createClassificationQuery().typeIn("TASK").priorityIn(Integer.decode("5")).list();
Assert.assertEquals(2, list.size());
list = classificationService.createClassificationQuery()
.priorityIn(Integer.decode("5"))
.typeIn("TASK")
.parentIdIn(classification1.getId())
.list();
Assert.assertEquals(1, list.size());
}
@Test
public void testFindWithClassificationMapperServiceLevelNameAndDescription()
throws ClassificationAlreadyExistException, NotAuthorizedException, DomainNotFoundException,
InvalidArgumentException {
int all = 0;
Classification classification = this.createDummyClassificationWithUniqueKey("", "TASK");
classification.setServiceLevel("P1D");
classification.setName("name1");
classification.setDescription("desc");
classificationService.createClassification(classification);
all++;
Classification classification1 = this.createDummyClassificationWithUniqueKey("", "TASK");
classification1.setServiceLevel("P2D");
classification1.setName("name1");
classification1.setDescription("desc");
classificationService.createClassification(classification1);
all++;
Classification classification2 = this.createDummyClassificationWithUniqueKey("", "TASK");
classification2.setServiceLevel("P1D");
classification2.setName("name");
classification2.setDescription("desc");
classificationService.createClassification(classification2);
all++;
Classification classification3 = this.createDummyClassificationWithUniqueKey("", "TASK");
classification3.setName("name1");
classification3.setDescription("description");
classificationService.createClassification(classification3);
all++;
List<ClassificationSummary> list = classificationService.createClassificationQuery().nameIn("name").list();
Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery().serviceLevelIn("P1D").descriptionLike("desc").list();
Assert.assertEquals(2, list.size());
list = classificationService.createClassificationQuery().serviceLevelIn("P2D").nameIn("name").list();
Assert.assertEquals(0, list.size());
list = classificationService.createClassificationQuery().descriptionLike("desc%").list();
Assert.assertEquals(all, list.size());
}
@Test
public void testDefaultSettingsWithClassificationMapper()
public void testDefaultSettings()
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
ConcurrencyException, DomainNotFoundException, InvalidArgumentException {
Classification classification = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "TASK");

View File

@ -88,52 +88,6 @@ public class ClassificationServiceImplIntExplicitTest {
final String key = "dummy-key";
ClassificationImpl expectedClassification;
Classification actualClassification;
Classification actualClassification2;
// empty classification (master)
expectedClassification = (ClassificationImpl) this.createNewClassificationWithUniqueKey("", "TASK");
expectedClassification = (ClassificationImpl) classificationService
.createClassification(expectedClassification);
connection.commit();
actualClassification = classificationService.getClassification(expectedClassification.getKey(),
expectedClassification.getDomain());
assertThat(actualClassification, not(equalTo(null)));
assertThat(actualClassification.getCreated(), not(equalTo(null)));
assertThat(actualClassification.getId(), not(equalTo(null)));
assertThat(actualClassification.getId(), startsWith(ID_PREFIX_CLASSIFICATION));
// specific to domain + master
expectedClassification = (ClassificationImpl) this.createNewClassificationWithUniqueKey(domain, "TASK");
expectedClassification.setKey(key);
expectedClassification = (ClassificationImpl) classificationService
.createClassification(expectedClassification);
connection.commit();
actualClassification = classificationService.getClassification(expectedClassification.getKey(),
expectedClassification.getDomain());
actualClassification2 = classificationService.getClassification(expectedClassification.getKey(), "");
assertThat(actualClassification, not(equalTo(null)));
assertThat(actualClassification.getCreated(), not(equalTo(null)));
assertThat(actualClassification.getId(), not(equalTo(null)));
assertThat(actualClassification.getKey(), equalTo(key));
assertThat(actualClassification.getDomain(), equalTo(domain));
assertThat(actualClassification.getId(), startsWith(ID_PREFIX_CLASSIFICATION));
assertThat(actualClassification2, not(equalTo(null)));
assertThat(actualClassification2.getCreated(), not(equalTo(null)));
assertThat(actualClassification2.getId(), not(equalTo(null)));
assertThat(actualClassification2.getId(), not(equalTo(actualClassification.getId())));
assertThat(actualClassification2.getKey(), equalTo(key));
assertThat(actualClassification2.getDomain(), equalTo(""));
assertThat(actualClassification2.getId(), startsWith(ID_PREFIX_CLASSIFICATION));
// does exist already
try {
expectedClassification = (ClassificationImpl) this.createNewClassificationWithUniqueKey(domain, "TASK");
expectedClassification.setKey(key);
classificationService.createClassification(expectedClassification);
connection.commit();
fail("Should have thrown 'ClassificationAlreadyExistException' here.");
} catch (ClassificationAlreadyExistException e) {
}
// new classification but master existing
expectedClassification = (ClassificationImpl) this.createNewClassificationWithUniqueKey("", "TASK");
@ -247,153 +201,6 @@ public class ClassificationServiceImplIntExplicitTest {
connection.commit();
}
@Test
public void testFindWithClassificationMapperDomainAndCategory()
throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException,
DomainNotFoundException, InvalidArgumentException {
Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection);
Classification classification1 = this.createNewClassificationWithUniqueKey("DOMAIN_A", "TASK");
classification1.setCategory("EXTERNAL");
classificationService.createClassification(classification1);
Classification classification2 = this.createNewClassificationWithUniqueKey("DOMAIN_B", "TASK");
classification2.setCategory("EXTERNAL");
classificationService.createClassification(classification2);
Classification classification3 = this.createNewClassificationWithUniqueKey("DOMAIN_A", "TASK");
classification3.setCategory("MANUAL");
classificationService.createClassification(classification3);
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.categoryIn("EXTERNAL")
.domainIn("DOMAIN_A")
.list();
Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery().domainIn("DOMAIN_A", "domain3").list();
Assert.assertEquals(2, list.size());
connection.commit();
}
@Test
public void testFindWithClassificationMapperCustomAndCategory()
throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException,
DomainNotFoundException, InvalidArgumentException {
Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection);
Classification classification1 = this.createNewClassificationWithUniqueKey("", "TASK");
classification1.setDescription("DESC1");
classification1.setCategory("EXTERNAL");
classificationService.createClassification(classification1);
Classification classification2 = this.createNewClassificationWithUniqueKey("", "TASK");
classification2.setDescription("DESC1");
classification2.setCustom1("custom1");
classification2.setCategory("EXTERNAL");
classificationService.createClassification(classification2);
Classification classification3 = this.createNewClassificationWithUniqueKey("", "TASK");
classification3.setCustom1("custom2");
classification3.setCustom2("custom1");
classification3.setCategory("MANUAL");
classificationService.createClassification(classification3);
Classification classification4 = this.createNewClassificationWithUniqueKey("", "TASK");
classification4.setDescription("description2");
classification4.setCustom8("custom2");
classification4.setCategory("EXTERNAL");
classificationService.createClassification(classification4);
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.descriptionLike("DESC1")
.customAttributeIn("1", "custom1")
.list();
Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery().customAttributeIn("1", "custom2").list();
Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery()
.descriptionLike("DESC1")
.categoryIn("EXTERNAL")
.list();
Assert.assertEquals(2, list.size());
connection.commit();
}
@Test
public void testFindWithClassificationMapperPriorityTypeAndParent()
throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException,
DomainNotFoundException, InvalidArgumentException {
Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection);
Classification classification = this.createNewClassificationWithUniqueKey("", "TASK");
classification.setPriority(Integer.decode("5"));
classificationService.createClassification(classification);
Classification classification1 = this.createNewClassificationWithUniqueKey("", "TASK");
classification1.setPriority(Integer.decode("3"));
classification1.setParentId(classification.getId());
classificationService.createClassification(classification1);
Classification classification2 = this.createNewClassificationWithUniqueKey("", "DOCUMENT");
classification2.setPriority(Integer.decode("5"));
classification2.setParentId(classification.getId());
classificationService.createClassification(classification2);
Classification classification3 = this.createNewClassificationWithUniqueKey("", "TASK");
classification3.setPriority(Integer.decode("5"));
classification3.setParentId(classification1.getId());
classificationService.createClassification(classification3);
List<ClassificationSummary> list = classificationService.createClassificationQuery()
.parentIdIn(classification.getId())
.list();
Assert.assertEquals(2, list.size());
list = classificationService.createClassificationQuery().typeIn("TASK").priorityIn(Integer.decode("5")).list();
Assert.assertEquals(2, list.size());
list = classificationService.createClassificationQuery()
.priorityIn(Integer.decode("5"))
.typeIn("TASK")
.parentIdIn(classification1.getId())
.list();
Assert.assertEquals(1, list.size());
connection.commit();
}
@Test
public void testFindWithClassificationMapperServiceLevelNameAndDescription()
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
DomainNotFoundException, InvalidArgumentException {
Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection);
int all = 0;
Classification classification = this.createNewClassificationWithUniqueKey("", "TASK");
classification.setServiceLevel("P1D");
classification.setName("name1");
classification.setDescription("desc");
classificationService.createClassification(classification);
all++;
Classification classification1 = this.createNewClassificationWithUniqueKey("", "TASK");
classification1.setServiceLevel("P2D");
classification1.setName("name1");
classification1.setDescription("desc");
classificationService.createClassification(classification1);
all++;
Classification classification2 = this.createNewClassificationWithUniqueKey("", "TASK");
classification2.setServiceLevel("P1D");
classification2.setName("name");
classification2.setDescription("desc");
classificationService.createClassification(classification2);
all++;
Classification classification3 = this.createNewClassificationWithUniqueKey("", "TASK");
classification3.setName("name1");
classification3.setDescription("description");
classificationService.createClassification(classification3);
all++;
List<ClassificationSummary> list = classificationService.createClassificationQuery().nameIn("name").list();
Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery().serviceLevelIn("P1D").descriptionLike("desc").list();
Assert.assertEquals(2, list.size());
list = classificationService.createClassificationQuery().serviceLevelIn("P2D").nameIn("name").list();
Assert.assertEquals(0, list.size());
list = classificationService.createClassificationQuery().descriptionLike("desc%").list();
Assert.assertEquals(all, list.size());
connection.commit();
}
@Test
public void testDefaultSettingsWithClassificationQuery() throws NotAuthorizedException, SQLException,
ClassificationAlreadyExistException, ClassificationNotFoundException, InvalidArgumentException,