TSK-865: seperated taskanaEngine in two engines (internal + external)
This commit is contained in:
parent
301085da06
commit
271e293969
|
@ -2,8 +2,11 @@ package pro.taskana;
|
|||
|
||||
import java.sql.SQLException;
|
||||
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.history.HistoryEventProducer;
|
||||
|
||||
/**
|
||||
* The TaskanaEngine represents an overall set of all needed services.
|
||||
|
@ -52,6 +55,12 @@ public interface TaskanaEngine {
|
|||
*/
|
||||
TaskanaEngineConfiguration getConfiguration();
|
||||
|
||||
/**
|
||||
* The HistoryEventProducer events and emits them to the registered history service providers.
|
||||
* @return The HistoryEventProducer
|
||||
*/
|
||||
HistoryEventProducer getHistoryEventProducer();
|
||||
|
||||
/**
|
||||
* sets the connection management mode for taskana.
|
||||
*
|
||||
|
@ -112,4 +121,52 @@ public interface TaskanaEngine {
|
|||
EXPLICIT
|
||||
}
|
||||
|
||||
/**
|
||||
* FOR INTERNAL USE ONLY.
|
||||
*
|
||||
* Contains all actions which are necessary within taskana.
|
||||
*/
|
||||
interface Internal {
|
||||
|
||||
/**
|
||||
* Opens the connection to the database. Has to be called at the begin of each Api call that accesses the database
|
||||
*/
|
||||
void openConnection();
|
||||
|
||||
/**
|
||||
* Returns the database connection into the pool. In the case of nested calls, simply pops the latest session from
|
||||
* the session stack. Closes the connection if the session stack is empty. In mode AUTOCOMMIT commits before the
|
||||
* connection is closed. To be called at the end of each Api call that accesses the database
|
||||
*/
|
||||
void returnConnection();
|
||||
|
||||
/**
|
||||
* Initializes the SqlSessionManager.
|
||||
*/
|
||||
void initSqlSession();
|
||||
|
||||
/**
|
||||
* Returns true if the given domain does exist in the configuration.
|
||||
*
|
||||
* @param domain
|
||||
* the domain specified in the configuration
|
||||
* @return <code>true</code> if the domain exists
|
||||
*/
|
||||
boolean domainExists(String domain);
|
||||
|
||||
/**
|
||||
* retrieve the SqlSession used by taskana.
|
||||
*
|
||||
* @return the myBatis SqlSession object used by taskana
|
||||
*/
|
||||
SqlSession getSqlSession();
|
||||
|
||||
/**
|
||||
* Retrieve TaskanaEngine.
|
||||
* @return The nested TaskanaEngine.
|
||||
*/
|
||||
TaskanaEngine getEngine();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package pro.taskana.history;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.ServiceLoader;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
|
@ -16,12 +15,22 @@ import pro.taskana.history.api.TaskanaHistoryEvent;
|
|||
public final class HistoryEventProducer {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(HistoryEventProducer.class);
|
||||
|
||||
TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
private static HistoryEventProducer emitterInstance;
|
||||
private ServiceLoader<TaskanaHistory> serviceLoader;
|
||||
private boolean enabled = false;
|
||||
|
||||
private HistoryEventProducer(TaskanaEngineConfiguration taskanaEngineConfiguration) {
|
||||
serviceLoader = ServiceLoader.load(TaskanaHistory.class);
|
||||
for (TaskanaHistory history : serviceLoader) {
|
||||
history.initialize(taskanaEngineConfiguration);
|
||||
LOGGER.info("Registered history provider: {}", history.getClass().getName());
|
||||
enabled = true;
|
||||
}
|
||||
if (!enabled) {
|
||||
LOGGER.info("No history provider found. Running without history.");
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized HistoryEventProducer getInstance(TaskanaEngineConfiguration taskanaEngineConfiguration) {
|
||||
if (emitterInstance == null) {
|
||||
emitterInstance = new HistoryEventProducer(taskanaEngineConfiguration);
|
||||
|
@ -39,23 +48,6 @@ public final class HistoryEventProducer {
|
|||
|
||||
public void createEvent(TaskanaHistoryEvent event) {
|
||||
LOGGER.debug("Sending event to history service providers: {}", event);
|
||||
serviceLoader.forEach(historyProvider -> {
|
||||
historyProvider.create(event);
|
||||
});
|
||||
}
|
||||
|
||||
private HistoryEventProducer(TaskanaEngineConfiguration taskanaEngineConfiguration) {
|
||||
this.taskanaEngineConfiguration = taskanaEngineConfiguration;
|
||||
serviceLoader = ServiceLoader.load(TaskanaHistory.class);
|
||||
Iterator<TaskanaHistory> serviceIterator = serviceLoader.iterator();
|
||||
while (serviceIterator.hasNext()) {
|
||||
TaskanaHistory history = serviceIterator.next();
|
||||
history.initialize(taskanaEngineConfiguration);
|
||||
LOGGER.info("Registered history provider: {}", history.getClass().getName());
|
||||
enabled = true;
|
||||
}
|
||||
if (!enabled) {
|
||||
LOGGER.info("No history provider found. Running without history.");
|
||||
}
|
||||
serviceLoader.forEach(historyProvider -> historyProvider.create(event));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,12 +33,12 @@ abstract class AbstractWorkbasketAccessItemQueryImpl<Q extends AbstractWorkbaske
|
|||
private String[] workbasketIdIn;
|
||||
private String[] idIn;
|
||||
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngine;
|
||||
private List<String> orderBy;
|
||||
private List<String> orderColumns;
|
||||
|
||||
AbstractWorkbasketAccessItemQueryImpl(TaskanaEngine taskanaEngine) {
|
||||
this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
|
||||
AbstractWorkbasketAccessItemQueryImpl(TaskanaEngine.Internal taskanaEngine) {
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
orderBy = new ArrayList<>();
|
||||
orderColumns = new ArrayList<>();
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ public class CategoryReportBuilderImpl
|
|||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(CategoryReport.Builder.class);
|
||||
|
||||
CategoryReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
CategoryReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
super(taskanaEngine, taskMonitorMapper);
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ public class CategoryReportBuilderImpl
|
|||
@Override
|
||||
public CategoryReport buildReport() throws InvalidArgumentException, NotAuthorizedException {
|
||||
LOGGER.debug("entry to buildReport(), this = {}", this);
|
||||
this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR);
|
||||
this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR);
|
||||
try {
|
||||
this.taskanaEngine.openConnection();
|
||||
CategoryReport report = new CategoryReport(this.columnHeaders);
|
||||
|
|
|
@ -10,8 +10,8 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.ClassificationQuery;
|
||||
import pro.taskana.ClassificationSummary;
|
||||
import pro.taskana.ClassificationQueryColumnName;
|
||||
import pro.taskana.ClassificationSummary;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.TimeInterval;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
|
@ -29,7 +29,7 @@ public class ClassificationQueryImpl implements ClassificationQuery {
|
|||
private static final String LINK_TO_COUNTER = "pro.taskana.mappings.QueryMapper.countQueryClassifications";
|
||||
private static final String LINK_TO_VALUEMAPPER = "pro.taskana.mappings.QueryMapper.queryClassificationColumnValues";
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(ClassificationQueryImpl.class);
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngine;
|
||||
private ClassificationQueryColumnName columnName;
|
||||
private String[] key;
|
||||
private String[] idIn;
|
||||
|
@ -68,8 +68,8 @@ public class ClassificationQueryImpl implements ClassificationQuery {
|
|||
private List<String> orderBy;
|
||||
private List<String> orderColumns;
|
||||
|
||||
ClassificationQueryImpl(TaskanaEngine taskanaEngine) {
|
||||
this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
|
||||
ClassificationQueryImpl(TaskanaEngine.Internal taskanaEngine) {
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
this.orderBy = new ArrayList<>();
|
||||
this.orderColumns = new ArrayList<>();
|
||||
}
|
||||
|
@ -241,7 +241,8 @@ public class ClassificationQueryImpl implements ClassificationQuery {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ClassificationQuery customAttributeLike(String number, String... customLike) throws InvalidArgumentException {
|
||||
public ClassificationQuery customAttributeLike(String number, String... customLike)
|
||||
throws InvalidArgumentException {
|
||||
int num = 0;
|
||||
try {
|
||||
num = Integer.parseInt(number);
|
||||
|
@ -334,7 +335,8 @@ public class ClassificationQueryImpl implements ClassificationQuery {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ClassificationQuery orderByCustomAttribute(String number, SortDirection sortDirection) throws InvalidArgumentException {
|
||||
public ClassificationQuery orderByCustomAttribute(String number, SortDirection sortDirection)
|
||||
throws InvalidArgumentException {
|
||||
int num = 0;
|
||||
try {
|
||||
num = Integer.parseInt(number);
|
||||
|
|
|
@ -26,7 +26,7 @@ public class ClassificationReportBuilderImpl
|
|||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(ClassificationReport.Builder.class);
|
||||
|
||||
ClassificationReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
ClassificationReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
super(taskanaEngine, taskMonitorMapper);
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,7 @@ public class ClassificationReportBuilderImpl
|
|||
@Override
|
||||
public ClassificationReport buildReport() throws InvalidArgumentException, NotAuthorizedException {
|
||||
LOGGER.debug("entry to buildReport(), this = {}", this);
|
||||
this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
try {
|
||||
this.taskanaEngine.openConnection();
|
||||
ClassificationReport report = new ClassificationReport(this.columnHeaders);
|
||||
|
@ -62,7 +62,7 @@ public class ClassificationReportBuilderImpl
|
|||
@Override
|
||||
public DetailedClassificationReport buildDetailedReport() throws InvalidArgumentException, NotAuthorizedException {
|
||||
LOGGER.debug("entry to buildDetailedReport(), this = {}", this);
|
||||
this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
try {
|
||||
this.taskanaEngine.openConnection();
|
||||
DetailedClassificationReport report = new DetailedClassificationReport(this.columnHeaders);
|
||||
|
|
|
@ -43,12 +43,11 @@ public class ClassificationServiceImpl implements ClassificationService {
|
|||
private static final Logger LOGGER = LoggerFactory.getLogger(ClassificationServiceImpl.class);
|
||||
private ClassificationMapper classificationMapper;
|
||||
private TaskMapper taskMapper;
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngine;
|
||||
|
||||
ClassificationServiceImpl(TaskanaEngine taskanaEngine, ClassificationMapper classificationMapper,
|
||||
ClassificationServiceImpl(TaskanaEngine.Internal taskanaEngine, ClassificationMapper classificationMapper,
|
||||
TaskMapper taskMapper) {
|
||||
super();
|
||||
this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
this.classificationMapper = classificationMapper;
|
||||
this.taskMapper = taskMapper;
|
||||
}
|
||||
|
@ -79,7 +78,7 @@ public class ClassificationServiceImpl implements ClassificationService {
|
|||
throws ClassificationAlreadyExistException, NotAuthorizedException,
|
||||
DomainNotFoundException, InvalidArgumentException {
|
||||
LOGGER.debug("entry to createClassification(classification = {})", classification);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().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.");
|
||||
|
@ -183,7 +182,7 @@ public class ClassificationServiceImpl implements ClassificationService {
|
|||
public Classification updateClassification(Classification classification)
|
||||
throws NotAuthorizedException, ConcurrencyException, ClassificationNotFoundException, InvalidArgumentException {
|
||||
LOGGER.debug("entry to updateClassification(Classification = {})", classification);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
ClassificationImpl classificationImpl = null;
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
|
@ -256,13 +255,13 @@ public class ClassificationServiceImpl implements ClassificationService {
|
|||
}
|
||||
|
||||
if (classification.getType() != null
|
||||
&& !taskanaEngine.getConfiguration().getClassificationTypes().contains(classification.getType())) {
|
||||
&& !taskanaEngine.getEngine().getConfiguration().getClassificationTypes().contains(classification.getType())) {
|
||||
throw new InvalidArgumentException("Given classification type " + classification.getType()
|
||||
+ " is not valid according to the configuration.");
|
||||
}
|
||||
|
||||
if (classification.getCategory() != null
|
||||
&& !taskanaEngine.getConfiguration()
|
||||
&& !taskanaEngine.getEngine().getConfiguration()
|
||||
.getClassificationCategoriesByType(classification.getType())
|
||||
.contains(classification.getCategory())) {
|
||||
throw new InvalidArgumentException(
|
||||
|
@ -355,7 +354,7 @@ public class ClassificationServiceImpl implements ClassificationService {
|
|||
public void deleteClassification(String classificationKey, String domain)
|
||||
throws ClassificationInUseException, ClassificationNotFoundException, NotAuthorizedException {
|
||||
LOGGER.debug("entry to deleteClassification(key = {}, domain = {})", classificationKey, domain);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
Classification classification = this.classificationMapper.findByKeyAndDomain(classificationKey, domain);
|
||||
|
@ -374,7 +373,7 @@ public class ClassificationServiceImpl implements ClassificationService {
|
|||
public void deleteClassification(String classificationId)
|
||||
throws ClassificationInUseException, ClassificationNotFoundException, NotAuthorizedException {
|
||||
LOGGER.debug("entry to deleteClassification(id = {})", classificationId);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
Classification classification = this.classificationMapper.findById(classificationId);
|
||||
|
@ -460,7 +459,7 @@ public class ClassificationServiceImpl implements ClassificationService {
|
|||
*/
|
||||
private void updateCategoryOnAssociatedTasks(ClassificationImpl classificationImpl,
|
||||
Classification oldClassification) {
|
||||
List<TaskSummary> taskSummaries = taskanaEngine.getTaskService()
|
||||
List<TaskSummary> taskSummaries = taskanaEngine.getEngine().getTaskService()
|
||||
.createTaskQuery()
|
||||
.classificationIdIn(oldClassification.getId())
|
||||
.list();
|
||||
|
@ -515,7 +514,7 @@ public class ClassificationServiceImpl implements ClassificationService {
|
|||
ScheduledJob job = new ScheduledJob();
|
||||
job.setArguments(args);
|
||||
job.setType(ScheduledJob.Type.CLASSIFICATIONCHANGEDJOB);
|
||||
taskanaEngine.getJobService().createJob(job);
|
||||
taskanaEngine.getEngine().getJobService().createJob(job);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ public class CustomFieldValueReportBuilderImpl
|
|||
|
||||
private CustomField customField;
|
||||
|
||||
CustomFieldValueReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper,
|
||||
CustomFieldValueReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper,
|
||||
CustomField customField) {
|
||||
super(taskanaEngine, taskMonitorMapper);
|
||||
this.customField = customField;
|
||||
|
@ -47,7 +47,7 @@ public class CustomFieldValueReportBuilderImpl
|
|||
public CustomFieldValueReport buildReport()
|
||||
throws InvalidArgumentException, NotAuthorizedException {
|
||||
LOGGER.debug("entry to buildReport(customField = {}), this = {}", this.customField, this);
|
||||
this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR);
|
||||
this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR);
|
||||
try {
|
||||
this.taskanaEngine.openConnection();
|
||||
CustomFieldValueReport report = new CustomFieldValueReport(this.columnHeaders);
|
||||
|
|
|
@ -21,11 +21,10 @@ public class JobServiceImpl implements JobService {
|
|||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(JobServiceImpl.class);
|
||||
private JobMapper jobMapper;
|
||||
private TaskanaEngineImpl taskanaEngineImpl;
|
||||
private TaskanaEngine.Internal taskanaEngineImpl;
|
||||
|
||||
public JobServiceImpl(TaskanaEngine taskanaEngine, JobMapper jobMapper) {
|
||||
super();
|
||||
this.taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
||||
public JobServiceImpl(TaskanaEngine.Internal taskanaEngine, JobMapper jobMapper) {
|
||||
this.taskanaEngineImpl = taskanaEngine;
|
||||
this.jobMapper = jobMapper;
|
||||
}
|
||||
|
||||
|
@ -94,7 +93,7 @@ public class JobServiceImpl implements JobService {
|
|||
if (job.getDue() == null) {
|
||||
job.setDue(Instant.now());
|
||||
}
|
||||
job.setRetryCount(taskanaEngineImpl.getConfiguration().getMaxNumberOfJobRetries());
|
||||
job.setRetryCount(taskanaEngineImpl.getEngine().getConfiguration().getMaxNumberOfJobRetries());
|
||||
LOGGER.debug("Job after initialization: {}", job);
|
||||
return job;
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ public class ObjectReferenceQueryImpl implements ObjectReferenceQuery {
|
|||
private static final String LINK_TO_COUNTER = "pro.taskana.mappings.QueryMapper.countQueryObjectReferences";
|
||||
private static final String LINK_TO_VALUEMAPPER = "pro.taskana.mappings.QueryMapper.queryObjectReferenceColumnValues";
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(ObjectReferenceQueryImpl.class);
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngine;
|
||||
private ObjectReferenceQueryColumnName columnName;
|
||||
private String[] company;
|
||||
private String[] system;
|
||||
|
@ -36,8 +36,8 @@ public class ObjectReferenceQueryImpl implements ObjectReferenceQuery {
|
|||
private String[] value;
|
||||
private List<String> orderBy;
|
||||
|
||||
ObjectReferenceQueryImpl(TaskanaEngine taskanaEngine) {
|
||||
this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
|
||||
ObjectReferenceQueryImpl(TaskanaEngine.Internal taskanaEngine) {
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
this.orderBy = new ArrayList<>();
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package pro.taskana.impl;
|
|||
|
||||
import pro.taskana.CustomField;
|
||||
import pro.taskana.TaskMonitorService;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.mappings.TaskMonitorMapper;
|
||||
import pro.taskana.report.CategoryReport;
|
||||
import pro.taskana.report.ClassificationReport;
|
||||
|
@ -15,43 +16,43 @@ import pro.taskana.report.WorkbasketReport;
|
|||
*/
|
||||
public class TaskMonitorServiceImpl implements TaskMonitorService {
|
||||
|
||||
private TaskanaEngineImpl taskanaEngineImpl;
|
||||
private TaskanaEngine.Internal taskanaEngine;
|
||||
private TaskMonitorMapper taskMonitorMapper;
|
||||
|
||||
TaskMonitorServiceImpl(TaskanaEngineImpl taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
TaskMonitorServiceImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
super();
|
||||
this.taskanaEngineImpl = taskanaEngine;
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
this.taskMonitorMapper = taskMonitorMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorkbasketReport.Builder createWorkbasketReportBuilder() {
|
||||
return new WorkbasketReportBuilderImpl(taskanaEngineImpl, taskMonitorMapper);
|
||||
return new WorkbasketReportBuilderImpl(taskanaEngine, taskMonitorMapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CategoryReport.Builder createCategoryReportBuilder() {
|
||||
return new CategoryReportBuilderImpl(taskanaEngineImpl, taskMonitorMapper);
|
||||
return new CategoryReportBuilderImpl(taskanaEngine, taskMonitorMapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClassificationReport.Builder createClassificationReportBuilder() {
|
||||
return new ClassificationReportBuilderImpl(taskanaEngineImpl, taskMonitorMapper);
|
||||
return new ClassificationReportBuilderImpl(taskanaEngine, taskMonitorMapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CustomFieldValueReport.Builder createCustomFieldValueReportBuilder(CustomField customField) {
|
||||
return new CustomFieldValueReportBuilderImpl(taskanaEngineImpl, taskMonitorMapper, customField);
|
||||
return new CustomFieldValueReportBuilderImpl(taskanaEngine, taskMonitorMapper, customField);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskStatusReport.Builder createTaskStatusReportBuilder() {
|
||||
return new TaskStatusReportBuilderImpl(taskanaEngineImpl, taskMonitorMapper);
|
||||
return new TaskStatusReportBuilderImpl(taskanaEngine, taskMonitorMapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TimestampReport.Builder createTimestampReportBuilder() {
|
||||
return new TimestampReportBuilderImpl(taskanaEngineImpl, taskMonitorMapper);
|
||||
return new TimestampReportBuilderImpl(taskanaEngine, taskMonitorMapper);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
private static final String TIME_INTERVAL = "TimeInterval ";
|
||||
private static final String IS_INVALID = " is invalid.";
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(TaskQueryImpl.class);
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngine;
|
||||
private TaskServiceImpl taskService;
|
||||
private TaskQueryColumnName columnName;
|
||||
private String[] nameIn;
|
||||
|
@ -146,9 +146,9 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
private boolean addClassificationNameToSelectClauseForOrdering = false;
|
||||
private boolean addAttachmentClassificationNameToSelectClauseForOrdering = false;
|
||||
|
||||
TaskQueryImpl(TaskanaEngine taskanaEngine) {
|
||||
this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
|
||||
this.taskService = (TaskServiceImpl) taskanaEngine.getTaskService();
|
||||
TaskQueryImpl(TaskanaEngine.Internal taskanaEngine) {
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
this.taskService = (TaskServiceImpl) taskanaEngine.getEngine().getTaskService();
|
||||
this.orderBy = new ArrayList<>();
|
||||
this.orderColumns = new ArrayList<>();
|
||||
this.filterByAccessIdIn = true;
|
||||
|
@ -178,7 +178,6 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
return this;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public TaskQuery nameLike(String... names) {
|
||||
this.nameLike = toUpperCopy(names);
|
||||
|
@ -698,7 +697,7 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
public TaskQuery orderByClassificationName(SortDirection sortDirection) {
|
||||
joinWithClassifications = true;
|
||||
addClassificationNameToSelectClauseForOrdering = true;
|
||||
return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
|
||||
return this.taskanaEngine.getSqlSession().getConfiguration().getDatabaseId().equals("db2")
|
||||
? addOrderCriteria("CNAME", sortDirection)
|
||||
: addOrderCriteria("c.NAME", sortDirection);
|
||||
}
|
||||
|
@ -707,14 +706,14 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
public TaskQuery orderByAttachmentClassificationName(SortDirection sortDirection) {
|
||||
joinWithAttachments = true;
|
||||
addAttachmentClassificationNameToSelectClauseForOrdering = true;
|
||||
return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
|
||||
return this.taskanaEngine.getSqlSession().getConfiguration().getDatabaseId().equals("db2")
|
||||
? addOrderCriteria("ACNAME", sortDirection)
|
||||
: addOrderCriteria("ac.NAME", sortDirection);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskQuery orderByClassificationKey(SortDirection sortDirection) {
|
||||
return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
|
||||
return this.taskanaEngine.getSqlSession().getConfiguration().getDatabaseId().equals("db2")
|
||||
? addOrderCriteria("TCLASSIFICATION_KEY", sortDirection)
|
||||
: addOrderCriteria("t.CLASSIFICATION_KEY", sortDirection);
|
||||
}
|
||||
|
@ -803,7 +802,7 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
public TaskQuery orderByAttachmentClassificationKey(SortDirection sortDirection) {
|
||||
joinWithAttachments = true;
|
||||
addAttachmentColumnsToSelectClauseForOrdering = true;
|
||||
return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
|
||||
return this.taskanaEngine.getSqlSession().getConfiguration().getDatabaseId().equals("db2")
|
||||
? addOrderCriteria("ACLASSIFICATION_KEY", sortDirection)
|
||||
: addOrderCriteria("a.CLASSIFICATION_KEY", sortDirection);
|
||||
}
|
||||
|
@ -812,7 +811,7 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
public TaskQuery orderByAttachmentClassificationId(SortDirection sortDirection) {
|
||||
joinWithAttachments = true;
|
||||
addAttachmentColumnsToSelectClauseForOrdering = true;
|
||||
return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
|
||||
return this.taskanaEngine.getSqlSession().getConfiguration().getDatabaseId().equals("db2")
|
||||
? addOrderCriteria("ACLASSIFICATION_ID", sortDirection)
|
||||
: addOrderCriteria("a.CLASSIFICATION_ID", sortDirection);
|
||||
}
|
||||
|
@ -976,19 +975,21 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
}
|
||||
|
||||
public String getLinkToMapperScript() {
|
||||
return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
|
||||
return this.taskanaEngine
|
||||
.getSqlSession()
|
||||
.getConfiguration().getDatabaseId().equals("db2")
|
||||
? LINK_TO_MAPPER_DB2
|
||||
: LINK_TO_MAPPER;
|
||||
}
|
||||
|
||||
public String getLinkToCounterTaskScript() {
|
||||
return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2")
|
||||
return this.taskanaEngine.getSqlSession().getConfiguration().getDatabaseId().equals("db2")
|
||||
? LINK_TO_COUNTER_DB2
|
||||
: LINK_TO_COUNTER;
|
||||
}
|
||||
|
||||
private void setupAccessIds() {
|
||||
if (taskanaEngine.isUserInRole(TaskanaRole.ADMIN) || !filterByAccessIdIn) {
|
||||
if (taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN) || !filterByAccessIdIn) {
|
||||
this.accessIdIn = null;
|
||||
} else if (this.accessIdIn == null) {
|
||||
String[] accessIds = new String[0];
|
||||
|
@ -1154,7 +1155,7 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
}
|
||||
|
||||
private void checkOpenAndReadPermissionForSpecifiedWorkbaskets() {
|
||||
if (taskanaEngine.isUserInRole(TaskanaRole.ADMIN)) {
|
||||
if (taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN)) {
|
||||
LOGGER.debug("Skipping permissions check since user is in role ADMIN.");
|
||||
return;
|
||||
}
|
||||
|
@ -1178,7 +1179,7 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
|
||||
private void checkOpenAndReadPermissionById(String workbasketId) throws NotAuthorizedException {
|
||||
try {
|
||||
taskanaEngine.getWorkbasketService().checkAuthorization(workbasketId,
|
||||
taskanaEngine.getEngine().getWorkbasketService().checkAuthorization(workbasketId,
|
||||
WorkbasketPermission.OPEN, WorkbasketPermission.READ);
|
||||
} catch (WorkbasketNotFoundException e) {
|
||||
LOGGER.warn("The workbasket with the ID '" + workbasketId + "' does not exist.", e);
|
||||
|
@ -1187,7 +1188,7 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
|
||||
private void checkOpenAndReadPermissionByKeyDomain(KeyDomain keyDomain) throws NotAuthorizedException {
|
||||
try {
|
||||
taskanaEngine.getWorkbasketService().checkAuthorization(keyDomain.getKey(),
|
||||
taskanaEngine.getEngine().getWorkbasketService().checkAuthorization(keyDomain.getKey(),
|
||||
keyDomain.getDomain(), WorkbasketPermission.OPEN, WorkbasketPermission.READ);
|
||||
} catch (WorkbasketNotFoundException e) {
|
||||
LOGGER.warn("The workbasket with the KEY '" + keyDomain.getKey() + "' and DOMAIN '"
|
||||
|
@ -1195,10 +1196,6 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
}
|
||||
}
|
||||
|
||||
public TaskanaEngineImpl getTaskanaEngine() {
|
||||
return taskanaEngine;
|
||||
}
|
||||
|
||||
public String[] getTaskIds() {
|
||||
return taskIds;
|
||||
}
|
||||
|
@ -1634,7 +1631,8 @@ public class TaskQueryImpl implements TaskQuery {
|
|||
return addClassificationNameToSelectClauseForOrdering;
|
||||
}
|
||||
|
||||
public void setAddClassificationNameToSelectClauseForOrdering(boolean addClassificationNameToSelectClauseForOrdering) {
|
||||
public void setAddClassificationNameToSelectClauseForOrdering(
|
||||
boolean addClassificationNameToSelectClauseForOrdering) {
|
||||
this.addClassificationNameToSelectClauseForOrdering = addClassificationNameToSelectClauseForOrdering;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.apache.ibatis.exceptions.PersistenceException;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -19,6 +20,7 @@ import org.slf4j.LoggerFactory;
|
|||
import pro.taskana.Attachment;
|
||||
import pro.taskana.BulkOperationResults;
|
||||
import pro.taskana.Classification;
|
||||
import pro.taskana.ClassificationService;
|
||||
import pro.taskana.ClassificationSummary;
|
||||
import pro.taskana.ObjectReference;
|
||||
import pro.taskana.Task;
|
||||
|
@ -79,17 +81,17 @@ public class TaskServiceImpl implements TaskService {
|
|||
private static final String ID_PREFIX_BUSINESS_PROCESS = "BPI";
|
||||
private static final String MUST_NOT_BE_EMPTY = " must not be empty";
|
||||
private static final Duration MAX_DURATION = Duration.ofSeconds(Long.MAX_VALUE, 999_999_999);
|
||||
private static final Set<String> ALLOWED_KEYS = new HashSet<>(
|
||||
Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"));
|
||||
private static final Set<String> ALLOWED_KEYS =
|
||||
IntStream.rangeClosed(1, 16).mapToObj(String::valueOf).collect(Collectors.toSet());
|
||||
private DaysToWorkingDaysConverter converter;
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngine;
|
||||
private WorkbasketService workbasketService;
|
||||
private ClassificationServiceImpl classificationService;
|
||||
private ClassificationService classificationService;
|
||||
private TaskMapper taskMapper;
|
||||
private AttachmentMapper attachmentMapper;
|
||||
private HistoryEventProducer historyEventProducer;
|
||||
|
||||
TaskServiceImpl(TaskanaEngine taskanaEngine, TaskMapper taskMapper,
|
||||
TaskServiceImpl(TaskanaEngine.Internal taskanaEngine, TaskMapper taskMapper,
|
||||
AttachmentMapper attachmentMapper) {
|
||||
super();
|
||||
try {
|
||||
|
@ -98,12 +100,12 @@ public class TaskServiceImpl implements TaskService {
|
|||
} catch (InvalidArgumentException e) {
|
||||
throw new SystemException("Internal error. Cannot initialize DaysToWorkingDaysConverter", e.getCause());
|
||||
}
|
||||
this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
this.taskMapper = taskMapper;
|
||||
this.workbasketService = taskanaEngine.getWorkbasketService();
|
||||
this.workbasketService = taskanaEngine.getEngine().getWorkbasketService();
|
||||
this.attachmentMapper = attachmentMapper;
|
||||
this.classificationService = (ClassificationServiceImpl) taskanaEngine.getClassificationService();
|
||||
this.historyEventProducer = ((TaskanaEngineImpl) taskanaEngine).getHistoryEventProducer();
|
||||
this.classificationService = taskanaEngine.getEngine().getClassificationService();
|
||||
this.historyEventProducer = taskanaEngine.getEngine().getHistoryEventProducer();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -237,7 +239,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
if (msg != null
|
||||
&& (msg.contains("violation") || msg.contains("violates"))
|
||||
&& msg.contains("external_id")) {
|
||||
throw new TaskAlreadyExistException("Task with external id " + task.getExternalId() + " already exists");
|
||||
throw new TaskAlreadyExistException(
|
||||
"Task with external id " + task.getExternalId() + " already exists");
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
|
@ -280,7 +283,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
|
||||
List<ClassificationSummary> classifications;
|
||||
classifications = findClassificationForTaskImplAndAttachments(resultTask, attachmentImpls);
|
||||
List<Attachment> attachments = addClassificationSummariesToAttachments(attachmentImpls, classifications);
|
||||
List<Attachment> attachments = addClassificationSummariesToAttachments(attachmentImpls,
|
||||
classifications);
|
||||
resultTask.setAttachments(attachments);
|
||||
|
||||
String classificationId = resultTask.getClassificationSummary().getId();
|
||||
|
@ -413,7 +417,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
try {
|
||||
taskanaEngine.openConnection();
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to transferTasks(targetWbId = {}, taskIds = {})", destinationWorkbasketId, LoggerUtils.listToString(taskIds));
|
||||
LOGGER.debug("entry to transferTasks(targetWbId = {}, taskIds = {})", destinationWorkbasketId,
|
||||
LoggerUtils.listToString(taskIds));
|
||||
}
|
||||
|
||||
// Check pre-conditions with trowing Exceptions
|
||||
|
@ -426,7 +431,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
return transferTasks(taskIds, destinationWorkbasket);
|
||||
} finally {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("exit from transferTasks(targetWbKey = {}, taskIds = {})", destinationWorkbasketId, LoggerUtils.listToString(taskIds));
|
||||
LOGGER.debug("exit from transferTasks(targetWbKey = {}, taskIds = {})", destinationWorkbasketId,
|
||||
LoggerUtils.listToString(taskIds));
|
||||
}
|
||||
|
||||
taskanaEngine.returnConnection();
|
||||
|
@ -440,7 +446,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
try {
|
||||
taskanaEngine.openConnection();
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to transferTasks(targetWbKey = {}, domain = {}, taskIds = {})", destinationWorkbasketKey,
|
||||
LOGGER.debug("entry to transferTasks(targetWbKey = {}, domain = {}, taskIds = {})",
|
||||
destinationWorkbasketKey,
|
||||
destinationWorkbasketDomain, LoggerUtils.listToString(taskIds));
|
||||
}
|
||||
|
||||
|
@ -455,7 +462,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
return transferTasks(taskIds, destinationWorkbasket);
|
||||
} finally {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("exit from transferTasks(targetWbKey = {}, targetWbDomain = {}, destination taskIds = {})", destinationWorkbasketKey,
|
||||
LOGGER.debug("exit from transferTasks(targetWbKey = {}, targetWbDomain = {}, destination taskIds = {})",
|
||||
destinationWorkbasketKey,
|
||||
destinationWorkbasketDomain, LoggerUtils.listToString(taskIds));
|
||||
}
|
||||
|
||||
|
@ -609,7 +617,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
changedTasks = taskSummaries.stream().map(TaskSummary::getTaskId).collect(Collectors.toList());
|
||||
taskMapper.updateTasks(changedTasks, updated, fieldSelector);
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("updateTasks() updated the following tasks: {} ", LoggerUtils.listToString(changedTasks));
|
||||
LOGGER.debug("updateTasks() updated the following tasks: {} ",
|
||||
LoggerUtils.listToString(changedTasks));
|
||||
}
|
||||
|
||||
} else {
|
||||
|
@ -645,7 +654,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
changedTasks = taskSummaries.stream().map(TaskSummary::getTaskId).collect(Collectors.toList());
|
||||
taskMapper.updateTasks(changedTasks, updatedTask, fieldSelector);
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("updateTasks() updated the following tasks: {} ", LoggerUtils.listToString(changedTasks));
|
||||
LOGGER.debug("updateTasks() updated the following tasks: {} ",
|
||||
LoggerUtils.listToString(changedTasks));
|
||||
}
|
||||
|
||||
} else {
|
||||
|
@ -697,7 +707,7 @@ public class TaskServiceImpl implements TaskService {
|
|||
task.setTransferred(false);
|
||||
|
||||
String creator = CurrentUserContext.getUserid();
|
||||
if (taskanaEngine.getConfiguration().isSecurityEnabled() && creator == null) {
|
||||
if (taskanaEngine.getEngine().getConfiguration().isSecurityEnabled() && creator == null) {
|
||||
throw new SystemException(
|
||||
"TaskanaSecurity is enabled, but the current UserId is NULL while creating a Task.");
|
||||
}
|
||||
|
@ -761,7 +771,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
Workbasket destinationWorkbasket)
|
||||
throws InvalidArgumentException, WorkbasketNotFoundException, NotAuthorizedException {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to transferTasks(taskIdsToBeTransferred = {}, destinationWorkbasket = {})", LoggerUtils.listToString(taskIdsToBeTransferred), destinationWorkbasket);
|
||||
LOGGER.debug("entry to transferTasks(taskIdsToBeTransferred = {}, destinationWorkbasket = {})",
|
||||
LoggerUtils.listToString(taskIdsToBeTransferred), destinationWorkbasket);
|
||||
}
|
||||
|
||||
workbasketService.checkAuthorization(destinationWorkbasket.getId(), WorkbasketPermission.APPEND);
|
||||
|
@ -795,7 +806,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
private void removeNonExistingTasksFromTaskIdList(List<String> taskIds,
|
||||
BulkOperationResults<String, TaskanaException> bulkLog) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to removeNonExistingTasksFromTaskIdList(targetWbId = {}, taskIds = {})", taskIds, bulkLog);
|
||||
LOGGER.debug("entry to removeNonExistingTasksFromTaskIdList(targetWbId = {}, taskIds = {})", taskIds,
|
||||
bulkLog);
|
||||
}
|
||||
|
||||
Iterator<String> taskIdIterator = taskIds.iterator();
|
||||
|
@ -813,7 +825,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
private void checkIfTransferConditionsAreFulfilled(List<String> taskIds, List<MinimalTaskSummary> taskSummaries,
|
||||
BulkOperationResults<String, TaskanaException> bulkLog) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to checkIfTransferConditionsAreFulfilled(taskIds = {}, taskSummaries = {}, bulkLog = {})",
|
||||
LOGGER.debug(
|
||||
"entry to checkIfTransferConditionsAreFulfilled(taskIds = {}, taskSummaries = {}, bulkLog = {})",
|
||||
LoggerUtils.listToString(taskIds), LoggerUtils.listToString(taskSummaries), bulkLog);
|
||||
}
|
||||
|
||||
|
@ -837,8 +850,10 @@ public class TaskServiceImpl implements TaskService {
|
|||
private void checkIfTasksMatchTransferCriteria(List<String> taskIds, List<MinimalTaskSummary> taskSummaries,
|
||||
List<WorkbasketSummary> sourceWorkbaskets, BulkOperationResults<String, TaskanaException> bulkLog) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to checkIfTasksMatchTransferCriteria(taskIds = {}, taskSummaries = {}, sourceWorkbaskets = {}, bulkLog = {})",
|
||||
LoggerUtils.listToString(taskIds), LoggerUtils.listToString(taskSummaries), LoggerUtils.listToString(sourceWorkbaskets), bulkLog);
|
||||
LOGGER.debug(
|
||||
"entry to checkIfTasksMatchTransferCriteria(taskIds = {}, taskSummaries = {}, sourceWorkbaskets = {}, bulkLog = {})",
|
||||
LoggerUtils.listToString(taskIds), LoggerUtils.listToString(taskSummaries),
|
||||
LoggerUtils.listToString(sourceWorkbaskets), bulkLog);
|
||||
}
|
||||
|
||||
Iterator<String> taskIdIterator = taskIds.iterator();
|
||||
|
@ -935,7 +950,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
private void updateTasksToBeCompleted(List<String> taskIds,
|
||||
List<TaskSummary> taskSummaries) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to updateTasksToBeCompleted(taskIds = {}, taskSummaries = {})", LoggerUtils.listToString(taskIds), LoggerUtils.listToString(taskSummaries));
|
||||
LOGGER.debug("entry to updateTasksToBeCompleted(taskIds = {}, taskSummaries = {})",
|
||||
LoggerUtils.listToString(taskIds), LoggerUtils.listToString(taskSummaries));
|
||||
}
|
||||
|
||||
if (!taskIds.isEmpty() && !taskSummaries.isEmpty()) {
|
||||
|
@ -985,7 +1001,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
private void addClassificationSummariesToTaskSummaries(List<TaskSummaryImpl> tasks,
|
||||
List<ClassificationSummary> classifications) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to addClassificationSummariesToTaskSummaries(tasks = {}, classifications = {})", LoggerUtils.listToString(tasks), LoggerUtils.listToString(classifications));
|
||||
LOGGER.debug("entry to addClassificationSummariesToTaskSummaries(tasks = {}, classifications = {})",
|
||||
LoggerUtils.listToString(tasks), LoggerUtils.listToString(classifications));
|
||||
}
|
||||
|
||||
if (tasks == null || tasks.isEmpty()) {
|
||||
|
@ -1096,8 +1113,10 @@ public class TaskServiceImpl implements TaskService {
|
|||
private void addAttachmentSummariesToTaskSummaries(List<TaskSummaryImpl> taskSummaries,
|
||||
List<AttachmentSummaryImpl> attachmentSummaries, List<ClassificationSummary> classifications) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to addAttachmentSummariesToTaskSummaries(taskSummaries = {}, attachmentSummaries = {}, classifications = {})",
|
||||
LoggerUtils.listToString(taskSummaries), LoggerUtils.listToString(attachmentSummaries), LoggerUtils.listToString(classifications));
|
||||
LOGGER.debug(
|
||||
"entry to addAttachmentSummariesToTaskSummaries(taskSummaries = {}, attachmentSummaries = {}, classifications = {})",
|
||||
LoggerUtils.listToString(taskSummaries), LoggerUtils.listToString(attachmentSummaries),
|
||||
LoggerUtils.listToString(classifications));
|
||||
}
|
||||
|
||||
if (taskSummaries == null || taskSummaries.isEmpty()) {
|
||||
|
@ -1181,7 +1200,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
private TaskImpl initUpdatedTask(Map<String, String> customFieldsToUpdate, CustomPropertySelector fieldSelector)
|
||||
throws InvalidArgumentException {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to initUpdatedTask(customFieldsToUpdate = {}, fieldSelector = {})", LoggerUtils.mapToString(customFieldsToUpdate), fieldSelector);
|
||||
LOGGER.debug("entry to initUpdatedTask(customFieldsToUpdate = {}, fieldSelector = {})",
|
||||
LoggerUtils.mapToString(customFieldsToUpdate), fieldSelector);
|
||||
}
|
||||
|
||||
TaskImpl newTask = new TaskImpl();
|
||||
|
@ -1201,7 +1221,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
|
||||
private void validateCustomFields(Map<String, String> customFieldsToUpdate) throws InvalidArgumentException {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to validateCustomFields(customFieldsToUpdate = {}, taskIds = {})", LoggerUtils.mapToString(customFieldsToUpdate));
|
||||
LOGGER.debug("entry to validateCustomFields(customFieldsToUpdate = {}, taskIds = {})",
|
||||
LoggerUtils.mapToString(customFieldsToUpdate));
|
||||
}
|
||||
|
||||
if (customFieldsToUpdate == null || customFieldsToUpdate.isEmpty()) {
|
||||
|
@ -1296,9 +1317,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
} else {
|
||||
ClassificationSummary classificationSummary = attachment.getClassificationSummary();
|
||||
if (classificationSummary != null) {
|
||||
PrioDurationHolder newPrioDuraton = getNewPrioDuration(actualPrioDuration,
|
||||
actualPrioDuration = getNewPrioDuration(actualPrioDuration,
|
||||
classificationSummary.getPriority(), classificationSummary.getServiceLevel());
|
||||
actualPrioDuration = newPrioDuraton;
|
||||
}
|
||||
}
|
||||
return actualPrioDuration;
|
||||
|
@ -1405,7 +1425,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
private PrioDurationHolder handleAttachmentsOnTaskUpdate(TaskImpl oldTaskImpl, TaskImpl newTaskImpl)
|
||||
throws AttachmentPersistenceException {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to handleAttachmentsOnTaskUpdate(oldTaskImpl = {}, newTaskImpl = {})", oldTaskImpl, newTaskImpl);
|
||||
LOGGER.debug("entry to handleAttachmentsOnTaskUpdate(oldTaskImpl = {}, newTaskImpl = {})", oldTaskImpl,
|
||||
newTaskImpl);
|
||||
}
|
||||
|
||||
PrioDurationHolder prioDuration = new PrioDurationHolder(MAX_DURATION, Integer.MIN_VALUE);
|
||||
|
@ -1415,7 +1436,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
while (i.hasNext()) {
|
||||
Attachment attachment = i.next();
|
||||
if (attachment != null) {
|
||||
prioDuration = handlePrioDurationOfOneAttachmentOnTaskUpdate(oldTaskImpl, newTaskImpl, prioDuration, attachment);
|
||||
prioDuration = handlePrioDurationOfOneAttachmentOnTaskUpdate(oldTaskImpl, newTaskImpl, prioDuration,
|
||||
attachment);
|
||||
} else {
|
||||
i.remove();
|
||||
}
|
||||
|
@ -1433,7 +1455,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
|
||||
private void deleteAttachmentOnTaskUpdate(TaskImpl oldTaskImpl, TaskImpl newTaskImpl) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to deleteAttachmentOnTaskUpdate(oldTaskImpl = {}, newTaskImpl = {})", oldTaskImpl, newTaskImpl);
|
||||
LOGGER.debug("entry to deleteAttachmentOnTaskUpdate(oldTaskImpl = {}, newTaskImpl = {})", oldTaskImpl,
|
||||
newTaskImpl);
|
||||
}
|
||||
|
||||
for (Attachment oldAttachment : oldTaskImpl.getAttachments()) {
|
||||
|
@ -1560,7 +1583,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
|
||||
private PrioDurationHolder getNewPrioDuration(PrioDurationHolder prioDurationHolder, int prioFromClassification,
|
||||
String serviceLevelFromClassification) {
|
||||
LOGGER.debug("entry to getNewPrioDuration(prioDurationHolder = {}, prioFromClassification = {}, serviceLevelFromClassification = {})",
|
||||
LOGGER.debug(
|
||||
"entry to getNewPrioDuration(prioDurationHolder = {}, prioFromClassification = {}, serviceLevelFromClassification = {})",
|
||||
prioDurationHolder, prioFromClassification, serviceLevelFromClassification);
|
||||
Duration minDuration = prioDurationHolder.getDuration();
|
||||
int maxPrio = prioDurationHolder.getPrio();
|
||||
|
@ -1832,7 +1856,7 @@ public class TaskServiceImpl implements TaskService {
|
|||
private void deleteTask(String taskId, boolean forceDelete)
|
||||
throws TaskNotFoundException, InvalidStateException, NotAuthorizedException {
|
||||
LOGGER.debug("entry to deleteTask(taskId = {} , forceDelete = {})", taskId, forceDelete);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.ADMIN);
|
||||
TaskImpl task = null;
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
|
@ -1877,7 +1901,8 @@ public class TaskServiceImpl implements TaskService {
|
|||
|
||||
List<TaskSummary> augmentTaskSummariesByContainedSummaries(List<TaskSummaryImpl> taskSummaries) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("entry to augmentTaskSummariesByContainedSummaries(taskSummaries= {})", LoggerUtils.listToString(taskSummaries));
|
||||
LOGGER.debug("entry to augmentTaskSummariesByContainedSummaries(taskSummaries= {})",
|
||||
LoggerUtils.listToString(taskSummaries));
|
||||
}
|
||||
|
||||
List<TaskSummary> result = new ArrayList<>();
|
||||
|
@ -1909,6 +1934,7 @@ public class TaskServiceImpl implements TaskService {
|
|||
* @author bbr
|
||||
*/
|
||||
static class PrioDurationHolder {
|
||||
|
||||
private Duration duration;
|
||||
|
||||
private int prio;
|
||||
|
@ -1923,14 +1949,14 @@ public class TaskServiceImpl implements TaskService {
|
|||
return duration;
|
||||
}
|
||||
|
||||
public int getPrio() {
|
||||
return prio;
|
||||
}
|
||||
|
||||
public void setDuration(Duration duration) {
|
||||
this.duration = duration;
|
||||
}
|
||||
|
||||
public int getPrio() {
|
||||
return prio;
|
||||
}
|
||||
|
||||
public void setPrio(int prio) {
|
||||
this.prio = prio;
|
||||
}
|
||||
|
|
|
@ -19,13 +19,13 @@ import pro.taskana.report.TaskStatusReport;
|
|||
public class TaskStatusReportBuilderImpl implements TaskStatusReport.Builder {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(TaskStatusReportBuilderImpl.class);
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngine;
|
||||
private TaskMonitorMapper taskMonitorMapper;
|
||||
private List<String> domains;
|
||||
private List<TaskState> states;
|
||||
|
||||
TaskStatusReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
|
||||
TaskStatusReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
this.taskMonitorMapper = taskMonitorMapper;
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ public class TaskStatusReportBuilderImpl implements TaskStatusReport.Builder {
|
|||
@Override
|
||||
public TaskStatusReport buildReport() throws NotAuthorizedException {
|
||||
LOGGER.debug("entry to buildReport(), this = {}", this);
|
||||
this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
try {
|
||||
this.taskanaEngine.openConnection();
|
||||
List<TaskQueryItem> tasks = this.taskMonitorMapper.getTasksCountByState(this.domains, this.states);
|
||||
|
|
|
@ -63,12 +63,14 @@ public class TaskanaEngineImpl implements TaskanaEngine {
|
|||
protected ConnectionManagementMode mode = ConnectionManagementMode.PARTICIPATE;
|
||||
protected java.sql.Connection connection = null;
|
||||
protected HistoryEventProducer historyEventProducer;
|
||||
private Internal internal;
|
||||
|
||||
protected TaskanaEngineImpl(TaskanaEngineConfiguration taskanaEngineConfiguration) {
|
||||
this.taskanaEngineConfiguration = taskanaEngineConfiguration;
|
||||
createTransactionFactory(taskanaEngineConfiguration.getUseManagedTransactions());
|
||||
this.sessionManager = createSqlSessionManager();
|
||||
this.historyEventProducer = HistoryEventProducer.getInstance(taskanaEngineConfiguration);
|
||||
this.internal = new Internal();
|
||||
}
|
||||
|
||||
public static TaskanaEngine createTaskanaEngine(TaskanaEngineConfiguration taskanaEngineConfiguration) {
|
||||
|
@ -130,21 +132,21 @@ public class TaskanaEngineImpl implements TaskanaEngine {
|
|||
@Override
|
||||
public TaskService getTaskService() {
|
||||
SqlSession session = this.sessionManager;
|
||||
return new TaskServiceImpl(this, session.getMapper(TaskMapper.class),
|
||||
return new TaskServiceImpl(internal, session.getMapper(TaskMapper.class),
|
||||
session.getMapper(AttachmentMapper.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskMonitorService getTaskMonitorService() {
|
||||
SqlSession session = this.sessionManager;
|
||||
return new TaskMonitorServiceImpl(this,
|
||||
return new TaskMonitorServiceImpl(internal,
|
||||
session.getMapper(TaskMonitorMapper.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorkbasketService getWorkbasketService() {
|
||||
SqlSession session = this.sessionManager;
|
||||
return new WorkbasketServiceImpl(this,
|
||||
return new WorkbasketServiceImpl(internal,
|
||||
session.getMapper(WorkbasketMapper.class),
|
||||
session.getMapper(DistributionTargetMapper.class),
|
||||
session.getMapper(WorkbasketAccessMapper.class));
|
||||
|
@ -153,14 +155,14 @@ public class TaskanaEngineImpl implements TaskanaEngine {
|
|||
@Override
|
||||
public ClassificationService getClassificationService() {
|
||||
SqlSession session = this.sessionManager;
|
||||
return new ClassificationServiceImpl(this, session.getMapper(ClassificationMapper.class),
|
||||
return new ClassificationServiceImpl(internal, session.getMapper(ClassificationMapper.class),
|
||||
session.getMapper(TaskMapper.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
public JobService getJobService() {
|
||||
SqlSession session = this.sessionManager;
|
||||
return new JobServiceImpl(this, session.getMapper(JobMapper.class));
|
||||
return new JobServiceImpl(internal, session.getMapper(JobMapper.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -168,8 +170,9 @@ public class TaskanaEngineImpl implements TaskanaEngine {
|
|||
return this.taskanaEngineConfiguration;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HistoryEventProducer getHistoryEventProducer() {
|
||||
return this.historyEventProducer;
|
||||
return historyEventProducer;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -233,65 +236,6 @@ public class TaskanaEngineImpl implements TaskanaEngine {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Open the connection to the database. to be called at the begin of each Api call that accesses the database
|
||||
*/
|
||||
void openConnection() {
|
||||
initSqlSession();
|
||||
try {
|
||||
this.sessionManager.getConnection().setSchema(taskanaEngineConfiguration.getSchemaName());
|
||||
} catch (SQLException e) {
|
||||
throw new SystemException(
|
||||
"Method openConnection() could not open a connection to the database. No schema has been created.",
|
||||
e.getCause());
|
||||
}
|
||||
if (mode != ConnectionManagementMode.EXPLICIT) {
|
||||
pushSessionToStack(this.sessionManager);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the SqlSessionManager.
|
||||
*/
|
||||
void initSqlSession() {
|
||||
if (mode == ConnectionManagementMode.EXPLICIT && this.connection == null) {
|
||||
throw new ConnectionNotSetException();
|
||||
} else if (mode != ConnectionManagementMode.EXPLICIT && !this.sessionManager.isManagedSessionStarted()) {
|
||||
this.sessionManager.startManagedSession();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the database connection into the pool. In the case of nested calls, simply pops the latest session from
|
||||
* the session stack. Closes the connection if the session stack is empty. In mode AUTOCOMMIT commits before the
|
||||
* connection is closed. To be called at the end of each Api call that accesses the database
|
||||
*/
|
||||
void returnConnection() {
|
||||
if (this.mode != ConnectionManagementMode.EXPLICIT) {
|
||||
popSessionFromStack();
|
||||
if (getSessionStack().isEmpty()
|
||||
&& this.sessionManager != null && this.sessionManager.isManagedSessionStarted()) {
|
||||
if (this.mode == ConnectionManagementMode.AUTOCOMMIT) {
|
||||
try {
|
||||
this.sessionManager.commit();
|
||||
} catch (Exception e) {
|
||||
throw new AutocommitFailedException(e.getCause());
|
||||
}
|
||||
}
|
||||
this.sessionManager.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* retrieve the SqlSession used by taskana.
|
||||
*
|
||||
* @return the myBatis SqlSession object used by taskana
|
||||
*/
|
||||
SqlSession getSqlSession() {
|
||||
return this.sessionManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether current user is member of any of the specified roles.
|
||||
*
|
||||
|
@ -402,14 +346,66 @@ public class TaskanaEngineImpl implements TaskanaEngine {
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns true if the given domain does exist in the configuration.
|
||||
*
|
||||
* @param domain
|
||||
* the domain specified in the configuration
|
||||
* @return <code>true</code> if the domain exists
|
||||
* Internal Engine for internal operations.
|
||||
*/
|
||||
private class Internal implements TaskanaEngine.Internal {
|
||||
|
||||
@Override
|
||||
public void openConnection() {
|
||||
initSqlSession();
|
||||
try {
|
||||
sessionManager.getConnection().setSchema(taskanaEngineConfiguration.getSchemaName());
|
||||
} catch (SQLException e) {
|
||||
throw new SystemException(
|
||||
"Method openConnection() could not open a connection to the database. No schema has been created.",
|
||||
e.getCause());
|
||||
}
|
||||
if (mode != ConnectionManagementMode.EXPLICIT) {
|
||||
pushSessionToStack(sessionManager);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initSqlSession() {
|
||||
if (mode == ConnectionManagementMode.EXPLICIT && connection == null) {
|
||||
throw new ConnectionNotSetException();
|
||||
} else if (mode != ConnectionManagementMode.EXPLICIT && !sessionManager.isManagedSessionStarted()) {
|
||||
sessionManager.startManagedSession();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void returnConnection() {
|
||||
if (mode != ConnectionManagementMode.EXPLICIT) {
|
||||
popSessionFromStack();
|
||||
if (getSessionStack().isEmpty()
|
||||
&& sessionManager != null && sessionManager.isManagedSessionStarted()) {
|
||||
if (mode == ConnectionManagementMode.AUTOCOMMIT) {
|
||||
try {
|
||||
sessionManager.commit();
|
||||
} catch (Exception e) {
|
||||
throw new AutocommitFailedException(e.getCause());
|
||||
}
|
||||
}
|
||||
sessionManager.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean domainExists(String domain) {
|
||||
return getConfiguration().getDomains().contains(domain);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SqlSession getSqlSession() {
|
||||
return sessionManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskanaEngine getEngine() {
|
||||
return TaskanaEngineImpl.this;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ abstract class TimeIntervalReportBuilderImpl<B extends TimeIntervalReportBuilder
|
|||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(TimeIntervalReportBuilder.class);
|
||||
|
||||
protected TaskanaEngineImpl taskanaEngine;
|
||||
protected TaskanaEngine.Internal taskanaEngine;
|
||||
protected TaskMonitorMapper taskMonitorMapper;
|
||||
protected List<H> columnHeaders;
|
||||
protected boolean inWorkingDays;
|
||||
|
@ -45,8 +45,8 @@ abstract class TimeIntervalReportBuilderImpl<B extends TimeIntervalReportBuilder
|
|||
protected List<String> excludedClassificationIds;
|
||||
protected Map<CustomField, String> customAttributeFilter;
|
||||
|
||||
TimeIntervalReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
|
||||
TimeIntervalReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
this.taskMonitorMapper = taskMonitorMapper;
|
||||
this.columnHeaders = Collections.emptyList();
|
||||
configureDaysToWorkingDaysConverter();
|
||||
|
@ -113,7 +113,7 @@ abstract class TimeIntervalReportBuilderImpl<B extends TimeIntervalReportBuilder
|
|||
throws NotAuthorizedException {
|
||||
LOGGER.debug("entry to listCustomAttributeValuesForCustomAttributeName(customField = {}), this = {}",
|
||||
customField, this);
|
||||
this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR);
|
||||
this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR);
|
||||
try {
|
||||
this.taskanaEngine.openConnection();
|
||||
return taskMonitorMapper.getCustomAttributeValuesForReport(this.workbasketIds,
|
||||
|
@ -133,7 +133,7 @@ abstract class TimeIntervalReportBuilderImpl<B extends TimeIntervalReportBuilder
|
|||
LoggerUtils.listToString(selectedItems), this);
|
||||
}
|
||||
|
||||
this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR);
|
||||
this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR);
|
||||
try {
|
||||
this.taskanaEngine.openConnection();
|
||||
if (this.columnHeaders == null) {
|
||||
|
@ -161,9 +161,10 @@ abstract class TimeIntervalReportBuilderImpl<B extends TimeIntervalReportBuilder
|
|||
protected abstract String determineGroupedBy();
|
||||
|
||||
private void configureDaysToWorkingDaysConverter() {
|
||||
DaysToWorkingDaysConverter.setCustomHolidays(this.taskanaEngine.getConfiguration().getCustomHolidays());
|
||||
DaysToWorkingDaysConverter.setCustomHolidays(
|
||||
this.taskanaEngine.getEngine().getConfiguration().getCustomHolidays());
|
||||
DaysToWorkingDaysConverter.setGermanPublicHolidaysEnabled(
|
||||
this.taskanaEngine.getConfiguration().isGermanPublicHolidaysEnabled());
|
||||
this.taskanaEngine.getEngine().getConfiguration().isGermanPublicHolidaysEnabled());
|
||||
}
|
||||
|
||||
private List<SelectedItem> convertWorkingDaysToDays(List<SelectedItem> selectedItems,
|
||||
|
|
|
@ -31,7 +31,7 @@ public class TimestampReportBuilderImpl extends
|
|||
private static final Logger LOGGER = LoggerFactory.getLogger(TimestampReport.Builder.class);
|
||||
private List<Timestamp> status = Arrays.asList(Timestamp.CREATED, Timestamp.COMPLETED);
|
||||
|
||||
TimestampReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
TimestampReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
super(taskanaEngine, taskMonitorMapper);
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ public class TimestampReportBuilderImpl extends
|
|||
@Override
|
||||
public TimestampReport buildReport() throws NotAuthorizedException, InvalidArgumentException {
|
||||
LOGGER.debug("entry to buildDetailedReport(), this = {}", this);
|
||||
this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
try {
|
||||
this.taskanaEngine.openConnection();
|
||||
TimestampReport report = new TimestampReport(this.columnHeaders);
|
||||
|
|
|
@ -33,12 +33,12 @@ public class WorkbasketAccessItemQueryImpl implements WorkbasketAccessItemQuery
|
|||
private String[] workbasketKeyLike;
|
||||
private String[] idIn;
|
||||
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngine;
|
||||
private List<String> orderBy;
|
||||
private List<String> orderColumns;
|
||||
|
||||
WorkbasketAccessItemQueryImpl(TaskanaEngine taskanaEngine) {
|
||||
this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
|
||||
WorkbasketAccessItemQueryImpl(TaskanaEngine.Internal taskanaEngine) {
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
orderBy = new ArrayList<>();
|
||||
orderColumns = new ArrayList<>();
|
||||
}
|
||||
|
@ -197,7 +197,8 @@ public class WorkbasketAccessItemQueryImpl implements WorkbasketAccessItemQuery
|
|||
}
|
||||
|
||||
private WorkbasketAccessItemQuery addOrderCriteria(String colName, SortDirection sortDirection) {
|
||||
String orderByDirection = " " + (sortDirection == null ? SortDirection.ASCENDING.toString() : sortDirection.toString());
|
||||
String orderByDirection =
|
||||
" " + (sortDirection == null ? SortDirection.ASCENDING.toString() : sortDirection.toString());
|
||||
orderBy.add(colName + orderByDirection);
|
||||
orderColumns.add(colName);
|
||||
return this;
|
||||
|
|
|
@ -70,7 +70,7 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
|
|||
private String[] orgLevel4Like;
|
||||
private boolean markedForDeletion;
|
||||
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngine;
|
||||
private List<String> orderBy;
|
||||
private List<String> orderColumns;
|
||||
private boolean joinWithAccessList;
|
||||
|
@ -78,8 +78,8 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
|
|||
private boolean usedToAugmentTasks;
|
||||
private boolean callerRolesAndAccessIdsAlreadyHandled;
|
||||
|
||||
WorkbasketQueryImpl(TaskanaEngine taskanaEngine) {
|
||||
this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
|
||||
WorkbasketQueryImpl(TaskanaEngine.Internal taskanaEngine) {
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
this.orderBy = new ArrayList<>();
|
||||
this.orderColumns = new ArrayList<>();
|
||||
this.callerRolesAndAccessIdsAlreadyHandled = false;
|
||||
|
@ -354,7 +354,7 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
|
|||
@Override
|
||||
public WorkbasketQuery accessIdsHavePermission(WorkbasketPermission permission, String... accessIds)
|
||||
throws InvalidArgumentException, NotAuthorizedException {
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN);
|
||||
// Checking pre-conditions
|
||||
if (permission == null) {
|
||||
throw new InvalidArgumentException("Permission can´t be null.");
|
||||
|
@ -670,10 +670,10 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
|
|||
// (f,t) -> cannot happen, cannot be matched to meaningful query
|
||||
joinWithAccessList = true;
|
||||
checkReadPermission = true;
|
||||
if (taskanaEngine.isUserInRole(TaskanaRole.ADMIN) && accessId == null) {
|
||||
if (taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN) && accessId == null) {
|
||||
checkReadPermission = false;
|
||||
joinWithAccessList = false;
|
||||
} else if (taskanaEngine.isUserInRole(TaskanaRole.BUSINESS_ADMIN) && !usedToAugmentTasks) {
|
||||
} else if (taskanaEngine.getEngine().isUserInRole(TaskanaRole.BUSINESS_ADMIN) && !usedToAugmentTasks) {
|
||||
checkReadPermission = false;
|
||||
if (accessId == null && permission == null) {
|
||||
joinWithAccessList = false;
|
||||
|
|
|
@ -26,7 +26,7 @@ public class WorkbasketReportBuilderImpl
|
|||
private static final Logger LOGGER = LoggerFactory.getLogger(WorkbasketReportBuilderImpl.class);
|
||||
private List<CombinedClassificationFilter> combinedClassificationFilter;
|
||||
|
||||
WorkbasketReportBuilderImpl(TaskanaEngine taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
WorkbasketReportBuilderImpl(TaskanaEngine.Internal taskanaEngine, TaskMonitorMapper taskMonitorMapper) {
|
||||
super(taskanaEngine, taskMonitorMapper);
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,7 @@ public class WorkbasketReportBuilderImpl
|
|||
@Override
|
||||
public WorkbasketReport buildReport() throws InvalidArgumentException, NotAuthorizedException {
|
||||
LOGGER.debug("entry to buildReport(), this = {}", this);
|
||||
this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
try {
|
||||
this.taskanaEngine.openConnection();
|
||||
WorkbasketReport report = new WorkbasketReport(this.columnHeaders);
|
||||
|
@ -62,7 +62,7 @@ public class WorkbasketReportBuilderImpl
|
|||
@Override
|
||||
public WorkbasketReport buildPlannedDateBasedReport() throws NotAuthorizedException, InvalidArgumentException {
|
||||
LOGGER.debug("entry to buildPlannedDateReport(), this = {}", this);
|
||||
this.taskanaEngine.checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
this.taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
try {
|
||||
this.taskanaEngine.openConnection();
|
||||
WorkbasketReport report = new WorkbasketReport(this.columnHeaders);
|
||||
|
|
|
@ -43,14 +43,14 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
private static final Logger LOGGER = LoggerFactory.getLogger(WorkbasketServiceImpl.class);
|
||||
private static final String ID_PREFIX_WORKBASKET = "WBI";
|
||||
private static final String ID_PREFIX_WORKBASKET_AUTHORIZATION = "WAI";
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngine;
|
||||
private WorkbasketMapper workbasketMapper;
|
||||
private DistributionTargetMapper distributionTargetMapper;
|
||||
private WorkbasketAccessMapper workbasketAccessMapper;
|
||||
|
||||
WorkbasketServiceImpl(TaskanaEngine taskanaEngine, WorkbasketMapper workbasketMapper,
|
||||
WorkbasketServiceImpl(TaskanaEngine.Internal taskanaEngine, WorkbasketMapper workbasketMapper,
|
||||
DistributionTargetMapper distributionTargetMapper, WorkbasketAccessMapper workbasketAccessMapper) {
|
||||
this.taskanaEngine = (TaskanaEngineImpl) taskanaEngine;
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
this.workbasketMapper = workbasketMapper;
|
||||
this.distributionTargetMapper = distributionTargetMapper;
|
||||
this.workbasketAccessMapper = workbasketAccessMapper;
|
||||
|
@ -68,7 +68,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
throw new WorkbasketNotFoundException(workbasketId,
|
||||
"Workbasket with id " + workbasketId + " was not found.");
|
||||
}
|
||||
if (!taskanaEngine.isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
|
||||
if (!taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
|
||||
this.checkAuthorization(workbasketId, WorkbasketPermission.READ);
|
||||
}
|
||||
return result;
|
||||
|
@ -90,7 +90,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
throw new WorkbasketNotFoundException(workbasketKey, domain,
|
||||
"Workbasket with key " + workbasketKey + " and domain " + domain + " was not found.");
|
||||
}
|
||||
if (!taskanaEngine.isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
|
||||
if (!taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
|
||||
this.checkAuthorization(workbasketKey, domain, WorkbasketPermission.READ);
|
||||
}
|
||||
return result;
|
||||
|
@ -104,8 +104,8 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
public Workbasket createWorkbasket(Workbasket newWorkbasket)
|
||||
throws InvalidWorkbasketException, NotAuthorizedException, WorkbasketAlreadyExistException,
|
||||
DomainNotFoundException {
|
||||
LOGGER.debug("entry to createWorkbasket(workbasket)", newWorkbasket);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
LOGGER.debug("entry to createtWorkbasket(workbasket)", newWorkbasket);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
|
||||
WorkbasketImpl workbasket = (WorkbasketImpl) newWorkbasket;
|
||||
try {
|
||||
|
@ -137,7 +137,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
public Workbasket updateWorkbasket(Workbasket workbasketToUpdate)
|
||||
throws NotAuthorizedException {
|
||||
LOGGER.debug("entry to updateWorkbasket(workbasket)", workbasketToUpdate);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
|
||||
WorkbasketImpl workbasket = (WorkbasketImpl) workbasketToUpdate;
|
||||
try {
|
||||
|
@ -168,7 +168,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
public WorkbasketAccessItem createWorkbasketAccessItem(WorkbasketAccessItem workbasketAccessItem)
|
||||
throws InvalidArgumentException, NotAuthorizedException, WorkbasketNotFoundException {
|
||||
LOGGER.debug("entry to createWorkbasketAccessItemn(workbasketAccessItem = {})", workbasketAccessItem);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
WorkbasketAccessItemImpl accessItem = (WorkbasketAccessItemImpl) workbasketAccessItem;
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
|
@ -199,7 +199,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
public void setWorkbasketAccessItems(String workbasketId, List<WorkbasketAccessItem> wbAccessItems)
|
||||
throws InvalidArgumentException, NotAuthorizedException {
|
||||
LOGGER.debug("entry to setWorkbasketAccessItems(workbasketAccessItems = {})", wbAccessItems.toString());
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
List<WorkbasketAccessItemImpl> newItems = new ArrayList<>();
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
|
@ -240,7 +240,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
@Override
|
||||
public void deleteWorkbasketAccessItem(String accessItemId) throws NotAuthorizedException {
|
||||
LOGGER.debug("entry to deleteWorkbasketAccessItem(id = {})", accessItemId);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
workbasketAccessMapper.delete(accessItemId);
|
||||
|
@ -254,7 +254,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
@Override
|
||||
public void deleteWorkbasketAccessItemsForAccessId(String accessId) throws NotAuthorizedException {
|
||||
LOGGER.debug("entry to deleteWorkbasketAccessItemsForAccessId(accessId = {})", accessId);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
workbasketAccessMapper.deleteAccessItemsForAccessId(accessId);
|
||||
|
@ -350,12 +350,12 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
private boolean skipAuthorizationCheck() {
|
||||
|
||||
// Skip permission check is security is not enabled
|
||||
if (!taskanaEngine.getConfiguration().isSecurityEnabled()) {
|
||||
if (!taskanaEngine.getEngine().getConfiguration().isSecurityEnabled()) {
|
||||
LOGGER.debug("Skipping permissions check since security is disabled.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (taskanaEngine.isUserInRole(TaskanaRole.ADMIN)) {
|
||||
if (taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN)) {
|
||||
LOGGER.debug("Skipping permissions check since user is in role ADMIN.");
|
||||
return true;
|
||||
}
|
||||
|
@ -367,7 +367,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
public WorkbasketAccessItem updateWorkbasketAccessItem(WorkbasketAccessItem workbasketAccessItem)
|
||||
throws InvalidArgumentException, NotAuthorizedException {
|
||||
LOGGER.debug("entry to updateWorkbasketAccessItem(workbasketAccessItem = {}", workbasketAccessItem);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
WorkbasketAccessItemImpl accessItem = (WorkbasketAccessItemImpl) workbasketAccessItem;
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
|
@ -394,7 +394,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
@Override
|
||||
public List<WorkbasketAccessItem> getWorkbasketAccessItems(String workbasketId) throws NotAuthorizedException {
|
||||
LOGGER.debug("entry to getWorkbasketAccessItems(workbasketId = {})", workbasketId);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
List<WorkbasketAccessItem> result = new ArrayList<>();
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
|
@ -521,7 +521,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
taskanaEngine.openConnection();
|
||||
// check that source workbasket exists
|
||||
getWorkbasket(workbasketId);
|
||||
if (!taskanaEngine.isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
|
||||
if (!taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
|
||||
checkAuthorization(workbasketId, WorkbasketPermission.READ);
|
||||
}
|
||||
List<WorkbasketSummaryImpl> distributionTargets = workbasketMapper
|
||||
|
@ -547,7 +547,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
taskanaEngine.openConnection();
|
||||
// check that source workbasket exists
|
||||
Workbasket workbasket = getWorkbasket(workbasketKey, domain);
|
||||
if (!taskanaEngine.isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
|
||||
if (!taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
|
||||
checkAuthorization(workbasket.getId(), WorkbasketPermission.READ);
|
||||
}
|
||||
List<WorkbasketSummaryImpl> distributionTargets = workbasketMapper
|
||||
|
@ -574,7 +574,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
taskanaEngine.openConnection();
|
||||
// check that source workbasket exists
|
||||
getWorkbasket(workbasketId);
|
||||
if (!taskanaEngine.isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
|
||||
if (!taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
|
||||
checkAuthorization(workbasketId, WorkbasketPermission.READ);
|
||||
}
|
||||
List<WorkbasketSummaryImpl> distributionSources = workbasketMapper
|
||||
|
@ -600,7 +600,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
taskanaEngine.openConnection();
|
||||
// check that source workbasket exists
|
||||
Workbasket workbasket = getWorkbasket(workbasketKey, domain);
|
||||
if (!taskanaEngine.isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
|
||||
if (!taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN)) {
|
||||
checkAuthorization(workbasket.getId(), WorkbasketPermission.READ);
|
||||
}
|
||||
List<WorkbasketSummaryImpl> distributionSources = workbasketMapper
|
||||
|
@ -625,7 +625,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
sourceWorkbasketId,
|
||||
LoggerUtils.listToString(targetWorkbasketIds));
|
||||
}
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
// check existence of source workbasket
|
||||
|
@ -660,7 +660,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
throws NotAuthorizedException, WorkbasketNotFoundException {
|
||||
LOGGER.debug("entry to addDistributionTarget(sourceWorkbasketId = {}, targetWorkbasketId = {})",
|
||||
sourceWorkbasketId, targetWorkbasketId);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
// check existence of source workbasket
|
||||
|
@ -693,7 +693,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
throws NotAuthorizedException {
|
||||
LOGGER.debug("entry to removeDistributionTarget(sourceWorkbasketId = {}, targetWorkbasketId = {})",
|
||||
sourceWorkbasketId, targetWorkbasketId);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
// don't check existence of source / target workbasket to enable cleanup even if the db is corrupted
|
||||
|
@ -729,7 +729,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
public boolean deleteWorkbasket(String workbasketId)
|
||||
throws NotAuthorizedException, WorkbasketNotFoundException, WorkbasketInUseException, InvalidArgumentException {
|
||||
LOGGER.debug("entry to deleteWorkbasket(workbasketId = {})", workbasketId);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
|
@ -740,7 +740,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
// check if the workbasket does exist and is empty (Task)
|
||||
this.getWorkbasket(workbasketId);
|
||||
|
||||
long numTasksNotCompletedInWorkbasket = taskanaEngine.getTaskService()
|
||||
long numTasksNotCompletedInWorkbasket = taskanaEngine.getEngine().getTaskService()
|
||||
.createTaskQuery()
|
||||
.workbasketIdIn(workbasketId)
|
||||
.stateNotIn(
|
||||
|
@ -752,7 +752,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
"Workbasket " + workbasketId + " contains non-completed tasks and can´t be marked for deletion.");
|
||||
}
|
||||
|
||||
long numTasksInWorkbasket = taskanaEngine.getTaskService()
|
||||
long numTasksInWorkbasket = taskanaEngine.getEngine().getTaskService()
|
||||
.createTaskQuery()
|
||||
.workbasketIdIn(workbasketId)
|
||||
.count();
|
||||
|
@ -774,7 +774,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
private void markWorkbasketForDeletion(String workbasketId)
|
||||
throws NotAuthorizedException, InvalidArgumentException {
|
||||
LOGGER.debug("entry to markWorkbasketForDeletion(workbasketId = {})", workbasketId);
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
|
||||
|
@ -797,7 +797,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
LOGGER.debug("entry to deleteWorkbaskets(workbasketId = {})", LoggerUtils.listToString(workbasketsIds));
|
||||
}
|
||||
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.BUSINESS_ADMIN, TaskanaRole.ADMIN);
|
||||
|
||||
try {
|
||||
taskanaEngine.openConnection();
|
||||
|
@ -834,7 +834,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
|||
|
||||
@Override
|
||||
public WorkbasketAccessItemQuery createWorkbasketAccessItemQuery() throws NotAuthorizedException {
|
||||
taskanaEngine.checkRoleMembership(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN);
|
||||
taskanaEngine.getEngine().checkRoleMembership(TaskanaRole.ADMIN, TaskanaRole.BUSINESS_ADMIN);
|
||||
return new WorkbasketAccessItemQueryImpl(this.taskanaEngine);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
package acceptance.history;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import acceptance.AbstractAccTest;
|
||||
import pro.taskana.history.HistoryEventProducer;
|
||||
import pro.taskana.impl.TaskanaEngineImpl;
|
||||
|
||||
/**
|
||||
* Acceptance test for historyEventProducer class.
|
||||
|
@ -15,7 +14,7 @@ public class TaskEventProducerTest extends AbstractAccTest {
|
|||
|
||||
@Test
|
||||
public void testHistoryEventProducerIsNotEnabled() {
|
||||
HistoryEventProducer historyEventProducer = ((TaskanaEngineImpl) taskanaEngine).getHistoryEventProducer();
|
||||
assertEquals(false, historyEventProducer.isEnabled());
|
||||
HistoryEventProducer historyEventProducer = taskanaEngine.getHistoryEventProducer();
|
||||
assertFalse(historyEventProducer.isEnabled());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,7 +33,6 @@ import pro.taskana.exceptions.TaskAlreadyExistException;
|
|||
import pro.taskana.exceptions.TaskNotFoundException;
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.impl.DaysToWorkingDaysConverter;
|
||||
import pro.taskana.impl.TaskanaEngineImpl;
|
||||
import pro.taskana.impl.TaskanaEngineProxyForTest;
|
||||
import pro.taskana.impl.report.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.mappings.AttachmentMapper;
|
||||
|
@ -63,7 +62,8 @@ public class CreateTaskAccTest extends AbstractAccTest {
|
|||
TaskService taskService = taskanaEngine.getTaskService();
|
||||
Task newTask = taskService.newTask("USER_1_1", "DOMAIN_A");
|
||||
newTask.setClassificationKey("T2100");
|
||||
ObjectReference objectReference = createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", "1234567");
|
||||
ObjectReference objectReference = createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR",
|
||||
"1234567");
|
||||
newTask.setPrimaryObjRef(objectReference);
|
||||
newTask.setOwner("user_1_1");
|
||||
Task createdTask = taskService.createTask(newTask);
|
||||
|
@ -90,7 +90,7 @@ public class CreateTaskAccTest extends AbstractAccTest {
|
|||
|
||||
@WithAccessId(
|
||||
userName = "user_1_1",
|
||||
groupNames = { "group_1" })
|
||||
groupNames = {"group_1"})
|
||||
@Test
|
||||
public void testCreateTaskWithPlanned()
|
||||
throws NotAuthorizedException, InvalidArgumentException,
|
||||
|
@ -157,7 +157,8 @@ public class CreateTaskAccTest extends AbstractAccTest {
|
|||
@Test
|
||||
public void testCreateSimpleTaskWithCustomAttributes()
|
||||
throws NotAuthorizedException, InvalidArgumentException, ClassificationNotFoundException,
|
||||
WorkbasketNotFoundException, TaskAlreadyExistException, TaskNotFoundException {
|
||||
WorkbasketNotFoundException, TaskAlreadyExistException, TaskNotFoundException, NoSuchFieldException,
|
||||
IllegalAccessException {
|
||||
|
||||
TaskService taskService = taskanaEngine.getTaskService();
|
||||
Task newTask = taskService.newTask("USER_1_1", "DOMAIN_A");
|
||||
|
@ -183,7 +184,7 @@ public class CreateTaskAccTest extends AbstractAccTest {
|
|||
assertEquals(false, createdTask.isRead());
|
||||
assertEquals(false, createdTask.isTransferred());
|
||||
// verify that the database content is as expected
|
||||
TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest((TaskanaEngineImpl) taskanaEngine);
|
||||
TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest(taskanaEngine);
|
||||
try {
|
||||
SqlSession session = engineProxy.getSqlSession();
|
||||
Configuration config = session.getConfiguration();
|
||||
|
@ -224,7 +225,8 @@ public class CreateTaskAccTest extends AbstractAccTest {
|
|||
@Test
|
||||
public void testCreateExternalTaskWithAttachment()
|
||||
throws NotAuthorizedException, InvalidArgumentException, ClassificationNotFoundException,
|
||||
WorkbasketNotFoundException, TaskAlreadyExistException, TaskNotFoundException {
|
||||
WorkbasketNotFoundException, TaskAlreadyExistException, TaskNotFoundException, NoSuchFieldException,
|
||||
IllegalAccessException {
|
||||
|
||||
TaskService taskService = taskanaEngine.getTaskService();
|
||||
Task newTask = taskService.newTask("USER_1_1", "DOMAIN_A");
|
||||
|
@ -240,7 +242,7 @@ public class CreateTaskAccTest extends AbstractAccTest {
|
|||
assertThat(createdTask.getCreator(), equalTo(CurrentUserContext.getUserid()));
|
||||
|
||||
// verify that the database content is as expected
|
||||
TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest((TaskanaEngineImpl) taskanaEngine);
|
||||
TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest(taskanaEngine);
|
||||
try {
|
||||
SqlSession session = engineProxy.getSqlSession();
|
||||
AttachmentMapper mapper = session.getMapper(AttachmentMapper.class);
|
||||
|
|
|
@ -5,13 +5,12 @@ 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 static pro.taskana.TaskQueryColumnName.A_CHANNEL;
|
||||
import static pro.taskana.TaskQueryColumnName.A_CLASSIFICATION_ID;
|
||||
import static pro.taskana.TaskQueryColumnName.A_REF_VALUE;
|
||||
import static pro.taskana.TaskQueryColumnName.CLASSIFICATION_KEY;
|
||||
import static pro.taskana.TaskQueryColumnName.OWNER;
|
||||
import static pro.taskana.TaskQueryColumnName.STATE;
|
||||
import static pro.taskana.TaskQueryColumnName.A_CHANNEL;
|
||||
import static pro.taskana.TaskQueryColumnName.A_REF_VALUE;
|
||||
import static pro.taskana.TaskQueryColumnName.A_CLASSIFICATION_ID;
|
||||
import static pro.taskana.TaskQueryColumnName.CLASSIFICATION_KEY;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -43,7 +42,6 @@ import pro.taskana.exceptions.TaskAlreadyExistException;
|
|||
import pro.taskana.exceptions.TaskNotFoundException;
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.impl.TaskImpl;
|
||||
import pro.taskana.impl.TaskanaEngineImpl;
|
||||
import pro.taskana.impl.TaskanaEngineProxyForTest;
|
||||
import pro.taskana.mappings.TaskTestMapper;
|
||||
import pro.taskana.security.JAASRunner;
|
||||
|
@ -824,7 +822,7 @@ public class QueryTasksAccTest extends AbstractAccTest {
|
|||
@Test
|
||||
public void testQueryTaskByCustomAttributes()
|
||||
throws NotAuthorizedException, InvalidArgumentException, ClassificationNotFoundException,
|
||||
WorkbasketNotFoundException, TaskAlreadyExistException {
|
||||
WorkbasketNotFoundException, TaskAlreadyExistException, NoSuchFieldException, IllegalAccessException {
|
||||
|
||||
TaskService taskService = taskanaEngine.getTaskService();
|
||||
Task newTask = taskService.newTask("USER_1_1", "DOMAIN_A");
|
||||
|
@ -836,7 +834,7 @@ public class QueryTasksAccTest extends AbstractAccTest {
|
|||
|
||||
assertNotNull(createdTask);
|
||||
// query the task by custom attributes
|
||||
TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest((TaskanaEngineImpl) taskanaEngine);
|
||||
TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest(taskanaEngine);
|
||||
try {
|
||||
SqlSession session = engineProxy.getSqlSession();
|
||||
Configuration config = session.getConfiguration();
|
||||
|
@ -1526,5 +1524,4 @@ public class QueryTasksAccTest extends AbstractAccTest {
|
|||
assertThat(result2.size(), equalTo(10));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -21,12 +21,12 @@ import org.junit.Test;
|
|||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.CustomField;
|
||||
import pro.taskana.TaskState;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
|
@ -45,7 +45,10 @@ public class CategoryReportBuilderImplTest {
|
|||
private TaskMonitorServiceImpl cut;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineImpl taskanaEngineImplMock;
|
||||
private TaskanaEngine.Internal taskanaEngineInternalMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngine taskanaEngineMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
|
@ -56,9 +59,8 @@ public class CategoryReportBuilderImplTest {
|
|||
@Before
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
Mockito.doNothing().when(taskanaEngineImplMock).openConnection();
|
||||
Mockito.doNothing().when(taskanaEngineImplMock).returnConnection();
|
||||
when(taskanaEngineImplMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
|
||||
when(taskanaEngineMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
|
||||
when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
|
||||
when(taskanaEngineConfiguration.isGermanPublicHolidaysEnabled()).thenReturn(true);
|
||||
when(taskanaEngineConfiguration.getCustomHolidays()).thenReturn(null);
|
||||
}
|
||||
|
@ -92,15 +94,17 @@ public class CategoryReportBuilderImplTest {
|
|||
.customAttributeFilterIn(customAttributeFilter)
|
||||
.buildReport();
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfCategories(any(), any(), any(), any(), any(), any(),
|
||||
any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(actualResult.getRow("EXTERN").getTotalValue(), 1);
|
||||
|
@ -142,15 +146,17 @@ public class CategoryReportBuilderImplTest {
|
|||
.withColumnHeaders(columnHeaders)
|
||||
.buildReport();
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfCategories(any(), any(), any(), any(), any(), any(),
|
||||
any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(actualResult.getRow("EXTERN").getTotalValue(), 1);
|
||||
|
@ -194,15 +200,17 @@ public class CategoryReportBuilderImplTest {
|
|||
.withColumnHeaders(columnHeaders)
|
||||
.listTaskIdsForSelectedItems(selectedItems);
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1))
|
||||
.getTaskIdsForSelectedItems(any(), any(), any(), any(), any(), any(), any(), any(), any(), eq(false));
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(expectedResult, actualResult);
|
||||
|
@ -253,15 +261,17 @@ public class CategoryReportBuilderImplTest {
|
|||
.withColumnHeaders(columnHeaders)
|
||||
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1))
|
||||
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(expectedResult, actualResult);
|
||||
|
|
|
@ -8,13 +8,14 @@ import java.util.List;
|
|||
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.ClassificationSummary;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
|
||||
/**
|
||||
* Test for ClassificationQueryImpl.
|
||||
|
@ -24,22 +25,18 @@ import pro.taskana.ClassificationSummary;
|
|||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class ClassificationQueryImplTest {
|
||||
|
||||
@InjectMocks
|
||||
private ClassificationQueryImpl classificationQueryImpl;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngineInternal;
|
||||
|
||||
@Mock
|
||||
private SqlSession sqlSession;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
classificationQueryImpl = new ClassificationQueryImpl(taskanaEngine);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void should_ReturnList_when_BuilderIsUsed() {
|
||||
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
|
||||
when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.selectList(any(), any())).thenReturn(new ArrayList<>());
|
||||
|
||||
List<ClassificationSummary> result = classificationQueryImpl.nameIn("test", "asd", "blubber")
|
||||
|
@ -52,7 +49,7 @@ public class ClassificationQueryImplTest {
|
|||
|
||||
@Test
|
||||
public void should_ReturnListWithOffset_when_BuilderIsUsed() {
|
||||
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
|
||||
when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.selectList(any(), any(), any())).thenReturn(new ArrayList<>());
|
||||
|
||||
List<ClassificationSummary> result = classificationQueryImpl.nameIn("test", "asd", "blubber")
|
||||
|
@ -65,7 +62,7 @@ public class ClassificationQueryImplTest {
|
|||
|
||||
@Test
|
||||
public void should_ReturnOneItem_when_BuilderIsUsed() {
|
||||
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
|
||||
when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.selectOne(any(), any())).thenReturn(new ClassificationSummaryImpl());
|
||||
|
||||
ClassificationSummary result = classificationQueryImpl.nameIn("test", "asd", "blubber")
|
||||
|
|
|
@ -21,12 +21,12 @@ import org.junit.Test;
|
|||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.CustomField;
|
||||
import pro.taskana.TaskState;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
|
@ -48,7 +48,10 @@ public class ClassificationReportBuilderImplTest {
|
|||
private TaskMonitorServiceImpl cut;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineImpl taskanaEngineImplMock;
|
||||
private TaskanaEngine.Internal taskanaEngineInternalMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngine taskanaEngineMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
|
@ -59,9 +62,8 @@ public class ClassificationReportBuilderImplTest {
|
|||
@Before
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
Mockito.doNothing().when(taskanaEngineImplMock).openConnection();
|
||||
Mockito.doNothing().when(taskanaEngineImplMock).returnConnection();
|
||||
when(taskanaEngineImplMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
|
||||
when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
|
||||
when(taskanaEngineMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
|
||||
when(taskanaEngineConfiguration.isGermanPublicHolidaysEnabled()).thenReturn(true);
|
||||
when(taskanaEngineConfiguration.getCustomHolidays()).thenReturn(null);
|
||||
}
|
||||
|
@ -95,15 +97,17 @@ public class ClassificationReportBuilderImplTest {
|
|||
.customAttributeFilterIn(customAttributeFilter)
|
||||
.buildReport();
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfClassifications(any(), any(), any(), any(), any(), any(),
|
||||
any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(
|
||||
|
@ -146,15 +150,18 @@ public class ClassificationReportBuilderImplTest {
|
|||
.withColumnHeaders(columnHeaders)
|
||||
.buildReport();
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfClassifications(any(), any(), any(), any(), any(), any(),
|
||||
any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(
|
||||
|
@ -194,16 +201,18 @@ public class ClassificationReportBuilderImplTest {
|
|||
.customAttributeFilterIn(customAttributeFilter)
|
||||
.buildDetailedReport();
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfDetailedClassifications(any(), any(), any(), any(), any(),
|
||||
any(),
|
||||
any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
FoldableRow<DetailedMonitorQueryItem> line = actualResult.getRow("CLI:000000000000000000000000000000000001");
|
||||
assertNotNull(actualResult);
|
||||
|
@ -247,16 +256,18 @@ public class ClassificationReportBuilderImplTest {
|
|||
.withColumnHeaders(columnHeaders)
|
||||
.buildDetailedReport();
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfDetailedClassifications(any(), any(), any(), any(), any(),
|
||||
any(),
|
||||
any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
FoldableRow<DetailedMonitorQueryItem> line = actualResult.getRow("CLI:000000000000000000000000000000000001");
|
||||
assertNotNull(actualResult);
|
||||
|
@ -303,15 +314,17 @@ public class ClassificationReportBuilderImplTest {
|
|||
.withColumnHeaders(columnHeaders)
|
||||
.listTaskIdsForSelectedItems(selectedItems);
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1))
|
||||
.getTaskIdsForSelectedItems(any(), any(), any(), any(), any(), any(), any(), any(), any(), eq(false));
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(expectedResult, actualResult);
|
||||
|
@ -364,15 +377,17 @@ public class ClassificationReportBuilderImplTest {
|
|||
.withColumnHeaders(columnHeaders)
|
||||
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1))
|
||||
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(expectedResult, actualResult);
|
||||
|
@ -382,7 +397,7 @@ public class ClassificationReportBuilderImplTest {
|
|||
public void testListCustomAttributeValuesForCustomAttributeNameIsEmptyResult()
|
||||
throws NotAuthorizedException {
|
||||
List<String> result = cut.createClassificationReportBuilder()
|
||||
.workbasketIdIn(Arrays.asList("DieGibtsGarantiertNed"))
|
||||
.workbasketIdIn(Collections.singletonList("DieGibtsGarantiertNed"))
|
||||
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_10);
|
||||
assertNotNull(result);
|
||||
}
|
||||
|
|
|
@ -2,13 +2,9 @@ package pro.taskana.impl;
|
|||
|
||||
import static junit.framework.TestCase.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
@ -18,14 +14,12 @@ import org.mockito.Spy;
|
|||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.Classification;
|
||||
import pro.taskana.JobService;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.exceptions.ClassificationAlreadyExistException;
|
||||
import pro.taskana.exceptions.DomainNotFoundException;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.jobs.ScheduledJob;
|
||||
import pro.taskana.mappings.ClassificationMapper;
|
||||
import pro.taskana.mappings.JobMapper;
|
||||
|
||||
/**
|
||||
* Unit Test for ClassificationServiceImpl.
|
||||
|
@ -41,24 +35,22 @@ public class ClassificationServiceImplTest {
|
|||
@Mock
|
||||
private ClassificationMapper classificationMapperMock;
|
||||
@Mock
|
||||
private TaskanaEngineImpl taskanaEngineImplMock;
|
||||
private TaskanaEngine taskanaEngineMock;
|
||||
@Mock
|
||||
private TaskanaEngine.Internal taskanaEngineInternalMock;
|
||||
@Mock
|
||||
private ClassificationQueryImpl classificationQueryImplMock;
|
||||
@Mock
|
||||
private SqlSession sqlSessionMock;
|
||||
@Mock
|
||||
private JobService jobServiceMock;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
doNothing().when(taskanaEngineImplMock).openConnection();
|
||||
doNothing().when(taskanaEngineImplMock).returnConnection();
|
||||
when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateClassificationQuery() {
|
||||
cutSpy.createClassificationQuery();
|
||||
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineImplMock, classificationQueryImplMock);
|
||||
verifyNoMoreInteractions(classificationMapperMock, taskanaEngineInternalMock, taskanaEngineMock,
|
||||
classificationQueryImplMock);
|
||||
}
|
||||
|
||||
@Test(expected = InvalidArgumentException.class)
|
||||
|
@ -67,7 +59,7 @@ public class ClassificationServiceImplTest {
|
|||
NotAuthorizedException, ClassificationAlreadyExistException {
|
||||
try {
|
||||
Classification classification = createDummyClassification();
|
||||
when(taskanaEngineImplMock.domainExists(any())).thenReturn(true);
|
||||
when(taskanaEngineInternalMock.domainExists(any())).thenReturn(true);
|
||||
cutSpy.createClassification(classification);
|
||||
} catch (InvalidArgumentException e) {
|
||||
assertEquals(e.getMessage(), "ClassificationId should be null on creation");
|
||||
|
@ -93,29 +85,4 @@ public class ClassificationServiceImplTest {
|
|||
return classificationImpl;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is the mock of a jobRunner.
|
||||
*/
|
||||
private class JobRunnerMock implements JobMapper {
|
||||
|
||||
@Override
|
||||
public void insertJob(ScheduledJob job) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ScheduledJob> findJobsToRun() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(ScheduledJob job) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(ScheduledJob job) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,12 +20,12 @@ import org.junit.Test;
|
|||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.CustomField;
|
||||
import pro.taskana.TaskState;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
|
@ -44,7 +44,10 @@ public class CustomFieldValueReportBuilderImplTest {
|
|||
private TaskMonitorServiceImpl cut;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineImpl taskanaEngineImplMock;
|
||||
private TaskanaEngine.Internal taskanaEngineInternalMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngine taskanaEngineMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
|
@ -55,9 +58,8 @@ public class CustomFieldValueReportBuilderImplTest {
|
|||
@Before
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
Mockito.doNothing().when(taskanaEngineImplMock).openConnection();
|
||||
Mockito.doNothing().when(taskanaEngineImplMock).returnConnection();
|
||||
when(taskanaEngineImplMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
|
||||
when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
|
||||
when(taskanaEngineMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
|
||||
when(taskanaEngineConfiguration.isGermanPublicHolidaysEnabled()).thenReturn(true);
|
||||
when(taskanaEngineConfiguration.getCustomHolidays()).thenReturn(null);
|
||||
}
|
||||
|
@ -92,16 +94,18 @@ public class CustomFieldValueReportBuilderImplTest {
|
|||
.customAttributeFilterIn(customAttributeFilter)
|
||||
.buildReport();
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfCustomFieldValues(any(), any(), any(), any(), any(),
|
||||
any(), any(),
|
||||
any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(actualResult.getRow("Geschaeftsstelle A").getTotalValue(), 1);
|
||||
|
@ -143,15 +147,17 @@ public class CustomFieldValueReportBuilderImplTest {
|
|||
.withColumnHeaders(columnHeaders)
|
||||
.buildReport();
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1))
|
||||
.getTaskCountOfCustomFieldValues(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(actualResult.getRow("Geschaeftsstelle A").getTotalValue(), 1);
|
||||
|
@ -195,15 +201,16 @@ public class CustomFieldValueReportBuilderImplTest {
|
|||
.withColumnHeaders(columnHeaders)
|
||||
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1))
|
||||
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(expectedResult, actualResult);
|
||||
|
|
|
@ -15,6 +15,7 @@ import org.mockito.Mock;
|
|||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.ObjectReference;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
|
||||
/**
|
||||
* Test for ObjectReferenceQueryImpl.
|
||||
|
@ -27,7 +28,7 @@ public class ObjectReferenceQueryImplTest {
|
|||
ObjectReferenceQueryImpl objectReferenceQueryImpl;
|
||||
|
||||
@Mock
|
||||
TaskanaEngineImpl taskanaEngine;
|
||||
TaskanaEngine.Internal taskanaEngine;
|
||||
|
||||
@Mock
|
||||
SqlSession sqlSession;
|
||||
|
|
|
@ -8,17 +8,16 @@ import java.util.List;
|
|||
|
||||
import org.apache.ibatis.session.Configuration;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.apache.ibatis.session.SqlSessionManager;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.TaskState;
|
||||
import pro.taskana.TaskSummary;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
|
||||
/**
|
||||
* Test for TaskQueryImpl.
|
||||
|
@ -28,34 +27,32 @@ import pro.taskana.TaskSummary;
|
|||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class TaskQueryImplTest {
|
||||
|
||||
@Mock
|
||||
ClassificationServiceImpl classificationService;
|
||||
@Mock
|
||||
TaskServiceImpl taskServiceMock;
|
||||
@InjectMocks
|
||||
|
||||
private TaskQueryImpl taskQueryImpl;
|
||||
@Mock
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngineInternal;
|
||||
@Mock
|
||||
private TaskanaEngine taskanaEngine;
|
||||
@Mock
|
||||
private SqlSession sqlSession;
|
||||
@Mock
|
||||
private SqlSessionManager sqlSessionManager;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
when(taskanaEngineInternal.getEngine()).thenReturn(taskanaEngine);
|
||||
when(taskanaEngine.getTaskService()).thenReturn(taskServiceMock);
|
||||
|
||||
Configuration configuration = new org.apache.ibatis.session.Configuration();
|
||||
configuration.setDatabaseId("h2");
|
||||
this.taskanaEngine.sessionManager = sqlSessionManager;
|
||||
when(taskanaEngine.sessionManager.getConfiguration()).thenReturn(configuration);
|
||||
when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.getConfiguration()).thenReturn(configuration);
|
||||
|
||||
taskQueryImpl = new TaskQueryImpl(taskanaEngine);
|
||||
taskQueryImpl = new TaskQueryImpl(taskanaEngineInternal);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void should_ReturnList_when_BuilderIsUsed() {
|
||||
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.selectList(any(), any())).thenReturn(new ArrayList<>());
|
||||
List<TaskSummary> intermediate = new ArrayList<>();
|
||||
intermediate.add(new TaskSummaryImpl());
|
||||
|
@ -70,7 +67,6 @@ public class TaskQueryImplTest {
|
|||
|
||||
@Test
|
||||
public void should_ReturnListWithOffset_when_BuilderIsUsed() {
|
||||
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.selectList(any(), any(), any())).thenReturn(new ArrayList<>());
|
||||
List<TaskSummary> intermediate = new ArrayList<>();
|
||||
intermediate.add(new TaskSummaryImpl());
|
||||
|
@ -85,7 +81,6 @@ public class TaskQueryImplTest {
|
|||
|
||||
@Test
|
||||
public void should_ReturnOneItem_when_BuilderIsUsed() {
|
||||
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.selectOne(any(), any())).thenReturn(new TaskSummaryImpl());
|
||||
List<TaskSummary> intermediate = new ArrayList<>();
|
||||
intermediate.add(new TaskSummaryImpl());
|
||||
|
|
|
@ -5,7 +5,6 @@ import static org.junit.Assert.assertEquals;
|
|||
import static org.junit.Assert.assertNotEquals;
|
||||
import static org.junit.Assert.assertThat;
|
||||
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;
|
||||
|
@ -15,11 +14,11 @@ import static org.mockito.Mockito.when;
|
|||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
@ -27,12 +26,12 @@ import org.powermock.core.classloader.annotations.PowerMockIgnore;
|
|||
import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||
import org.powermock.modules.junit4.PowerMockRunner;
|
||||
|
||||
import pro.taskana.Attachment;
|
||||
import pro.taskana.Classification;
|
||||
import pro.taskana.ObjectReference;
|
||||
import pro.taskana.Task;
|
||||
import pro.taskana.TaskState;
|
||||
import pro.taskana.TaskSummary;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.Workbasket;
|
||||
import pro.taskana.WorkbasketPermission;
|
||||
import pro.taskana.WorkbasketService;
|
||||
|
@ -56,14 +55,16 @@ import pro.taskana.security.CurrentUserContext;
|
|||
@PowerMockIgnore("javax.management.*")
|
||||
public class TaskServiceImplTest {
|
||||
|
||||
@InjectMocks
|
||||
private TaskServiceImpl cut;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineConfiguration taskanaEngineConfigurationMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineImpl taskanaEngineMock;
|
||||
private TaskanaEngine.Internal taskanaEngineInternalMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngine taskanaEngineMock;
|
||||
|
||||
@Mock
|
||||
private TaskMapper taskMapperMock;
|
||||
|
@ -83,24 +84,16 @@ public class TaskServiceImplTest {
|
|||
@Mock
|
||||
private ClassificationQueryImpl classificationQueryImplMock;
|
||||
|
||||
@Mock
|
||||
private WorkbasketQueryImpl workbasketQueryImplMock;
|
||||
|
||||
@Mock
|
||||
private SqlSession sqlSessionMock;
|
||||
|
||||
@Before
|
||||
public void setup() throws WorkbasketNotFoundException {
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
|
||||
when(taskanaEngineMock.getWorkbasketService()).thenReturn(workbasketServiceMock);
|
||||
when(taskanaEngineMock.getClassificationService()).thenReturn(classificationServiceImplMock);
|
||||
try {
|
||||
Mockito.doNothing().when(workbasketServiceMock).checkAuthorization(any(), any());
|
||||
} catch (NotAuthorizedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Mockito.doNothing().when(taskanaEngineMock).openConnection();
|
||||
Mockito.doNothing().when(taskanaEngineMock).returnConnection();
|
||||
cut = new TaskServiceImpl(taskanaEngineInternalMock, taskMapperMock, attachmentMapperMock);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -118,25 +111,24 @@ public class TaskServiceImplTest {
|
|||
when(taskanaEngineMock.getConfiguration()).thenReturn(taskanaEngineConfigurationMock);
|
||||
when(taskanaEngineConfigurationMock.isSecurityEnabled()).thenReturn(false);
|
||||
doReturn(task).when(cutSpy).getTask(task.getId());
|
||||
doNothing().when(taskMapperMock).update(any());
|
||||
doNothing().when(workbasketServiceMock).checkAuthorization(destinationWorkbasket.getId(),
|
||||
WorkbasketPermission.APPEND);
|
||||
doNothing().when(workbasketServiceMock).checkAuthorization(sourceWorkbasket.getId(),
|
||||
WorkbasketPermission.TRANSFER);
|
||||
|
||||
Task actualTask = cutSpy.transfer(task.getId(), destinationWorkbasket.getId());
|
||||
|
||||
verify(taskanaEngineMock, times(1)).openConnection();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(workbasketServiceMock, times(1)).checkAuthorization(destinationWorkbasket.getId(),
|
||||
WorkbasketPermission.APPEND);
|
||||
verify(workbasketServiceMock, times(1)).checkAuthorization(sourceWorkbasket.getId(),
|
||||
WorkbasketPermission.TRANSFER);
|
||||
verify(workbasketServiceMock, times(1)).getWorkbasket(destinationWorkbasket.getId());
|
||||
verify(taskMapperMock, times(1)).update(any());
|
||||
verify(taskanaEngineMock, times(1)).returnConnection();
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineMock).getHistoryEventProducer();
|
||||
verify(taskanaEngineMock).getWorkbasketService();
|
||||
verify(taskanaEngineMock).getClassificationService();
|
||||
verifyNoMoreInteractions(attachmentMapperMock, taskanaEngineConfigurationMock, taskanaEngineMock,
|
||||
taskMapperMock, objectReferenceMapperMock, workbasketServiceMock, sqlSessionMock,
|
||||
classificationQueryImplMock);
|
||||
taskanaEngineInternalMock, taskMapperMock, objectReferenceMapperMock, workbasketServiceMock,
|
||||
sqlSessionMock, classificationQueryImplMock);
|
||||
|
||||
assertThat(actualTask.isRead(), equalTo(false));
|
||||
assertThat(actualTask.getState(), equalTo(TaskState.READY));
|
||||
|
@ -148,7 +140,6 @@ public class TaskServiceImplTest {
|
|||
public void testTaskSummaryEqualsHashCode() throws InterruptedException {
|
||||
Classification classification = createDummyClassification();
|
||||
Workbasket wb = createWorkbasket("WB-ID", "WB-Key");
|
||||
Attachment attachment = JunitHelper.createDefaultAttachment();
|
||||
ObjectReference objectReference = JunitHelper.createDefaultObjRef();
|
||||
TaskImpl taskBefore = createUnitTestTask("ID", "taskName", wb.getKey(), classification);
|
||||
taskBefore.setPrimaryObjRef(objectReference);
|
||||
|
|
|
@ -5,6 +5,7 @@ import static org.junit.Assert.assertEquals;
|
|||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.inOrder;
|
||||
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
import static org.powermock.api.mockito.PowerMockito.when;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -17,12 +18,12 @@ import org.junit.runner.RunWith;
|
|||
import org.mockito.InOrder;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.TaskState;
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.TaskanaRole;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.impl.report.item.TaskQueryItem;
|
||||
|
@ -39,10 +40,10 @@ public class TaskStatusReportBuilderImplTest {
|
|||
private TaskMonitorServiceImpl cut;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineImpl taskanaEngineImplMock;
|
||||
private TaskanaEngine.Internal taskanaEngineInternalMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
private TaskanaEngine taskanaEngineMock;
|
||||
|
||||
@Mock
|
||||
private TaskMonitorMapper taskMonitorMapperMock;
|
||||
|
@ -50,8 +51,7 @@ public class TaskStatusReportBuilderImplTest {
|
|||
@Before
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
Mockito.doNothing().when(taskanaEngineImplMock).openConnection();
|
||||
Mockito.doNothing().when(taskanaEngineImplMock).returnConnection();
|
||||
when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -72,10 +72,14 @@ public class TaskStatusReportBuilderImplTest {
|
|||
TaskStatusReport report = cut.createTaskStatusReportBuilder().buildReport();
|
||||
|
||||
// then
|
||||
InOrder inOrder = inOrder(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineImplMock);
|
||||
inOrder.verify(taskanaEngineImplMock).openConnection();
|
||||
InOrder inOrder = inOrder(taskanaEngineMock, taskanaEngineInternalMock, taskMonitorMapperMock);
|
||||
inOrder.verify(taskanaEngineInternalMock).getEngine();
|
||||
inOrder.verify(taskanaEngineMock).checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
inOrder.verify(taskanaEngineInternalMock).openConnection();
|
||||
inOrder.verify(taskMonitorMapperMock).getTasksCountByState(eq(null), eq(null));
|
||||
inOrder.verify(taskanaEngineImplMock).returnConnection();
|
||||
inOrder.verify(taskanaEngineInternalMock).returnConnection();
|
||||
inOrder.verifyNoMoreInteractions();
|
||||
verifyNoMoreInteractions(taskanaEngineMock, taskanaEngineInternalMock, taskMonitorMapperMock);
|
||||
|
||||
assertNotNull(report);
|
||||
assertEquals(1, report.rowSize());
|
||||
|
@ -103,10 +107,14 @@ public class TaskStatusReportBuilderImplTest {
|
|||
TaskStatusReport report = cut.createTaskStatusReportBuilder().stateIn(Collections.emptyList()).buildReport();
|
||||
|
||||
// then
|
||||
InOrder inOrder = inOrder(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineImplMock);
|
||||
inOrder.verify(taskanaEngineImplMock).openConnection();
|
||||
InOrder inOrder = inOrder(taskanaEngineMock, taskMonitorMapperMock, taskanaEngineInternalMock);
|
||||
inOrder.verify(taskanaEngineInternalMock).getEngine();
|
||||
inOrder.verify(taskanaEngineMock).checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
inOrder.verify(taskanaEngineInternalMock).openConnection();
|
||||
inOrder.verify(taskMonitorMapperMock).getTasksCountByState(eq(null), eq(Collections.emptyList()));
|
||||
inOrder.verify(taskanaEngineImplMock).returnConnection();
|
||||
inOrder.verify(taskanaEngineInternalMock).returnConnection();
|
||||
inOrder.verifyNoMoreInteractions();
|
||||
verifyNoMoreInteractions(taskanaEngineMock, taskMonitorMapperMock, taskanaEngineInternalMock);
|
||||
|
||||
assertNotNull(report);
|
||||
assertEquals(1, report.rowSize());
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
package pro.taskana.impl;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
|
||||
import pro.taskana.TaskanaEngine;
|
||||
|
||||
/**
|
||||
* Utility class to enable unit tests to access mappers directly.
|
||||
*
|
||||
|
@ -9,14 +13,16 @@ import org.apache.ibatis.session.SqlSession;
|
|||
*/
|
||||
public class TaskanaEngineProxyForTest {
|
||||
|
||||
TaskanaEngineImpl engine;
|
||||
TaskanaEngine.Internal engine;
|
||||
|
||||
public TaskanaEngineProxyForTest(TaskanaEngineImpl taskanaEngine) {
|
||||
engine = taskanaEngine;
|
||||
public TaskanaEngineProxyForTest(TaskanaEngine taskanaEngine) throws NoSuchFieldException, IllegalAccessException {
|
||||
Field internal = TaskanaEngineImpl.class.getDeclaredField("internal");
|
||||
internal.setAccessible(true);
|
||||
engine = (TaskanaEngine.Internal) internal.get(taskanaEngine);
|
||||
}
|
||||
|
||||
public SqlSession getSqlSession() {
|
||||
return engine.sessionManager;
|
||||
return engine.getSqlSession();
|
||||
}
|
||||
|
||||
public void openConnection() {
|
||||
|
|
|
@ -8,12 +8,13 @@ import java.util.List;
|
|||
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.WorkbasketAccessItem;
|
||||
|
||||
/**
|
||||
|
@ -24,22 +25,18 @@ import pro.taskana.WorkbasketAccessItem;
|
|||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class WorkbasketAccessItemQueryImplTest {
|
||||
|
||||
@InjectMocks
|
||||
private WorkbasketAccessItemQueryImpl workbasketAccessItemQueryImpl;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngineInternal;
|
||||
|
||||
@Mock
|
||||
private SqlSession sqlSession;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
workbasketAccessItemQueryImpl = new WorkbasketAccessItemQueryImpl(taskanaEngine);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void should_ReturnList_when_BuilderIsUsed() {
|
||||
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
|
||||
when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.selectList(any(), any())).thenReturn(new ArrayList<>());
|
||||
|
||||
List<WorkbasketAccessItem> result = workbasketAccessItemQueryImpl.accessIdIn("test", "asd")
|
||||
|
@ -49,7 +46,7 @@ public class WorkbasketAccessItemQueryImplTest {
|
|||
|
||||
@Test
|
||||
public void should_ReturnListWithOffset_when_BuilderIsUsed() {
|
||||
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
|
||||
when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.selectList(any(), any(), any())).thenReturn(new ArrayList<>());
|
||||
|
||||
List<WorkbasketAccessItem> result = workbasketAccessItemQueryImpl.accessIdIn("test", "asd")
|
||||
|
@ -59,7 +56,7 @@ public class WorkbasketAccessItemQueryImplTest {
|
|||
|
||||
@Test
|
||||
public void should_ReturnOneItem_when_BuilderIsUsed() {
|
||||
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
|
||||
when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.selectOne(any(), any())).thenReturn(new WorkbasketAccessItemImpl());
|
||||
|
||||
WorkbasketAccessItem result = workbasketAccessItemQueryImpl.accessIdIn("test", "asd")
|
||||
|
|
|
@ -11,9 +11,11 @@ import org.junit.Assert;
|
|||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.WorkbasketSummary;
|
||||
|
||||
/**
|
||||
|
@ -24,22 +26,26 @@ import pro.taskana.WorkbasketSummary;
|
|||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class WorkbasketQueryImplTest {
|
||||
|
||||
@InjectMocks
|
||||
private WorkbasketQueryImpl workbasketQueryImpl;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineImpl taskanaEngine;
|
||||
private TaskanaEngine.Internal taskanaEngineInternal;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngine taskanaEngine;
|
||||
|
||||
@Mock
|
||||
private SqlSession sqlSession;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
workbasketQueryImpl = new WorkbasketQueryImpl(taskanaEngine);
|
||||
when(taskanaEngineInternal.getEngine()).thenReturn(taskanaEngine);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void should_ReturnList_when_BuilderIsUsed() {
|
||||
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
|
||||
when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.selectList(any(), any())).thenReturn(new ArrayList<>());
|
||||
|
||||
List<WorkbasketSummary> result = workbasketQueryImpl
|
||||
|
@ -51,7 +57,7 @@ public class WorkbasketQueryImplTest {
|
|||
|
||||
@Test
|
||||
public void should_ReturnListWithOffset_when_BuilderIsUsed() {
|
||||
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
|
||||
when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.selectList(any(), any(), any())).thenReturn(new ArrayList<>());
|
||||
|
||||
List<WorkbasketSummary> result = workbasketQueryImpl
|
||||
|
@ -63,7 +69,7 @@ public class WorkbasketQueryImplTest {
|
|||
|
||||
@Test
|
||||
public void should_ReturnOneItem_when_BuilderIsUsed() {
|
||||
when(taskanaEngine.getSqlSession()).thenReturn(sqlSession);
|
||||
when(taskanaEngineInternal.getSqlSession()).thenReturn(sqlSession);
|
||||
when(sqlSession.selectOne(any(), any())).thenReturn(new WorkbasketSummaryImpl());
|
||||
|
||||
WorkbasketSummary result = workbasketQueryImpl
|
||||
|
|
|
@ -21,12 +21,12 @@ import org.junit.Test;
|
|||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.CustomField;
|
||||
import pro.taskana.TaskState;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.TaskanaRole;
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.exceptions.InvalidArgumentException;
|
||||
|
@ -47,7 +47,10 @@ public class WorkbasketReportBuilderImplTest {
|
|||
private TaskMonitorServiceImpl cut;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineImpl taskanaEngineImplMock;
|
||||
private TaskanaEngine.Internal taskanaEngineInternalMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngine taskanaEngineMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
|
@ -58,9 +61,8 @@ public class WorkbasketReportBuilderImplTest {
|
|||
@Before
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
Mockito.doNothing().when(taskanaEngineImplMock).openConnection();
|
||||
Mockito.doNothing().when(taskanaEngineImplMock).returnConnection();
|
||||
when(taskanaEngineImplMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
|
||||
when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngineMock);
|
||||
when(taskanaEngineMock.getConfiguration()).thenReturn(taskanaEngineConfiguration);
|
||||
when(taskanaEngineConfiguration.isGermanPublicHolidaysEnabled()).thenReturn(true);
|
||||
when(taskanaEngineConfiguration.getCustomHolidays()).thenReturn(null);
|
||||
}
|
||||
|
@ -76,8 +78,8 @@ public class WorkbasketReportBuilderImplTest {
|
|||
List<String> excludedClassificationIds = Collections.singletonList("L20000");
|
||||
Map<CustomField, String> customAttributeFilter = new HashMap<>();
|
||||
customAttributeFilter.put(CustomField.CUSTOM_1, "Geschaeftsstelle A");
|
||||
List<CombinedClassificationFilter> combinedClassificationFilter = Arrays
|
||||
.asList(new CombinedClassificationFilter("CLI:000000000000000000000000000000000003",
|
||||
List<CombinedClassificationFilter> combinedClassificationFilter = Collections.singletonList(
|
||||
new CombinedClassificationFilter("CLI:000000000000000000000000000000000003",
|
||||
"CLI:000000000000000000000000000000000008"));
|
||||
|
||||
List<MonitorQueryItem> expectedResult = new ArrayList<>();
|
||||
|
@ -100,16 +102,18 @@ public class WorkbasketReportBuilderImplTest {
|
|||
.combinedClassificationFilterIn(combinedClassificationFilter)
|
||||
.buildReport();
|
||||
|
||||
verify(taskanaEngineImplMock, times(1))
|
||||
verify(taskanaEngineInternalMock, times(1))
|
||||
.openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfWorkbaskets(any(), any(), any(), any(),
|
||||
any(), any(), any(), any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(
|
||||
|
@ -128,8 +132,8 @@ public class WorkbasketReportBuilderImplTest {
|
|||
List<String> excludedClassificationIds = Collections.singletonList("L20000");
|
||||
Map<CustomField, String> customAttributeFilter = new HashMap<>();
|
||||
customAttributeFilter.put(CustomField.CUSTOM_1, "Geschaeftsstelle A");
|
||||
List<CombinedClassificationFilter> combinedClassificationFilter = Arrays
|
||||
.asList(new CombinedClassificationFilter("CLI:000000000000000000000000000000000003",
|
||||
List<CombinedClassificationFilter> combinedClassificationFilter = Collections.singletonList(
|
||||
new CombinedClassificationFilter("CLI:000000000000000000000000000000000003",
|
||||
"CLI:000000000000000000000000000000000008"));
|
||||
List<TimeIntervalColumnHeader> columnHeaders = Collections.singletonList(
|
||||
new TimeIntervalColumnHeader(0, 0));
|
||||
|
@ -156,15 +160,17 @@ public class WorkbasketReportBuilderImplTest {
|
|||
.withColumnHeaders(columnHeaders)
|
||||
.buildReport();
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfWorkbaskets(any(), any(), any(), any(), any(), any(),
|
||||
any(), any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(
|
||||
|
@ -209,15 +215,17 @@ public class WorkbasketReportBuilderImplTest {
|
|||
.withColumnHeaders(columnHeaders)
|
||||
.listTaskIdsForSelectedItems(selectedItems);
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1))
|
||||
.getTaskIdsForSelectedItems(any(), any(), any(), any(), any(), any(), any(), any(), any(), eq(false));
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(expectedResult, actualResult);
|
||||
|
@ -269,15 +277,17 @@ public class WorkbasketReportBuilderImplTest {
|
|||
.withColumnHeaders(columnHeaders)
|
||||
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
|
||||
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1))
|
||||
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(expectedResult, actualResult);
|
||||
|
@ -327,10 +337,11 @@ public class WorkbasketReportBuilderImplTest {
|
|||
.combinedClassificationFilterIn(combinedClassificationFilter)
|
||||
.buildPlannedDateBasedReport();
|
||||
|
||||
verify(taskanaEngineImplMock, times(1))
|
||||
verify(taskanaEngineInternalMock, times(1))
|
||||
.openConnection();
|
||||
verify(taskanaEngineImplMock, times(1)).checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
verify(taskanaEngineImplMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineMock, times(1)).checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
verify(taskanaEngineMock, times(2)).getConfiguration();
|
||||
verify(taskanaEngineInternalMock, times(3)).getEngine();
|
||||
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
|
||||
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfWorkbasketsBasedOnPlannedDate(
|
||||
|
@ -342,8 +353,9 @@ public class WorkbasketReportBuilderImplTest {
|
|||
excludedClassificationIds,
|
||||
customAttributeFilter,
|
||||
combinedClassificationFilter);
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineImplMock, taskMonitorMapperMock, taskanaEngineConfiguration);
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineInternalMock, taskanaEngineMock, taskMonitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(
|
||||
|
|
|
@ -5,7 +5,6 @@ import static org.hamcrest.core.IsNot.not;
|
|||
import static org.hamcrest.core.StringStartsWith.startsWith;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.doThrow;
|
||||
import static org.mockito.Mockito.times;
|
||||
|
@ -17,20 +16,19 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.Spy;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import pro.taskana.TaskQuery;
|
||||
import pro.taskana.TaskService;
|
||||
import pro.taskana.TaskSummary;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.Workbasket;
|
||||
import pro.taskana.WorkbasketType;
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
|
@ -42,7 +40,6 @@ import pro.taskana.exceptions.WorkbasketAlreadyExistException;
|
|||
import pro.taskana.exceptions.WorkbasketInUseException;
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.mappings.DistributionTargetMapper;
|
||||
import pro.taskana.mappings.TaskMapper;
|
||||
import pro.taskana.mappings.WorkbasketAccessMapper;
|
||||
import pro.taskana.mappings.WorkbasketMapper;
|
||||
|
||||
|
@ -61,12 +58,6 @@ public class WorkbasketServiceImplTest {
|
|||
@Mock
|
||||
private WorkbasketMapper workbasketMapperMock;
|
||||
|
||||
@Mock
|
||||
private TaskMapper taskMapperMock;
|
||||
|
||||
@Mock
|
||||
private SqlSession sqlSessionMock;
|
||||
|
||||
@Mock
|
||||
private DistributionTargetMapper distributionTargetMapperMock;
|
||||
|
||||
|
@ -80,14 +71,17 @@ public class WorkbasketServiceImplTest {
|
|||
private TaskQuery taskQueryMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineImpl taskanaEngineImplMock;
|
||||
private TaskanaEngine taskanaEngine;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngine.Internal taskanaEngineInternalMock;
|
||||
|
||||
@Mock
|
||||
private TaskanaEngineConfiguration taskanaEngineConfigurationMock;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
when(taskanaEngineInternalMock.getEngine()).thenReturn(taskanaEngine);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -96,26 +90,26 @@ public class WorkbasketServiceImplTest {
|
|||
WorkbasketAlreadyExistException, DomainNotFoundException {
|
||||
final int distTargetAmount = 2;
|
||||
WorkbasketImpl expectedWb = createTestWorkbasket(null, "Key-1");
|
||||
doNothing().when(workbasketMapperMock).insert(expectedWb);
|
||||
doReturn(expectedWb).when(cutSpy).getWorkbasket(any());
|
||||
when(taskanaEngineImplMock.domainExists(any())).thenReturn(true);
|
||||
when(taskanaEngineInternalMock.domainExists(any())).thenReturn(true);
|
||||
|
||||
Workbasket actualWb = cutSpy.createWorkbasket(expectedWb);
|
||||
cutSpy.setDistributionTargets(expectedWb.getId(), createTestDistributionTargets(distTargetAmount));
|
||||
|
||||
verify(taskanaEngineImplMock, times(4)).openConnection();
|
||||
verify(taskanaEngineInternalMock, times(4)).openConnection();
|
||||
verify(workbasketMapperMock, times(3)).insert(any());
|
||||
verify(cutSpy, times(distTargetAmount + 1)).getWorkbasket(any());
|
||||
verify(distributionTargetMapperMock, times(1)).deleteAllDistributionTargetsBySourceId(any());
|
||||
verify(distributionTargetMapperMock, times(distTargetAmount)).insert(any(), any());
|
||||
verify(workbasketMapperMock, times(3)).findByKeyAndDomain(any(), any());
|
||||
verify(workbasketMapperMock, times(1)).update(any());
|
||||
verify(taskanaEngineImplMock, times(4)).returnConnection();
|
||||
verify(taskanaEngineImplMock, times(4)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(3)).domainExists(any());
|
||||
verify(taskanaEngineInternalMock, times(4)).returnConnection();
|
||||
verify(taskanaEngine, times(4)).checkRoleMembership(any());
|
||||
verify(taskanaEngineInternalMock, times(4)).getEngine();
|
||||
verify(taskanaEngineInternalMock, times(3)).domainExists(any());
|
||||
verifyNoMoreInteractions(taskQueryMock, taskServiceMock, workbasketMapperMock, workbasketAccessMapperMock,
|
||||
distributionTargetMapperMock,
|
||||
taskanaEngineImplMock, taskanaEngineConfigurationMock);
|
||||
taskanaEngineInternalMock, taskanaEngine, taskanaEngineConfigurationMock);
|
||||
assertThat(actualWb.getId(), not(equalTo(null)));
|
||||
assertThat(actualWb.getId(), startsWith("WBI"));
|
||||
assertThat(actualWb.getCreated(), not(equalTo(null)));
|
||||
|
@ -127,8 +121,7 @@ public class WorkbasketServiceImplTest {
|
|||
throws WorkbasketNotFoundException, NotAuthorizedException, InvalidWorkbasketException,
|
||||
WorkbasketAlreadyExistException, DomainNotFoundException {
|
||||
WorkbasketImpl expectedWb = createTestWorkbasket("ID-1", "Key-1");
|
||||
doNothing().when(workbasketMapperMock).insert(expectedWb);
|
||||
when(taskanaEngineImplMock.domainExists(any())).thenReturn(true);
|
||||
when(taskanaEngineInternalMock.domainExists(any())).thenReturn(true);
|
||||
|
||||
try {
|
||||
cutSpy.createWorkbasket(expectedWb);
|
||||
|
@ -138,17 +131,18 @@ public class WorkbasketServiceImplTest {
|
|||
doThrow(WorkbasketNotFoundException.class).when(cutSpy).getDistributionTargets(expectedWb.getId()).get(0);
|
||||
|
||||
} catch (WorkbasketNotFoundException e) {
|
||||
verify(taskanaEngineImplMock, times(3)).openConnection();
|
||||
verify(taskanaEngineInternalMock, times(3)).openConnection();
|
||||
verify(workbasketMapperMock, times(1)).insert(expectedWb);
|
||||
verify(workbasketMapperMock, times(1)).findById(any());
|
||||
verify(workbasketMapperMock, times(1)).findByKeyAndDomain(any(), any());
|
||||
verify(cutSpy, times(1)).getWorkbasket(any());
|
||||
verify(taskanaEngineImplMock, times(3)).returnConnection();
|
||||
verify(taskanaEngineImplMock, times(2)).checkRoleMembership(any());
|
||||
verify(taskanaEngineImplMock, times(1)).domainExists(any());
|
||||
verify(taskanaEngineInternalMock, times(3)).returnConnection();
|
||||
verify(taskanaEngine, times(2)).checkRoleMembership(any());
|
||||
verify(taskanaEngineInternalMock, times(2)).getEngine();
|
||||
verify(taskanaEngineInternalMock, times(1)).domainExists(any());
|
||||
verifyNoMoreInteractions(taskQueryMock, taskServiceMock, workbasketMapperMock, workbasketAccessMapperMock,
|
||||
distributionTargetMapperMock,
|
||||
taskanaEngineImplMock, taskanaEngineConfigurationMock);
|
||||
taskanaEngineInternalMock, taskanaEngine, taskanaEngineConfigurationMock);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
@ -159,19 +153,18 @@ public class WorkbasketServiceImplTest {
|
|||
public void testCreateWorkbasket_NotCreated()
|
||||
throws Exception {
|
||||
WorkbasketImpl expectedWb = createTestWorkbasket(null, "Key-1");
|
||||
doNothing().when(workbasketMapperMock).insert(expectedWb);
|
||||
when(workbasketMapperMock.findById(any())).thenThrow(WorkbasketNotFoundException.class);
|
||||
|
||||
try {
|
||||
cutSpy.createWorkbasket(expectedWb);
|
||||
} catch (Exception e) {
|
||||
verify(taskanaEngineImplMock, times(1)).openConnection();
|
||||
verify(taskanaEngineInternalMock, times(1)).openConnection();
|
||||
verify(workbasketMapperMock, times(1)).insert(expectedWb);
|
||||
verify(workbasketMapperMock, times(1)).findById(expectedWb.getId());
|
||||
verify(taskanaEngineImplMock, times(1)).returnConnection();
|
||||
verify(taskanaEngineInternalMock, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskQueryMock, taskServiceMock, workbasketMapperMock, workbasketAccessMapperMock,
|
||||
distributionTargetMapperMock,
|
||||
taskanaEngineImplMock, taskanaEngineConfigurationMock);
|
||||
taskanaEngineInternalMock, taskanaEngineConfigurationMock);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
@ -185,13 +178,13 @@ public class WorkbasketServiceImplTest {
|
|||
try {
|
||||
cutSpy.deleteWorkbasket(wb.getId());
|
||||
} catch (WorkbasketNotFoundException e) {
|
||||
verify(taskanaEngineImplMock, times(2)).openConnection();
|
||||
verify(taskanaEngineInternalMock, times(2)).openConnection();
|
||||
verify(cutSpy, times(1)).getWorkbasket(wb.getId());
|
||||
verify(taskanaEngineImplMock, times(0)).getTaskService();
|
||||
verify(taskanaEngine, times(0)).getTaskService();
|
||||
verify(taskServiceMock, times(0)).createTaskQuery();
|
||||
verify(taskQueryMock, times(0)).workbasketIdIn(wb.getId());
|
||||
verify(taskQueryMock, times(0)).count();
|
||||
verify(taskanaEngineImplMock, times(2)).returnConnection();
|
||||
verify(taskanaEngineInternalMock, times(2)).returnConnection();
|
||||
verifyNoMoreInteractions(taskQueryMock, taskServiceMock, workbasketAccessMapperMock,
|
||||
distributionTargetMapperMock, taskanaEngineConfigurationMock);
|
||||
throw e;
|
||||
|
|
|
@ -35,7 +35,6 @@ import pro.taskana.exceptions.InvalidWorkbasketException;
|
|||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.exceptions.WorkbasketAlreadyExistException;
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.impl.TaskanaEngineImpl;
|
||||
import pro.taskana.impl.TaskanaEngineProxyForTest;
|
||||
import pro.taskana.impl.WorkbasketImpl;
|
||||
import pro.taskana.impl.configuration.DBCleaner;
|
||||
|
@ -54,12 +53,9 @@ import pro.taskana.security.WithAccessId;
|
|||
public class WorkbasketServiceImplIntAutocommitTest {
|
||||
|
||||
private static final int SLEEP_TIME = 100;
|
||||
private static final int THREE = 3;
|
||||
static int counter = 0;
|
||||
private DataSource dataSource;
|
||||
private TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
private TaskanaEngine taskanaEngine;
|
||||
private TaskanaEngineImpl taskanaEngineImpl;
|
||||
private WorkbasketService workBasketService;
|
||||
private Instant now;
|
||||
|
||||
|
@ -76,8 +72,7 @@ public class WorkbasketServiceImplIntAutocommitTest {
|
|||
taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false,
|
||||
TaskanaEngineConfigurationTest.getSchemaName());
|
||||
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
|
||||
taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
||||
taskanaEngineImpl.setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT);
|
||||
taskanaEngine.setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT);
|
||||
workBasketService = taskanaEngine.getWorkbasketService();
|
||||
DBCleaner cleaner = new DBCleaner();
|
||||
cleaner.clearDb(dataSource, false);
|
||||
|
@ -187,11 +182,11 @@ public class WorkbasketServiceImplIntAutocommitTest {
|
|||
}
|
||||
|
||||
private void updateModifiedTimestamps(Workbasket basket2, Workbasket basket3, Workbasket basket4,
|
||||
Workbasket basket1) {
|
||||
Workbasket basket1) throws NoSuchFieldException, IllegalAccessException {
|
||||
// created and modified timestamps are set by WorkbasketServiceImpl to 'now' when the workbasket is created
|
||||
// in order to create timestamps distict from the current time, we must use the mapper directly to bypass
|
||||
// WorkbasketServiceImpl
|
||||
TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest(taskanaEngineImpl);
|
||||
TaskanaEngineProxyForTest engineProxy = new TaskanaEngineProxyForTest(taskanaEngine);
|
||||
SqlSession session = engineProxy.getSqlSession();
|
||||
WorkbasketMapper mapper = session.getMapper(WorkbasketMapper.class);
|
||||
|
||||
|
|
Loading…
Reference in New Issue