TSK-398: domain is checked for existance during classification creation.

This commit is contained in:
Holger Hagen 2018-03-21 21:41:27 +01:00 committed by Mustapha Zorgati
parent 9803de0502
commit fd0bc96b9d
11 changed files with 134 additions and 95 deletions

View File

@ -4,6 +4,7 @@ import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationInUseException; import pro.taskana.exceptions.ClassificationInUseException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException; import pro.taskana.exceptions.ConcurrencyException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.NotAuthorizedException; import pro.taskana.exceptions.NotAuthorizedException;
/** /**
@ -67,9 +68,12 @@ public interface ClassificationService {
* if the current user is not member of role BUSINESS_ADMIN or ADMIN * if the current user is not member of role BUSINESS_ADMIN or ADMIN
* @throws ClassificationNotFoundException * @throws ClassificationNotFoundException
* if the current parentId is not NULL/EMPTY and can not be found. * if the current parentId is not NULL/EMPTY and can not be found.
* @throws DomainNotFoundException
* if the domain does not exist in the configuration
*/ */
Classification createClassification(Classification classification) Classification createClassification(Classification classification)
throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException; throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException,
DomainNotFoundException;
/** /**
* Updates a Classification. * Updates a Classification.

View File

@ -20,6 +20,7 @@ import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationInUseException; import pro.taskana.exceptions.ClassificationInUseException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException; import pro.taskana.exceptions.ConcurrencyException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.NotAuthorizedException; import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.exceptions.NotAuthorizedToQueryWorkbasketException; import pro.taskana.exceptions.NotAuthorizedToQueryWorkbasketException;
import pro.taskana.exceptions.SystemException; import pro.taskana.exceptions.SystemException;
@ -50,9 +51,14 @@ public class ClassificationServiceImpl implements ClassificationService {
@Override @Override
public Classification createClassification(Classification classification) public Classification createClassification(Classification classification)
throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException { throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException,
DomainNotFoundException {
LOGGER.debug("entry to createClassification(classification = {})", classification); LOGGER.debug("entry to createClassification(classification = {})", classification);
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN); taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
if (!taskanaEngine.domainExists(classification.getDomain()) && !"".equals(classification.getDomain())) {
throw new DomainNotFoundException(classification.getDomain(),
"Domain " + classification.getDomain() + " does not exist in the configuration.");
}
ClassificationImpl classificationImpl; ClassificationImpl classificationImpl;
final boolean isClassificationExisting; final boolean isClassificationExisting;
try { try {
@ -227,10 +233,6 @@ public class ClassificationServiceImpl implements ClassificationService {
classification.setParentId(""); classification.setParentId("");
} }
if (classification.getDomain() == null) {
classification.setDomain("");
}
if (classification.getDomain().isEmpty()) { if (classification.getDomain().isEmpty()) {
classification.setIsValidInDomain(false); classification.setIsValidInDomain(false);
} }

View File

@ -12,6 +12,7 @@ import pro.taskana.Classification;
import pro.taskana.ClassificationService; import pro.taskana.ClassificationService;
import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.NotAuthorizedException; import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.security.JAASRunner; import pro.taskana.security.JAASRunner;
import pro.taskana.security.WithAccessId; import pro.taskana.security.WithAccessId;
@ -34,7 +35,8 @@ public class CreateClassificationAccTest extends AbstractAccTest {
groupNames = {"group_1", "businessadmin"}) groupNames = {"group_1", "businessadmin"})
@Test @Test
public void testCreateRootClassification() public void testCreateRootClassification()
throws ClassificationAlreadyExistException, ClassificationNotFoundException, NotAuthorizedException { throws ClassificationAlreadyExistException, ClassificationNotFoundException, NotAuthorizedException,
DomainNotFoundException {
long amountOfClassificationsBefore = classificationService.createClassificationQuery().count(); long amountOfClassificationsBefore = classificationService.createClassificationQuery().count();
Classification classification = classificationService.newClassification("Key0", "", "TASK"); Classification classification = classificationService.newClassification("Key0", "", "TASK");
classification.setIsValidInDomain(true); classification.setIsValidInDomain(true);
@ -57,18 +59,20 @@ public class CreateClassificationAccTest extends AbstractAccTest {
groupNames = {"group_1", "businessadmin"}) groupNames = {"group_1", "businessadmin"})
@Test @Test
public void testCreateClassificationWithRootCopy() public void testCreateClassificationWithRootCopy()
throws ClassificationAlreadyExistException, ClassificationNotFoundException, NotAuthorizedException { throws ClassificationAlreadyExistException, ClassificationNotFoundException, NotAuthorizedException,
DomainNotFoundException {
long amountOfClassificationsBefore = classificationService.createClassificationQuery().count(); long amountOfClassificationsBefore = classificationService.createClassificationQuery().count();
Classification classification = classificationService.newClassification("Key1", "Dummy-Domain", "TASK"); Classification classification = classificationService.newClassification("Key1", "DOMAIN_A", "TASK");
classification.setIsValidInDomain(true); classification.setIsValidInDomain(true);
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
// Check returning one is the "original" // Check returning one is the "original"
assertNotNull(classification.getId()); Classification createdClassification = classificationService.getClassification(classification.getId());
assertNotNull(classification.getCreated()); assertNotNull(createdClassification.getId());
assertNotNull(classification.getModified()); assertNotNull(createdClassification.getCreated());
assertThat(classification.getIsValidInDomain(), equalTo(true)); assertNotNull(createdClassification.getModified());
assertThat(classification.getDomain(), equalTo("Dummy-Domain")); assertThat(createdClassification.getIsValidInDomain(), equalTo(true));
assertThat(createdClassification.getDomain(), equalTo("DOMAIN_A"));
// Check 2 new created // Check 2 new created
long amountOfClassificationsAfter = classificationService.createClassificationQuery().count(); long amountOfClassificationsAfter = classificationService.createClassificationQuery().count();
@ -96,12 +100,13 @@ public class CreateClassificationAccTest extends AbstractAccTest {
groupNames = {"group_1", "businessadmin"}) groupNames = {"group_1", "businessadmin"})
@Test @Test
public void testCreateClassificationWithInvalidValues() public void testCreateClassificationWithInvalidValues()
throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException { throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException,
DomainNotFoundException {
long amountOfClassificationsBefore = classificationService.createClassificationQuery().count(); long amountOfClassificationsBefore = classificationService.createClassificationQuery().count();
// Check key NULL // Check key NULL
try { try {
Classification classification = classificationService.newClassification(null, "Dummy-Domain", "TASK"); Classification classification = classificationService.newClassification(null, "DOMAIN_A", "TASK");
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
} catch (IllegalStateException e) { } catch (IllegalStateException e) {
// nothing to do // nothing to do
@ -109,23 +114,12 @@ public class CreateClassificationAccTest extends AbstractAccTest {
// Check invalid ServiceLevel // Check invalid ServiceLevel
try { try {
Classification classification = classificationService.newClassification("Key2", "Domain", "TASK"); Classification classification = classificationService.newClassification("Key2", "DOMAIN_B", "TASK");
classification.setServiceLevel("abc"); classification.setServiceLevel("abc");
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
// nothing to do // nothing to do
} }
// Check domain NULL will be replaced ""
Classification classification = classificationService.newClassification("Key2", null, "TASK");
classification = classificationService.createClassification(classification);
long amountOfClassificationsAfter = classificationService.createClassificationQuery().count();
assertThat(amountOfClassificationsAfter, equalTo(amountOfClassificationsBefore + 1));
assertThat(classification.getDomain(), equalTo(""));
assertThat(classification.getParentId(), equalTo(""));
assertThat(classification.getIsValidInDomain(), equalTo(false));
assertNotNull(classification.getCreated());
assertNotNull(classification.getModified());
} }
@WithAccessId( @WithAccessId(
@ -133,18 +127,31 @@ public class CreateClassificationAccTest extends AbstractAccTest {
groupNames = {"group_1", "businessadmin"}) groupNames = {"group_1", "businessadmin"})
@Test(expected = ClassificationAlreadyExistException.class) @Test(expected = ClassificationAlreadyExistException.class)
public void testCreateClassificationAlreadyExisting() public void testCreateClassificationAlreadyExisting()
throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException { throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException,
DomainNotFoundException {
Classification classification = classificationService.newClassification("Key3", "", "TASK"); Classification classification = classificationService.newClassification("Key3", "", "TASK");
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
} }
@WithAccessId(
userName = "teamlead_1",
groupNames = {"group_1", "businessadmin"})
@Test(expected = DomainNotFoundException.class)
public void testCreateClassificationInUnknownDomain()
throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException,
DomainNotFoundException {
Classification classification = classificationService.newClassification("Key3", "UNKNOWN_DOMAIN", "TASK");
classification = classificationService.createClassification(classification);
}
@WithAccessId( @WithAccessId(
userName = "teamlead_1", userName = "teamlead_1",
groupNames = {"group_1", "businessadmin"}) groupNames = {"group_1", "businessadmin"})
@Test(expected = ClassificationNotFoundException.class) @Test(expected = ClassificationNotFoundException.class)
public void testCreateClassificationWithInvalidParent() public void testCreateClassificationWithInvalidParent()
throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException { throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException,
DomainNotFoundException {
Classification classification = classificationService.newClassification("Key4", "", "TASK"); Classification classification = classificationService.newClassification("Key4", "", "TASK");
classification.setParentId("ID WHICH CANT BE FOUND"); classification.setParentId("ID WHICH CANT BE FOUND");
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);

View File

@ -26,6 +26,7 @@ import pro.taskana.Classification;
import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException; import pro.taskana.exceptions.ConcurrencyException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.NotAuthorizedException; import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.mappings.ClassificationMapper; import pro.taskana.mappings.ClassificationMapper;
@ -60,10 +61,12 @@ public class ClassificationServiceImplTest {
@Test(expected = ClassificationAlreadyExistException.class) @Test(expected = ClassificationAlreadyExistException.class)
public void testCreateClassificationAlreadyExisting() public void testCreateClassificationAlreadyExisting()
throws ClassificationAlreadyExistException, ClassificationNotFoundException, NotAuthorizedException { throws ClassificationAlreadyExistException, ClassificationNotFoundException, NotAuthorizedException,
DomainNotFoundException {
Classification classification = createDummyClassification(); Classification classification = createDummyClassification();
doReturn(classification).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), doReturn(classification).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain()); classification.getDomain());
doReturn(true).when(taskanaEngineImplMock).domainExists(any());
try { try {
cutSpy.createClassification(classification); cutSpy.createClassification(classification);
@ -73,6 +76,7 @@ public class ClassificationServiceImplTest {
classification.getDomain()); classification.getDomain());
verify(taskanaEngineImplMock, times(1)).returnConnection(); verify(taskanaEngineImplMock, times(1)).returnConnection();
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any()); verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(1)).domainExists(any());
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock); verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
throw e; throw e;
} }
@ -80,12 +84,14 @@ public class ClassificationServiceImplTest {
@Test(expected = ClassificationNotFoundException.class) @Test(expected = ClassificationNotFoundException.class)
public void testCreateClassificationParentNotExisting() public void testCreateClassificationParentNotExisting()
throws ClassificationAlreadyExistException, ClassificationNotFoundException, NotAuthorizedException { throws ClassificationAlreadyExistException, ClassificationNotFoundException, NotAuthorizedException,
DomainNotFoundException {
Classification classification = createDummyClassification(); Classification classification = createDummyClassification();
classification.setParentId("NOT EXISTING ID"); classification.setParentId("NOT EXISTING ID");
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain()); classification.getDomain());
doReturn(null).when(classificationMapperMock).findById(classification.getParentId()); doReturn(null).when(classificationMapperMock).findById(classification.getParentId());
doReturn(true).when(taskanaEngineImplMock).domainExists(any());
try { try {
cutSpy.createClassification(classification); cutSpy.createClassification(classification);
@ -97,6 +103,7 @@ public class ClassificationServiceImplTest {
verify(cutSpy, times(1)).getClassification(classification.getParentId()); verify(cutSpy, times(1)).getClassification(classification.getParentId());
verify(classificationMapperMock, times(1)).findById(classification.getParentId()); verify(classificationMapperMock, times(1)).findById(classification.getParentId());
verify(taskanaEngineImplMock, times(2)).returnConnection(); verify(taskanaEngineImplMock, times(2)).returnConnection();
verify(taskanaEngineImplMock, times(1)).domainExists(any());
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock); verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
throw e; throw e;
} }
@ -105,7 +112,7 @@ public class ClassificationServiceImplTest {
@Test @Test
public void testCreateClassificationInOwnDomainButExistingInRoot() public void testCreateClassificationInOwnDomainButExistingInRoot()
throws ClassificationAlreadyExistException, ClassificationNotFoundException, InterruptedException, throws ClassificationAlreadyExistException, ClassificationNotFoundException, InterruptedException,
NotAuthorizedException { NotAuthorizedException, DomainNotFoundException {
Instant beforeTimestamp = Instant.now(); Instant beforeTimestamp = Instant.now();
Thread.sleep(10L); Thread.sleep(10L);
Classification classification = createDummyClassification(); Classification classification = createDummyClassification();
@ -114,6 +121,7 @@ public class ClassificationServiceImplTest {
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain()); classification.getDomain());
doReturn(classification).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), ""); doReturn(classification).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), "");
doReturn(true).when(taskanaEngineImplMock).domainExists(any());
classification = cutSpy.createClassification(classification); classification = cutSpy.createClassification(classification);
@ -124,6 +132,7 @@ public class ClassificationServiceImplTest {
verify(classificationMapperMock, times(1)).insert(any()); verify(classificationMapperMock, times(1)).insert(any());
verify(taskanaEngineImplMock, times(2)).returnConnection(); verify(taskanaEngineImplMock, times(2)).returnConnection();
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any()); verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(1)).domainExists(any());
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock); verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
Thread.sleep(15); Thread.sleep(15);
assertThat(classification.getCreated().toString().substring(0, 10), equalTo(todaysDate)); assertThat(classification.getCreated().toString().substring(0, 10), equalTo(todaysDate));
@ -135,13 +144,15 @@ public class ClassificationServiceImplTest {
@Test @Test
public void testCreateClassificationInOwnDomainAndCopyInRootDomain() public void testCreateClassificationInOwnDomainAndCopyInRootDomain()
throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException { throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException,
DomainNotFoundException {
Classification classification = createDummyClassification(); Classification classification = createDummyClassification();
String domain = classification.getDomain(); String domain = classification.getDomain();
String key = classification.getKey(); String key = classification.getKey();
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
classification.getDomain()); classification.getDomain());
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), ""); doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), "");
doReturn(true).when(taskanaEngineImplMock).domainExists(any());
classification = cutSpy.createClassification(classification); classification = cutSpy.createClassification(classification);
@ -151,6 +162,7 @@ public class ClassificationServiceImplTest {
verify(classificationMapperMock, times(2)).insert(any()); verify(classificationMapperMock, times(2)).insert(any());
verify(taskanaEngineImplMock, times(2)).returnConnection(); verify(taskanaEngineImplMock, times(2)).returnConnection();
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any()); verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(1)).domainExists(any());
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock); verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
assertThat(classification.getCreated().toString().substring(0, 10), equalTo(todaysDate)); assertThat(classification.getCreated().toString().substring(0, 10), equalTo(todaysDate));
assertThat(classification.getDomain(), equalTo(domain)); assertThat(classification.getDomain(), equalTo(domain));
@ -159,7 +171,8 @@ public class ClassificationServiceImplTest {
@Test @Test
public void testCreateClassificationIntoRootDomain() public void testCreateClassificationIntoRootDomain()
throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException { throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException,
DomainNotFoundException {
ClassificationImpl classification = (ClassificationImpl) createDummyClassification(); ClassificationImpl classification = (ClassificationImpl) createDummyClassification();
classification.setDomain(""); classification.setDomain("");
doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(), doReturn(null).when(classificationMapperMock).findByKeyAndDomain(classification.getKey(),
@ -173,6 +186,7 @@ public class ClassificationServiceImplTest {
verify(classificationMapperMock, times(1)).insert(classification); verify(classificationMapperMock, times(1)).insert(classification);
verify(taskanaEngineImplMock, times(1)).returnConnection(); verify(taskanaEngineImplMock, times(1)).returnConnection();
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any()); verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineImplMock, times(1)).domainExists(any());
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock); verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
assertThat(classification.getCreated().toString().substring(0, 10), equalTo(todaysDate)); assertThat(classification.getCreated().toString().substring(0, 10), equalTo(todaysDate));
} }
@ -286,7 +300,7 @@ public class ClassificationServiceImplTest {
classificationImpl.setDescription("A DUMMY FOR TESTING A SERVICE"); classificationImpl.setDescription("A DUMMY FOR TESTING A SERVICE");
classificationImpl.setName("SERVICE-DUMMY"); classificationImpl.setName("SERVICE-DUMMY");
classificationImpl.setCategory("dummy-category"); classificationImpl.setCategory("dummy-category");
classificationImpl.setDomain("test-domain"); classificationImpl.setDomain("DOMAIN_A");
classificationImpl.setServiceLevel("P2D"); classificationImpl.setServiceLevel("P2D");
classificationImpl.setId("ID: 1"); classificationImpl.setId("ID: 1");
classificationImpl.setKey("ABC111"); classificationImpl.setKey("ABC111");

View File

@ -33,6 +33,7 @@ import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException; import pro.taskana.exceptions.ConcurrencyException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException; import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException; import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.impl.ClassificationImpl; import pro.taskana.impl.ClassificationImpl;
@ -76,7 +77,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
@Test @Test
public void testInsertClassifications() throws Exception { public void testInsertClassifications() throws Exception {
final String domain = "test-domain"; final String domain = "DOMAIN_A";
final String key = "dummy-key"; final String key = "dummy-key";
ClassificationImpl expectedClassification; ClassificationImpl expectedClassification;
Classification actualClassification; Classification actualClassification;
@ -125,16 +126,16 @@ public class ClassificationServiceImplIntAutoCommitTest {
} }
// new classification but root existing // new classification but root existing
expectedClassification = (ClassificationImpl) this.createDummyClassificationWithUniqueKey(domain + "_2", expectedClassification = (ClassificationImpl) this.createDummyClassificationWithUniqueKey("DOMAIN_B",
"type1"); "type1");
expectedClassification.setKey(key); expectedClassification.setKey(key);
classificationService.createClassification(expectedClassification); classificationService.createClassification(expectedClassification);
actualClassification = classificationService.getClassification(key, domain + "_2"); actualClassification = classificationService.getClassification(key, "DOMAIN_B");
assertThat(actualClassification, not(equalTo(null))); assertThat(actualClassification, not(equalTo(null)));
assertThat(actualClassification.getCreated(), not(equalTo(null))); assertThat(actualClassification.getCreated(), not(equalTo(null)));
assertThat(actualClassification.getId(), not(equalTo(null))); assertThat(actualClassification.getId(), not(equalTo(null)));
assertThat(actualClassification.getKey(), equalTo(key)); assertThat(actualClassification.getKey(), equalTo(key));
assertThat(actualClassification.getDomain(), equalTo(domain + "_2")); assertThat(actualClassification.getDomain(), equalTo("DOMAIN_B"));
assertThat(actualClassification.getId(), startsWith(ID_PREFIX_CLASSIFICATION)); assertThat(actualClassification.getId(), startsWith(ID_PREFIX_CLASSIFICATION));
// verify that // verify that
Classification rootResults = classificationService.getClassification(key, ""); Classification rootResults = classificationService.getClassification(key, "");
@ -154,7 +155,8 @@ public class ClassificationServiceImplIntAutoCommitTest {
@Test @Test
public void testFindAllClassifications() public void testFindAllClassifications()
throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException { throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException,
DomainNotFoundException {
Classification classification0 = this.createDummyClassificationWithUniqueKey("", "type1"); Classification classification0 = this.createDummyClassificationWithUniqueKey("", "type1");
classificationService.createClassification(classification0); classificationService.createClassification(classification0);
Classification classification1 = this.createDummyClassificationWithUniqueKey("", "type1"); Classification classification1 = this.createDummyClassificationWithUniqueKey("", "type1");
@ -169,9 +171,9 @@ public class ClassificationServiceImplIntAutoCommitTest {
@Test @Test
public void testModifiedClassification() public void testModifiedClassification()
throws ClassificationAlreadyExistException, ClassificationNotFoundException, NotAuthorizedException, throws ClassificationAlreadyExistException, ClassificationNotFoundException, NotAuthorizedException,
ConcurrencyException { ConcurrencyException, DomainNotFoundException {
String description = "TEST SOMETHING"; String description = "TEST SOMETHING";
Classification classification = this.createDummyClassificationWithUniqueKey("domain1", "type1"); Classification classification = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "type1");
classification.setDescription(""); classification.setDescription("");
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
classification.setDescription("TEST SOMETHING"); classification.setDescription("TEST SOMETHING");
@ -184,8 +186,8 @@ public class ClassificationServiceImplIntAutoCommitTest {
@Test @Test
public void testInsertAndClassificationMapper() public void testInsertAndClassificationMapper()
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException, throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
InvalidArgumentException { InvalidArgumentException, DomainNotFoundException {
Classification classification = this.createDummyClassificationWithUniqueKey("UNIQUE-DOMAIN", "type1"); Classification classification = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "type1");
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
List<ClassificationSummary> list = classificationService.createClassificationQuery() List<ClassificationSummary> list = classificationService.createClassificationQuery()
@ -199,8 +201,8 @@ public class ClassificationServiceImplIntAutoCommitTest {
@Test @Test
public void testUpdateAndClassificationMapper() public void testUpdateAndClassificationMapper()
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException, throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
ConcurrencyException { ConcurrencyException, DomainNotFoundException {
Classification classification = this.createDummyClassificationWithUniqueKey("UNIQUE-DOMAIN", "type1"); Classification classification = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "type1");
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
classification.setDescription("description"); classification.setDescription("description");
classification = classificationService.updateClassification(classification); classification = classificationService.updateClassification(classification);
@ -221,29 +223,31 @@ public class ClassificationServiceImplIntAutoCommitTest {
@Test @Test
public void testFindWithClassificationMapperDomainAndCategory() public void testFindWithClassificationMapperDomainAndCategory()
throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException { throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException,
Classification classification1 = this.createDummyClassificationWithUniqueKey("domain1", "type1"); DomainNotFoundException {
Classification classification1 = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "type1");
classification1.setCategory("category1"); classification1.setCategory("category1");
classificationService.createClassification(classification1); classificationService.createClassification(classification1);
Classification classification2 = this.createDummyClassificationWithUniqueKey("domain2", "type1"); Classification classification2 = this.createDummyClassificationWithUniqueKey("DOMAIN_B", "type1");
classification2.setCategory("category1"); classification2.setCategory("category1");
classificationService.createClassification(classification2); classificationService.createClassification(classification2);
Classification classification3 = this.createDummyClassificationWithUniqueKey("domain1", "type1"); Classification classification3 = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "type1");
classification3.setCategory("category2"); classification3.setCategory("category2");
classificationService.createClassification(classification3); classificationService.createClassification(classification3);
List<ClassificationSummary> list = classificationService.createClassificationQuery() List<ClassificationSummary> list = classificationService.createClassificationQuery()
.categoryIn("category1") .categoryIn("category1")
.domainIn("domain1") .domainIn("DOMAIN_A")
.list(); .list();
Assert.assertEquals(1, list.size()); Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery().domainIn("domain1", "domain3").list(); list = classificationService.createClassificationQuery().domainIn("DOMAIN_A", "DOMAIN_C").list();
Assert.assertEquals(2, list.size()); Assert.assertEquals(2, list.size());
} }
@Test @Test
public void testFindWithClassificationMapperCustomAndCategory() public void testFindWithClassificationMapperCustomAndCategory()
throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException { throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException,
DomainNotFoundException {
Classification classification1 = this.createDummyClassificationWithUniqueKey("", "type1"); Classification classification1 = this.createDummyClassificationWithUniqueKey("", "type1");
classification1.setDescription("DESC1"); classification1.setDescription("DESC1");
classification1.setCategory("category1"); classification1.setCategory("category1");
@ -281,7 +285,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
@Test @Test
public void testFindWithClassificationMapperPriorityTypeAndParent() public void testFindWithClassificationMapperPriorityTypeAndParent()
throws ClassificationAlreadyExistException, NumberFormatException, NotAuthorizedException, throws ClassificationAlreadyExistException, NumberFormatException, NotAuthorizedException,
ClassificationNotFoundException { ClassificationNotFoundException, DomainNotFoundException {
Classification classification = this.createDummyClassificationWithUniqueKey("", "type1"); Classification classification = this.createDummyClassificationWithUniqueKey("", "type1");
classification.setPriority(Integer.decode("5")); classification.setPriority(Integer.decode("5"));
classificationService.createClassification(classification); classificationService.createClassification(classification);
@ -315,7 +319,8 @@ public class ClassificationServiceImplIntAutoCommitTest {
@Test @Test
public void testFindWithClassificationMapperServiceLevelNameAndDescription() public void testFindWithClassificationMapperServiceLevelNameAndDescription()
throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException { throws ClassificationAlreadyExistException, NotAuthorizedException, ClassificationNotFoundException,
DomainNotFoundException {
int all = 0; int all = 0;
Classification classification = this.createDummyClassificationWithUniqueKey("", "type1"); Classification classification = this.createDummyClassificationWithUniqueKey("", "type1");
classification.setServiceLevel("P1D"); classification.setServiceLevel("P1D");
@ -354,11 +359,11 @@ public class ClassificationServiceImplIntAutoCommitTest {
@Test @Test
public void testDefaultSettingsWithClassificationMapper() public void testDefaultSettingsWithClassificationMapper()
throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException, throws NotAuthorizedException, ClassificationAlreadyExistException, ClassificationNotFoundException,
ConcurrencyException { ConcurrencyException, DomainNotFoundException {
Classification classification = this.createDummyClassificationWithUniqueKey("UNIQUE-DOMAIN", "type1"); Classification classification = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "type1");
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
Classification classification1 = this.createDummyClassificationWithUniqueKey("UNIQUE-DOMAIN", "type1"); Classification classification1 = this.createDummyClassificationWithUniqueKey("DOMAIN_A", "type1");
classification1 = classificationService.createClassification(classification1); classification1 = classificationService.createClassification(classification1);
classification1.setParentId(classification.getId()); classification1.setParentId(classification.getId());
@ -382,7 +387,7 @@ public class ClassificationServiceImplIntAutoCommitTest {
list = classificationService.createClassificationQuery().createdWithin(today()).list(); list = classificationService.createClassificationQuery().createdWithin(today()).list();
Assert.assertEquals(4, list.size()); Assert.assertEquals(4, list.size());
list = classificationService.createClassificationQuery().domainIn("domain1").validInDomainEquals(false).list(); list = classificationService.createClassificationQuery().domainIn("DOMAIN_C").validInDomainEquals(false).list();
Assert.assertEquals(0, list.size()); Assert.assertEquals(0, list.size());
list = classificationService.createClassificationQuery() list = classificationService.createClassificationQuery()

View File

@ -33,6 +33,7 @@ import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException; import pro.taskana.exceptions.ConcurrencyException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException; import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException; import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.impl.ClassificationImpl; import pro.taskana.impl.ClassificationImpl;
@ -78,11 +79,11 @@ public class ClassificationServiceImplIntExplicitTest {
@Test @Test
public void testInsertClassification() public void testInsertClassification()
throws SQLException, ClassificationNotFoundException, ClassificationAlreadyExistException, throws SQLException, ClassificationNotFoundException, ClassificationAlreadyExistException,
NotAuthorizedException { NotAuthorizedException, DomainNotFoundException {
Connection connection = dataSource.getConnection(); Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection); taskanaEngineImpl.setConnection(connection);
final String domain = "test-domain"; final String domain = "DOMAIN_A";
final String key = "dummy-key"; final String key = "dummy-key";
ClassificationImpl expectedClassification; ClassificationImpl expectedClassification;
Classification actualClassification; Classification actualClassification;
@ -136,15 +137,15 @@ public class ClassificationServiceImplIntExplicitTest {
// new classification but root existing // new classification but root existing
expectedClassification = (ClassificationImpl) this.createNewClassificationWithUniqueKey("", "t1"); expectedClassification = (ClassificationImpl) this.createNewClassificationWithUniqueKey("", "t1");
expectedClassification.setKey(key); expectedClassification.setKey(key);
expectedClassification.setDomain(domain + "_2"); expectedClassification.setDomain("DOMAIN_B");
classificationService.createClassification(expectedClassification); classificationService.createClassification(expectedClassification);
connection.commit(); connection.commit();
actualClassification = classificationService.getClassification(key, domain + "_2"); actualClassification = classificationService.getClassification(key, "DOMAIN_B");
assertThat(actualClassification, not(equalTo(null))); assertThat(actualClassification, not(equalTo(null)));
assertThat(actualClassification.getCreated(), not(equalTo(null))); assertThat(actualClassification.getCreated(), not(equalTo(null)));
assertThat(actualClassification.getId(), not(equalTo(null))); assertThat(actualClassification.getId(), not(equalTo(null)));
assertThat(actualClassification.getKey(), equalTo(key)); assertThat(actualClassification.getKey(), equalTo(key));
assertThat(actualClassification.getDomain(), equalTo(domain + "_2")); assertThat(actualClassification.getDomain(), equalTo("DOMAIN_B"));
assertThat(actualClassification.getId(), startsWith(ID_PREFIX_CLASSIFICATION)); assertThat(actualClassification.getId(), startsWith(ID_PREFIX_CLASSIFICATION));
Classification rootResult = classificationService.getClassification(key, ""); Classification rootResult = classificationService.getClassification(key, "");
assertThat(rootResult, not(equalTo(null))); assertThat(rootResult, not(equalTo(null)));
@ -165,7 +166,7 @@ public class ClassificationServiceImplIntExplicitTest {
@Test @Test
public void testFindAllClassifications() public void testFindAllClassifications()
throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException, throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException,
ClassificationNotFoundException { ClassificationNotFoundException, DomainNotFoundException {
Connection connection = dataSource.getConnection(); Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection); taskanaEngineImpl.setConnection(connection);
Classification classification0 = this.createNewClassificationWithUniqueKey("", "t1"); Classification classification0 = this.createNewClassificationWithUniqueKey("", "t1");
@ -183,11 +184,11 @@ public class ClassificationServiceImplIntExplicitTest {
@Test @Test
public void testModifiedClassification() public void testModifiedClassification()
throws SQLException, ClassificationAlreadyExistException, ClassificationNotFoundException, throws SQLException, ClassificationAlreadyExistException, ClassificationNotFoundException,
NotAuthorizedException, ConcurrencyException { NotAuthorizedException, ConcurrencyException, DomainNotFoundException {
Connection connection = dataSource.getConnection(); Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection); taskanaEngineImpl.setConnection(connection);
Classification classification = this.createNewClassificationWithUniqueKey("novatec", "t1"); Classification classification = this.createNewClassificationWithUniqueKey("DOMAIN_A", "t1");
connection.commit(); connection.commit();
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
@ -203,10 +204,10 @@ public class ClassificationServiceImplIntExplicitTest {
@Test @Test
public void testInsertAndClassificationQuery() public void testInsertAndClassificationQuery()
throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException, throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException,
ClassificationNotFoundException { ClassificationNotFoundException, DomainNotFoundException {
Connection connection = dataSource.getConnection(); Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection); taskanaEngineImpl.setConnection(connection);
Classification classification = this.createNewClassificationWithUniqueKey("UNIQUE-DOMAIN", "t1"); Classification classification = this.createNewClassificationWithUniqueKey("DOMAIN_A", "t1");
classificationService.createClassification(classification); classificationService.createClassification(classification);
List<ClassificationSummary> list = classificationService.createClassificationQuery() List<ClassificationSummary> list = classificationService.createClassificationQuery()
.validInDomainEquals(Boolean.TRUE) .validInDomainEquals(Boolean.TRUE)
@ -217,10 +218,11 @@ public class ClassificationServiceImplIntExplicitTest {
@Test @Test
public void testUpdateAndClassificationQuery() throws NotAuthorizedException, SQLException, public void testUpdateAndClassificationQuery() throws NotAuthorizedException, SQLException,
ClassificationAlreadyExistException, ClassificationNotFoundException, ConcurrencyException { ClassificationAlreadyExistException, ClassificationNotFoundException, ConcurrencyException,
DomainNotFoundException {
Connection connection = dataSource.getConnection(); Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection); taskanaEngineImpl.setConnection(connection);
Classification classification = this.createNewClassificationWithUniqueKey("UNIQUE-DOMAIN", "t1"); Classification classification = this.createNewClassificationWithUniqueKey("DOMAIN_A", "t1");
classification.setDescription(""); classification.setDescription("");
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
classification.setDescription("description"); classification.setDescription("description");
@ -247,26 +249,26 @@ public class ClassificationServiceImplIntExplicitTest {
@Test @Test
public void testFindWithClassificationMapperDomainAndCategory() public void testFindWithClassificationMapperDomainAndCategory()
throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException, throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException,
ClassificationNotFoundException { ClassificationNotFoundException, DomainNotFoundException {
Connection connection = dataSource.getConnection(); Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection); taskanaEngineImpl.setConnection(connection);
Classification classification1 = this.createNewClassificationWithUniqueKey("domain1", "t1"); Classification classification1 = this.createNewClassificationWithUniqueKey("DOMAIN_A", "t1");
classification1.setCategory("category1"); classification1.setCategory("category1");
classificationService.createClassification(classification1); classificationService.createClassification(classification1);
Classification classification2 = this.createNewClassificationWithUniqueKey("domain2", "t1"); Classification classification2 = this.createNewClassificationWithUniqueKey("DOMAIN_B", "t1");
classification2.setCategory("category1"); classification2.setCategory("category1");
classificationService.createClassification(classification2); classificationService.createClassification(classification2);
Classification classification3 = this.createNewClassificationWithUniqueKey("domain1", "t1"); Classification classification3 = this.createNewClassificationWithUniqueKey("DOMAIN_A", "t1");
classification3.setCategory("category2"); classification3.setCategory("category2");
classificationService.createClassification(classification3); classificationService.createClassification(classification3);
List<ClassificationSummary> list = classificationService.createClassificationQuery() List<ClassificationSummary> list = classificationService.createClassificationQuery()
.categoryIn("category1") .categoryIn("category1")
.domainIn("domain1") .domainIn("DOMAIN_A")
.list(); .list();
Assert.assertEquals(1, list.size()); Assert.assertEquals(1, list.size());
list = classificationService.createClassificationQuery().domainIn("domain1", "domain3").list(); list = classificationService.createClassificationQuery().domainIn("DOMAIN_A", "domain3").list();
Assert.assertEquals(2, list.size()); Assert.assertEquals(2, list.size());
connection.commit(); connection.commit();
} }
@ -274,7 +276,7 @@ public class ClassificationServiceImplIntExplicitTest {
@Test @Test
public void testFindWithClassificationMapperCustomAndCategory() public void testFindWithClassificationMapperCustomAndCategory()
throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException, throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException,
ClassificationNotFoundException { ClassificationNotFoundException, DomainNotFoundException {
Connection connection = dataSource.getConnection(); Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection); taskanaEngineImpl.setConnection(connection);
Classification classification1 = this.createNewClassificationWithUniqueKey("", "t1"); Classification classification1 = this.createNewClassificationWithUniqueKey("", "t1");
@ -315,7 +317,7 @@ public class ClassificationServiceImplIntExplicitTest {
@Test @Test
public void testFindWithClassificationMapperPriorityTypeAndParent() public void testFindWithClassificationMapperPriorityTypeAndParent()
throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException, throws SQLException, ClassificationAlreadyExistException, NotAuthorizedException,
ClassificationNotFoundException { ClassificationNotFoundException, DomainNotFoundException {
Connection connection = dataSource.getConnection(); Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection); taskanaEngineImpl.setConnection(connection);
Classification classification = this.createNewClassificationWithUniqueKey("", "type1"); Classification classification = this.createNewClassificationWithUniqueKey("", "type1");
@ -352,7 +354,7 @@ public class ClassificationServiceImplIntExplicitTest {
@Test @Test
public void testFindWithClassificationMapperServiceLevelNameAndDescription() public void testFindWithClassificationMapperServiceLevelNameAndDescription()
throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException, throws NotAuthorizedException, SQLException, ClassificationAlreadyExistException,
ClassificationNotFoundException { ClassificationNotFoundException, DomainNotFoundException {
Connection connection = dataSource.getConnection(); Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection); taskanaEngineImpl.setConnection(connection);
int all = 0; int all = 0;
@ -394,13 +396,13 @@ public class ClassificationServiceImplIntExplicitTest {
@Test @Test
public void testDefaultSettingsWithClassificationQuery() throws NotAuthorizedException, SQLException, public void testDefaultSettingsWithClassificationQuery() throws NotAuthorizedException, SQLException,
ClassificationAlreadyExistException, ClassificationNotFoundException, InvalidArgumentException, ClassificationAlreadyExistException, ClassificationNotFoundException, InvalidArgumentException,
ConcurrencyException { ConcurrencyException, DomainNotFoundException {
Connection connection = dataSource.getConnection(); Connection connection = dataSource.getConnection();
taskanaEngineImpl.setConnection(connection); taskanaEngineImpl.setConnection(connection);
Classification classification = this.createNewClassificationWithUniqueKey("UNIQUE-DOMAIN", "type1"); Classification classification = this.createNewClassificationWithUniqueKey("DOMAIN_A", "type1");
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
Classification classification1 = this.createNewClassificationWithUniqueKey("UNIQUE-DOMAIN", "type1"); Classification classification1 = this.createNewClassificationWithUniqueKey("DOMAIN_A", "type1");
classification1 = classificationService.createClassification(classification1); classification1 = classificationService.createClassification(classification1);
classification1.setParentId(classification.getId()); classification1.setParentId(classification.getId());
classification1 = classificationService.updateClassification(classification1); classification1 = classificationService.updateClassification(classification1);
@ -418,7 +420,7 @@ public class ClassificationServiceImplIntExplicitTest {
Assert.assertEquals(2, list.size()); Assert.assertEquals(2, list.size());
list = classificationService.createClassificationQuery().createdWithin(today()).list(); list = classificationService.createClassificationQuery().createdWithin(today()).list();
Assert.assertEquals(4, list.size()); Assert.assertEquals(4, list.size());
list = classificationService.createClassificationQuery().domainIn("domain1").validInDomainEquals(false).list(); list = classificationService.createClassificationQuery().domainIn("DOMAIN_C").validInDomainEquals(false).list();
Assert.assertEquals(0, list.size()); Assert.assertEquals(0, list.size());
list = classificationService.createClassificationQuery() list = classificationService.createClassificationQuery()
.keyIn(classification1.getKey()) .keyIn(classification1.getKey())

View File

@ -301,7 +301,7 @@ public class TaskServiceImplIntAutocommitTest {
workbasketService = taskanaEngine.getWorkbasketService(); workbasketService = taskanaEngine.getWorkbasketService();
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification("KEY", ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification("KEY",
"test-domain", "t1"); "DOMAIN_A", "t1");
classification.setCategory("Test Classification"); classification.setCategory("Test Classification");
classification.setName("Transfert-Task Classification"); classification.setName("Transfert-Task Classification");
classificationService.createClassification(classification); classificationService.createClassification(classification);

View File

@ -25,6 +25,7 @@ import pro.taskana.ClassificationSummary;
import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException; import pro.taskana.exceptions.ConcurrencyException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.NotAuthorizedException; import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.rest.resource.ClassificationResource; import pro.taskana.rest.resource.ClassificationResource;
import pro.taskana.rest.resource.mapper.ClassificationMapper; import pro.taskana.rest.resource.mapper.ClassificationMapper;
@ -58,7 +59,7 @@ public class ClassificationController {
@Transactional(readOnly = true, rollbackFor = Exception.class) @Transactional(readOnly = true, rollbackFor = Exception.class)
public ResponseEntity<ClassificationResource> getClassification(@PathVariable String classificationId) public ResponseEntity<ClassificationResource> getClassification(@PathVariable String classificationId)
throws ClassificationNotFoundException, NotAuthorizedException, ClassificationAlreadyExistException, throws ClassificationNotFoundException, NotAuthorizedException, ClassificationAlreadyExistException,
ConcurrencyException { ConcurrencyException, DomainNotFoundException {
Classification classification = classificationService.getClassification(classificationId); Classification classification = classificationService.getClassification(classificationId);
return ResponseEntity.status(HttpStatus.OK).body(classificationMapper.toResource(classification)); return ResponseEntity.status(HttpStatus.OK).body(classificationMapper.toResource(classification));
} }
@ -67,7 +68,7 @@ public class ClassificationController {
@Transactional(readOnly = true, rollbackFor = Exception.class) @Transactional(readOnly = true, rollbackFor = Exception.class)
public ResponseEntity<ClassificationResource> getClassification(@PathVariable String classificationKey, public ResponseEntity<ClassificationResource> getClassification(@PathVariable String classificationKey,
@PathVariable String domain) throws ClassificationNotFoundException, NotAuthorizedException, @PathVariable String domain) throws ClassificationNotFoundException, NotAuthorizedException,
ClassificationAlreadyExistException, ConcurrencyException { ClassificationAlreadyExistException, ConcurrencyException, DomainNotFoundException {
Classification classification = classificationService.getClassification(classificationKey, domain); Classification classification = classificationService.getClassification(classificationKey, domain);
return ResponseEntity.status(HttpStatus.OK).body(classificationMapper.toResource(classification)); return ResponseEntity.status(HttpStatus.OK).body(classificationMapper.toResource(classification));
} }
@ -86,7 +87,7 @@ public class ClassificationController {
public ResponseEntity<ClassificationResource> createClassification( public ResponseEntity<ClassificationResource> createClassification(
@RequestBody ClassificationResource resource) @RequestBody ClassificationResource resource)
throws NotAuthorizedException, ClassificationNotFoundException, ClassificationAlreadyExistException, throws NotAuthorizedException, ClassificationNotFoundException, ClassificationAlreadyExistException,
ConcurrencyException { ConcurrencyException, DomainNotFoundException {
Classification classification = classificationMapper.toModel(resource); Classification classification = classificationMapper.toModel(resource);
classification = classificationService.createClassification(classification); classification = classificationService.createClassification(classification);
return ResponseEntity.status(HttpStatus.CREATED).body(classificationMapper.toResource(classification)); return ResponseEntity.status(HttpStatus.CREATED).body(classificationMapper.toResource(classification));
@ -96,7 +97,7 @@ public class ClassificationController {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ResponseEntity<ClassificationResource> updateClassification(@RequestBody ClassificationResource resource) public ResponseEntity<ClassificationResource> updateClassification(@RequestBody ClassificationResource resource)
throws NotAuthorizedException, ClassificationNotFoundException, ConcurrencyException, throws NotAuthorizedException, ClassificationNotFoundException, ConcurrencyException,
ClassificationAlreadyExistException { ClassificationAlreadyExistException, DomainNotFoundException {
Classification classification = classificationMapper.toModel(resource); Classification classification = classificationMapper.toModel(resource);
classification = classificationService.updateClassification(classification); classification = classificationService.updateClassification(classification);
return ResponseEntity.status(HttpStatus.OK).body(classificationMapper.toResource(classification)); return ResponseEntity.status(HttpStatus.OK).body(classificationMapper.toResource(classification));

View File

@ -24,6 +24,7 @@ import pro.taskana.ClassificationSummary;
import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException; import pro.taskana.exceptions.ConcurrencyException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.NotAuthorizedException; import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.rest.resource.ClassificationResource; import pro.taskana.rest.resource.ClassificationResource;
import pro.taskana.rest.resource.mapper.ClassificationMapper; import pro.taskana.rest.resource.mapper.ClassificationMapper;
@ -45,7 +46,7 @@ public class ClassificationDefinitionController {
@Transactional(readOnly = true, rollbackFor = Exception.class) @Transactional(readOnly = true, rollbackFor = Exception.class)
public ResponseEntity<List<ClassificationResource>> getClassifications( public ResponseEntity<List<ClassificationResource>> getClassifications(
@RequestParam(required = false) String domain) throws ClassificationNotFoundException, NotAuthorizedException, @RequestParam(required = false) String domain) throws ClassificationNotFoundException, NotAuthorizedException,
ClassificationAlreadyExistException, ConcurrencyException { ClassificationAlreadyExistException, ConcurrencyException, DomainNotFoundException {
ClassificationQuery query = classificationService.createClassificationQuery(); ClassificationQuery query = classificationService.createClassificationQuery();
List<ClassificationSummary> summaries = domain != null ? query.domainIn(domain).list() : query.list(); List<ClassificationSummary> summaries = domain != null ? query.domainIn(domain).list() : query.list();
List<ClassificationResource> export = new ArrayList<>(); List<ClassificationResource> export = new ArrayList<>();
@ -62,7 +63,8 @@ public class ClassificationDefinitionController {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ResponseEntity<String> importClassifications( public ResponseEntity<String> importClassifications(
@RequestBody List<ClassificationResource> classificationResources) throws NotAuthorizedException, @RequestBody List<ClassificationResource> classificationResources) throws NotAuthorizedException,
ClassificationNotFoundException, ConcurrencyException, ClassificationAlreadyExistException { ClassificationNotFoundException, ConcurrencyException, ClassificationAlreadyExistException,
DomainNotFoundException {
Map<String, String> systemIds = classificationService.createClassificationQuery() Map<String, String> systemIds = classificationService.createClassificationQuery()
.list() .list()
.stream() .stream()

View File

@ -14,6 +14,7 @@ import pro.taskana.ClassificationService;
import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException; import pro.taskana.exceptions.ConcurrencyException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.NotAuthorizedException; import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.impl.ClassificationImpl; import pro.taskana.impl.ClassificationImpl;
import pro.taskana.rest.ClassificationController; import pro.taskana.rest.ClassificationController;
@ -29,7 +30,7 @@ public class ClassificationMapper {
ClassificationService classificationService; ClassificationService classificationService;
public ClassificationResource toResource(Classification classification) throws ClassificationNotFoundException, public ClassificationResource toResource(Classification classification) throws ClassificationNotFoundException,
NotAuthorizedException, ClassificationAlreadyExistException, ConcurrencyException { NotAuthorizedException, ClassificationAlreadyExistException, ConcurrencyException, DomainNotFoundException {
ClassificationResource resource = new ClassificationResource(); ClassificationResource resource = new ClassificationResource();
BeanUtils.copyProperties(classification, resource); BeanUtils.copyProperties(classification, resource);
// need to be set by hand, because they are named different, or have different types // need to be set by hand, because they are named different, or have different types
@ -52,7 +53,7 @@ public class ClassificationMapper {
private ClassificationResource addLinks(ClassificationResource resource, Classification classification) private ClassificationResource addLinks(ClassificationResource resource, Classification classification)
throws ClassificationNotFoundException, NotAuthorizedException, ClassificationAlreadyExistException, throws ClassificationNotFoundException, NotAuthorizedException, ClassificationAlreadyExistException,
ConcurrencyException { ConcurrencyException, DomainNotFoundException {
resource.add( resource.add(
linkTo(methodOn(ClassificationController.class).getClassification(classification.getId())) linkTo(methodOn(ClassificationController.class).getClassification(classification.getId()))
.withSelfRel()); .withSelfRel());

View File

@ -15,6 +15,7 @@ import pro.taskana.ClassificationService;
import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException; import pro.taskana.exceptions.ConcurrencyException;
import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.NotAuthorizedException; import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.impl.ClassificationImpl; import pro.taskana.impl.ClassificationImpl;
import pro.taskana.rest.RestConfiguration; import pro.taskana.rest.RestConfiguration;
@ -36,7 +37,7 @@ public class ClassificationMapperTest {
@Test @Test
public void classificationToResource() throws ClassificationNotFoundException, NotAuthorizedException, public void classificationToResource() throws ClassificationNotFoundException, NotAuthorizedException,
ClassificationAlreadyExistException, ConcurrencyException { ClassificationAlreadyExistException, ConcurrencyException, DomainNotFoundException {
// given // given
ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification("DOMAIN_A", ClassificationImpl classification = (ClassificationImpl) classificationService.newClassification("DOMAIN_A",
"1", "A"); "1", "A");