Skip to content

Commit

Permalink
Do cosmetic changes in task tests
Browse files Browse the repository at this point in the history
(Mainly related to eliminating IDE warnings.)
  • Loading branch information
mederly committed Mar 10, 2020
1 parent 76737c5 commit 0be732e
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 122 deletions.
Expand Up @@ -17,6 +17,7 @@
import java.math.BigInteger;
import java.util.*;

import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.annotations.BeforeSuite;
import org.xml.sax.SAXException;
Expand Down Expand Up @@ -45,24 +46,23 @@
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

public class AbstractTaskManagerTest extends AbstractSpringTest
implements OperationResultTestMixin {

protected static final String CYCLE_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/cycle-task-handler";
protected static final String CYCLE_FINISHING_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/cycle-finishing-task-handler";
protected static final String SINGLE_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/single-task-handler";
protected static final String SINGLE_TASK_HANDLER_2_URI = "http://midpoint.evolveum.com/test/single-task-handler-2";
protected static final String SINGLE_TASK_HANDLER_3_URI = "http://midpoint.evolveum.com/test/single-task-handler-3";
protected static final String SINGLE_WB_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/single-wb-task-handler";
protected static final String PARTITIONED_WB_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/partitioned-wb-task-handler";
protected static final String PARTITIONED_WB_TASK_HANDLER_URI_1 = PARTITIONED_WB_TASK_HANDLER_URI + "#1";
protected static final String PARTITIONED_WB_TASK_HANDLER_URI_2 = PARTITIONED_WB_TASK_HANDLER_URI + "#2";
protected static final String PARTITIONED_WB_TASK_HANDLER_URI_3 = PARTITIONED_WB_TASK_HANDLER_URI + "#3";
protected static final String L1_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/l1-task-handler";
protected static final String L2_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/l2-task-handler";
protected static final String L3_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/l3-task-handler";
protected static final String PARALLEL_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/parallel-task-handler";
protected static final String LONG_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/long-task-handler";
public class AbstractTaskManagerTest extends AbstractSpringTest implements OperationResultTestMixin {

private static final String CYCLE_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/cycle-task-handler";
private static final String CYCLE_FINISHING_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/cycle-finishing-task-handler";
static final String SINGLE_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/single-task-handler";
private static final String SINGLE_TASK_HANDLER_2_URI = "http://midpoint.evolveum.com/test/single-task-handler-2";
private static final String SINGLE_TASK_HANDLER_3_URI = "http://midpoint.evolveum.com/test/single-task-handler-3";
private static final String SINGLE_WB_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/single-wb-task-handler";
private static final String PARTITIONED_WB_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/partitioned-wb-task-handler";
private static final String PARTITIONED_WB_TASK_HANDLER_URI_1 = PARTITIONED_WB_TASK_HANDLER_URI + "#1";
private static final String PARTITIONED_WB_TASK_HANDLER_URI_2 = PARTITIONED_WB_TASK_HANDLER_URI + "#2";
private static final String PARTITIONED_WB_TASK_HANDLER_URI_3 = PARTITIONED_WB_TASK_HANDLER_URI + "#3";
private static final String L1_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/l1-task-handler";
static final String L2_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/l2-task-handler";
static final String L3_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/l3-task-handler";
private static final String PARALLEL_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/parallel-task-handler";
private static final String LONG_TASK_HANDLER_URI = "http://midpoint.evolveum.com/test/long-task-handler";

public static final String COMMON_DIR = "src/test/resources/common";
private static final File USER_ADMINISTRATOR_FILE = new File(COMMON_DIR, "user-administrator.xml");
Expand All @@ -77,18 +77,16 @@ public class AbstractTaskManagerTest extends AbstractSpringTest
@Autowired protected PrismContext prismContext;
@Autowired protected SchemaHelper schemaHelper;

protected MockSingleTaskHandler singleHandler1, singleHandler2, singleHandler3;
protected MockWorkBucketsTaskHandler workBucketsTaskHandler;
protected MockWorkBucketsTaskHandler partitionedWorkBucketsTaskHandler;
protected MockSingleTaskHandler l1Handler, l2Handler, l3Handler;
protected MockCycleTaskHandler cycleFinishingHandler;
protected MockParallelTaskHandler parallelTaskHandler;
protected MockLongTaskHandler longTaskHandler;
MockSingleTaskHandler singleHandler1, singleHandler2, singleHandler3;
MockWorkBucketsTaskHandler workBucketsTaskHandler;
MockWorkBucketsTaskHandler partitionedWorkBucketsTaskHandler;
MockSingleTaskHandler l1Handler, l2Handler, l3Handler;
MockParallelTaskHandler parallelTaskHandler;

protected void initHandlers() {
MockCycleTaskHandler cycleHandler = new MockCycleTaskHandler(false); // ordinary recurring task
private void initHandlers() {
MockCycleTaskHandler cycleHandler = new MockCycleTaskHandler(false); // ordinary recurring task
taskManager.registerHandler(CYCLE_TASK_HANDLER_URI, cycleHandler);
cycleFinishingHandler = new MockCycleTaskHandler(true); // finishes the handler
MockCycleTaskHandler cycleFinishingHandler = new MockCycleTaskHandler(true); // finishes the handler
taskManager.registerHandler(CYCLE_FINISHING_TASK_HANDLER_URI, cycleFinishingHandler);

singleHandler1 = new MockSingleTaskHandler("1", taskManager);
Expand Down Expand Up @@ -118,7 +116,7 @@ protected void initHandlers() {

parallelTaskHandler = new MockParallelTaskHandler("1", taskManager);
taskManager.registerHandler(PARALLEL_TASK_HANDLER_URI, parallelTaskHandler);
longTaskHandler = new MockLongTaskHandler("1", taskManager);
MockLongTaskHandler longTaskHandler = new MockLongTaskHandler("1", taskManager);
taskManager.registerHandler(LONG_TASK_HANDLER_URI, longTaskHandler);
}

Expand All @@ -133,27 +131,23 @@ public void initialize() throws Exception {
addObjectFromFile(USER_ADMINISTRATOR_FILE.getPath());
}

protected <T extends ObjectType> PrismObject<T> unmarshallJaxbFromFile(String filePath) throws IOException, SchemaException {
File file = new File(filePath);
return PrismTestUtil.parseObject(file);
}

protected <T extends ObjectType> PrismObject<T> addObjectFromFile(String filePath) throws Exception {
PrismObject<T> object = unmarshallJaxbFromFile(filePath);
<T extends ObjectType> PrismObject<T> addObjectFromFile(String filePath) throws Exception {
PrismObject<T> object = PrismTestUtil.parseObject(new File(filePath));
OperationResult result = createOperationResult("addObjectFromFile");
try {
add(object, result);
} catch (ObjectAlreadyExistsException e) {
delete(object, result);
add(object, result);
}
logger.trace("Object from " + filePath + " added to repository.");
logger.trace("Object from {} added to repository.", filePath);
return object;
}

protected void add(PrismObject<? extends ObjectType> object, OperationResult result)
throws ObjectAlreadyExistsException, SchemaException {
if (object.canRepresent(TaskType.class)) {
//noinspection unchecked,rawtypes
taskManager.addTask((PrismObject) object, result);
} else {
repositoryService.addObject(object, null, result);
Expand All @@ -168,16 +162,17 @@ protected void delete(PrismObject<? extends ObjectType> object, OperationResult
}
}

protected void waitForTaskClose(String taskOid, OperationResult result, long timeoutInterval, long sleepInterval) throws
CommonException {
void waitForTaskClose(String taskOid, OperationResult result, long timeoutInterval, long sleepInterval)
throws CommonException {
waitFor("Waiting for task to close", () -> {
Task task = taskManager.getTaskWithResult(taskOid, result);
IntegrationTestTools.display("Task while waiting for it to close", task);
return task.getExecutionStatus() == TaskExecutionStatus.CLOSED;
}, timeoutInterval, sleepInterval);
}

protected void waitForTaskRunnable(String taskOid, OperationResult result, long timeoutInterval, long sleepInterval) throws
@SuppressWarnings("SameParameterValue")
void waitForTaskRunnable(String taskOid, OperationResult result, long timeoutInterval, long sleepInterval) throws
CommonException {
waitFor("Waiting for task to become runnable", () -> {
Task task = taskManager.getTaskWithResult(taskOid, result);
Expand All @@ -186,7 +181,8 @@ protected void waitForTaskRunnable(String taskOid, OperationResult result, long
}, timeoutInterval, sleepInterval);
}

protected void waitForTaskCloseCheckingSubtasks(String taskOid, OperationResult result, long timeoutInterval, long sleepInterval) throws
@SuppressWarnings("SameParameterValue")
void waitForTaskCloseCheckingSubtasks(String taskOid, OperationResult result, long timeoutInterval, long sleepInterval) throws
CommonException {
waitFor("Waiting for task manager to execute the task", () -> {
Task task = taskManager.getTaskWithResult(taskOid, result);
Expand Down Expand Up @@ -215,7 +211,7 @@ protected void waitForTaskStart(String oid, OperationResult result, long timeout
}, timeoutInterval, sleepInterval);
}

protected void waitForTaskProgress(String taskOid, OperationResult result, long timeoutInterval, long sleepInterval,
void waitForTaskProgress(String taskOid, OperationResult result, long timeoutInterval, long sleepInterval,
int threshold) throws CommonException {
waitFor("Waiting for task progress reaching " + threshold, () -> {
Task task = taskManager.getTaskWithResult(taskOid, result);
Expand All @@ -224,31 +220,31 @@ protected void waitForTaskProgress(String taskOid, OperationResult result, long
}, timeoutInterval, sleepInterval);
}

protected void suspendAndDeleteTasks(String... oids) {
void suspendAndDeleteTasks(String... oids) {
taskManager.suspendAndDeleteTasks(Arrays.asList(oids), 20000L, true, new OperationResult("dummy"));
}

protected void sleepChecked(long delay) {
void sleepChecked(long delay) {
try {
Thread.sleep(delay);
} catch (InterruptedException e) {
// nothing to do here
}
}

protected void assertTotalSuccessCount(int expectedCount, Collection<? extends Task> workers) {
void assertTotalSuccessCount(int expectedCount, Collection<? extends Task> workers) {
int total = 0;
for (Task worker : workers) {
total += worker.getStoredOperationStats().getIterativeTaskInformation().getTotalSuccessCount();
}
assertEquals("Wrong total success count", expectedCount, total);
}

protected void assertNoWorkBuckets(TaskWorkStateType ws) {
void assertNoWorkBuckets(TaskWorkStateType ws) {
assertTrue(ws == null || ws.getBucket().isEmpty());
}

protected void assertNumericBucket(WorkBucketType bucket, WorkBucketStateType state, int seqNumber, Integer start, Integer end) {
void assertNumericBucket(WorkBucketType bucket, WorkBucketStateType state, int seqNumber, Integer start, Integer end) {
assertBucket(bucket, state, seqNumber);
AbstractWorkBucketContentType content = bucket.getContent();
assertEquals("Wrong bucket content class", NumericIntervalWorkBucketContentType.class, content.getClass());
Expand All @@ -257,7 +253,7 @@ protected void assertNumericBucket(WorkBucketType bucket, WorkBucketStateType st
assertEquals("Wrong bucket end", toBig(end), numContent.getTo());
}

protected void assertBucket(WorkBucketType bucket, WorkBucketStateType state, int seqNumber) {
void assertBucket(WorkBucketType bucket, WorkBucketStateType state, int seqNumber) {
if (state != null) {
assertEquals("Wrong bucket state", state, bucket.getState());
}
Expand All @@ -280,11 +276,11 @@ private void assertBucketWorkerRefSanity(WorkBucketType bucket) {
}
}

protected BigInteger toBig(Integer integer) {
private BigInteger toBig(Integer integer) {
return integer != null ? BigInteger.valueOf(integer) : null;
}

protected void assertOptimizedCompletedBuckets(TaskQuartzImpl task) {
void assertOptimizedCompletedBuckets(TaskQuartzImpl task) {
if (task.getWorkState() == null) {
return;
}
Expand All @@ -297,7 +293,7 @@ protected void assertOptimizedCompletedBuckets(TaskQuartzImpl task) {
}
}

protected int getTotalItemsProcessed(String coordinatorTaskOid) {
int getTotalItemsProcessed(String coordinatorTaskOid) {
OperationResult result = new OperationResult("getTotalItemsProcessed");
try {
Task coordinatorTask = taskManager.getTaskPlain(coordinatorTaskOid, result);
Expand All @@ -322,11 +318,11 @@ protected int getTotalItemsProcessed(String coordinatorTaskOid) {
}
}

protected void assertNumberOfBuckets(TaskQuartzImpl task, Integer expectedNumber) {
void assertNumberOfBuckets(TaskQuartzImpl task, Integer expectedNumber) {
assertEquals("Wrong # of expected buckets", expectedNumber, task.getWorkState().getNumberOfBuckets());
}

protected Collection<SelectorOptions<GetOperationOptions>> retrieveItemsNamed(Object... items) {
Collection<SelectorOptions<GetOperationOptions>> retrieveItemsNamed(Object... items) {
return schemaHelper.getOperationOptionsBuilder()
.items(items).retrieve()
.build();
Expand All @@ -349,4 +345,9 @@ protected void display(String title, DebugDumpable value) {
protected void display(String title, Object value) {
PrismTestUtil.display(title, value);
}

@NotNull
TaskQuartzImpl createTaskFromFile(String filePath, OperationResult result) throws Exception {
return taskManager.createTaskInstance(addObjectFromFile(filePath), result);
}
}
Expand Up @@ -821,8 +821,7 @@ public void test017WaitForSubtasksEmpty() throws Exception {
taskManager.getClusterManager().startClusterManagerThread();

try {
Task rootTask = taskManager.createTaskInstance(
addObjectFromFile(taskFilename()), result);
Task rootTask = createTaskFromFile(taskFilename(), result);
display("root task", rootTask);
waitForTaskClose(taskOid(), result, 40000, 3000);
} finally {
Expand Down Expand Up @@ -908,7 +907,7 @@ public void test019FinishedHandler() throws Exception {
public void test020QueryByExecutionStatus() throws Exception {
final OperationResult result = createOperationResult();

taskManager.createTaskInstance(addObjectFromFile(taskFilename()), result);
addObjectFromFile(taskFilename());

ObjectFilter filter1 = prismContext.queryFor(TaskType.class).item(TaskType.F_EXECUTION_STATUS).eq(TaskExecutionStatusType.WAITING).buildFilter();
ObjectFilter filter2 = prismContext.queryFor(TaskType.class).item(TaskType.F_WAITING_REASON).eq(TaskWaitingReasonType.OTHER).buildFilter();
Expand Down

This file was deleted.

This file was deleted.

Expand Up @@ -9,14 +9,7 @@
<!-- Testing single task -->

<task oid="91919191-76e0-59e2-86d6-556655660003"
xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3" xmlns:c="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ri="http://midpoint.evolveum.com/xml/ns/public/resource/instances/ef2bc95b-76e0-59e2-86d6-3d4f02d3ffff"
xmlns:ids="http://midpoint.evolveum.com/xml/ns/public/resource/idconnector/resource-schema-3.xsd"
xmlns:my="http://myself.me/schemas/whatever"
xsi:schemaLocation="http://midpoint.evolveum.com/xml/ns/public/common/common-3 ../../../../../../infra/schema/src/main/resources/xml/ns/public/common/common-3.xsd
http://www.w3.org/2001/XMLSchema ../../../../../../infra/schema/src/test/resources/standard/XMLSchema.xsd">
xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3" xmlns:c="http://midpoint.evolveum.com/xml/ns/public/common/common-3">

<name>Passive task 0003</name>

Expand Down

0 comments on commit 0be732e

Please sign in to comment.