TSK-1937: cleaned up usage of WithServiceProvider annotation
This commit is contained in:
parent
82400aecb1
commit
b1166939cd
|
|
@ -1,10 +1,12 @@
|
||||||
package acceptance.jobs.helper;
|
package acceptance.jobs.helper;
|
||||||
|
|
||||||
|
import static acceptance.jobs.helper.TaskUpdatePriorityWorkerAccTest.WithSpi.DummyPriorityServiceProvider.SPI_PRIORITY;
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import acceptance.priorityservice.TestPriorityServiceProvider;
|
import acceptance.jobs.helper.TaskUpdatePriorityWorkerAccTest.WithSpi.DummyPriorityServiceProvider;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.OptionalInt;
|
||||||
import java.util.function.IntPredicate;
|
import java.util.function.IntPredicate;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Nested;
|
import org.junit.jupiter.api.Nested;
|
||||||
|
|
@ -125,7 +127,7 @@ class TaskUpdatePriorityWorkerAccTest {
|
||||||
@Nested
|
@Nested
|
||||||
@WithServiceProvider(
|
@WithServiceProvider(
|
||||||
serviceProviderInterface = PriorityServiceProvider.class,
|
serviceProviderInterface = PriorityServiceProvider.class,
|
||||||
serviceProviders = TestPriorityServiceProvider.class)
|
serviceProviders = DummyPriorityServiceProvider.class)
|
||||||
@TestInstance(Lifecycle.PER_CLASS)
|
@TestInstance(Lifecycle.PER_CLASS)
|
||||||
class WithSpi {
|
class WithSpi {
|
||||||
|
|
||||||
|
|
@ -140,7 +142,6 @@ class TaskUpdatePriorityWorkerAccTest {
|
||||||
@Test
|
@Test
|
||||||
@WithAccessId(user = "admin")
|
@WithAccessId(user = "admin")
|
||||||
void should_executeBatch() throws Exception {
|
void should_executeBatch() throws Exception {
|
||||||
// given
|
|
||||||
Task oldTask =
|
Task oldTask =
|
||||||
TaskBuilder.newTask()
|
TaskBuilder.newTask()
|
||||||
.classificationSummary(classificationSummary)
|
.classificationSummary(classificationSummary)
|
||||||
|
|
@ -150,14 +151,20 @@ class TaskUpdatePriorityWorkerAccTest {
|
||||||
.primaryObjRef(DefaultTestEntities.defaultTestObjectReference().build())
|
.primaryObjRef(DefaultTestEntities.defaultTestObjectReference().build())
|
||||||
.buildAndStore(taskService);
|
.buildAndStore(taskService);
|
||||||
|
|
||||||
// when
|
List<String> updatedTaskIds = worker.executeBatch(List.of(oldTask.getId()));
|
||||||
final List<String> updatedTaskIds = worker.executeBatch(List.of(oldTask.getId()));
|
|
||||||
|
|
||||||
// then
|
|
||||||
final Task updatedTask = taskService.getTask(oldTask.getId());
|
|
||||||
|
|
||||||
|
Task updatedTask = taskService.getTask(oldTask.getId());
|
||||||
assertThat(updatedTaskIds).containsExactly(oldTask.getId());
|
assertThat(updatedTaskIds).containsExactly(oldTask.getId());
|
||||||
assertThat(updatedTask.getPriority()).isNotEqualTo(oldTask.getPriority());
|
assertThat(updatedTask.getPriority()).isEqualTo(SPI_PRIORITY);
|
||||||
|
}
|
||||||
|
|
||||||
|
class DummyPriorityServiceProvider implements PriorityServiceProvider {
|
||||||
|
static final int SPI_PRIORITY = 10;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OptionalInt calculatePriority(TaskSummary taskSummary) {
|
||||||
|
return OptionalInt.of(SPI_PRIORITY);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
package acceptance.priorityservice;
|
|
||||||
|
|
||||||
import java.time.Duration;
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.OptionalInt;
|
|
||||||
|
|
||||||
import pro.taskana.common.api.WorkingDaysToDaysConverter;
|
|
||||||
import pro.taskana.common.api.WorkingTimeCalculator;
|
|
||||||
import pro.taskana.spi.priority.api.PriorityServiceProvider;
|
|
||||||
import pro.taskana.task.api.TaskCustomField;
|
|
||||||
import pro.taskana.task.api.models.TaskSummary;
|
|
||||||
|
|
||||||
public class TestPriorityServiceProvider implements PriorityServiceProvider {
|
|
||||||
private static final int MULTIPLIER = 10;
|
|
||||||
|
|
||||||
private final WorkingDaysToDaysConverter converter = new WorkingDaysToDaysConverter(true, true);
|
|
||||||
private final WorkingTimeCalculator calculator = new WorkingTimeCalculator(converter);
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public OptionalInt calculatePriority(TaskSummary taskSummary) {
|
|
||||||
|
|
||||||
long priority;
|
|
||||||
try {
|
|
||||||
priority =
|
|
||||||
calculator
|
|
||||||
.workingTimeBetweenTwoTimestamps(taskSummary.getCreated(), Instant.now())
|
|
||||||
.toMinutes()
|
|
||||||
+ 1;
|
|
||||||
} catch (Exception e) {
|
|
||||||
priority = Duration.between(taskSummary.getCreated(), Instant.now()).toMinutes();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Boolean.parseBoolean(taskSummary.getCustomField(TaskCustomField.CUSTOM_6))) {
|
|
||||||
priority *= MULTIPLIER;
|
|
||||||
}
|
|
||||||
|
|
||||||
return OptionalInt.of(Math.toIntExact(priority));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -5,6 +5,7 @@ import static pro.taskana.testapi.DefaultTestEntities.defaultTestClassification;
|
||||||
import static pro.taskana.testapi.DefaultTestEntities.defaultTestObjectReference;
|
import static pro.taskana.testapi.DefaultTestEntities.defaultTestObjectReference;
|
||||||
import static pro.taskana.testapi.DefaultTestEntities.defaultTestWorkbasket;
|
import static pro.taskana.testapi.DefaultTestEntities.defaultTestWorkbasket;
|
||||||
|
|
||||||
|
import acceptance.task.update.UpdateManualPriorityWithSpiAccTest.TestStaticValuePriorityServiceProvider;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.OptionalInt;
|
import java.util.OptionalInt;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
|
|
@ -35,8 +36,7 @@ import pro.taskana.workbasket.api.models.WorkbasketSummary;
|
||||||
@TaskanaIntegrationTest
|
@TaskanaIntegrationTest
|
||||||
@WithServiceProvider(
|
@WithServiceProvider(
|
||||||
serviceProviderInterface = PriorityServiceProvider.class,
|
serviceProviderInterface = PriorityServiceProvider.class,
|
||||||
serviceProviders =
|
serviceProviders = TestStaticValuePriorityServiceProvider.class)
|
||||||
UpdateManualPriorityWithSpiAccTest.TestStaticValuePriorityServiceProvider.class)
|
|
||||||
class UpdateManualPriorityWithSpiAccTest {
|
class UpdateManualPriorityWithSpiAccTest {
|
||||||
|
|
||||||
private static final int SPI_PRIORITY = 5;
|
private static final int SPI_PRIORITY = 5;
|
||||||
|
|
@ -46,8 +46,7 @@ class UpdateManualPriorityWithSpiAccTest {
|
||||||
@TaskanaInject ClassificationService classificationService;
|
@TaskanaInject ClassificationService classificationService;
|
||||||
@TaskanaInject WorkbasketService workbasketService;
|
@TaskanaInject WorkbasketService workbasketService;
|
||||||
|
|
||||||
public static class TestStaticValuePriorityServiceProvider implements PriorityServiceProvider {
|
static class TestStaticValuePriorityServiceProvider implements PriorityServiceProvider {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OptionalInt calculatePriority(TaskSummary taskSummary) {
|
public OptionalInt calculatePriority(TaskSummary taskSummary) {
|
||||||
return OptionalInt.of(UpdateManualPriorityWithSpiAccTest.SPI_PRIORITY);
|
return OptionalInt.of(UpdateManualPriorityWithSpiAccTest.SPI_PRIORITY);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
package acceptance.taskpreprocessing;
|
package acceptance.taskpreprocessing;
|
||||||
|
|
||||||
|
import static acceptance.taskpreprocessing.CreateTaskPreprocessingAccTest.TestCreateTaskPreprocessorProvider.SPI_VALUE;
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
import acceptance.taskpreprocessing.CreateTaskPreprocessingAccTest.TestCreateTaskPreprocessorProvider;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|
@ -25,7 +27,7 @@ import pro.taskana.workbasket.api.models.WorkbasketSummary;
|
||||||
@TaskanaIntegrationTest
|
@TaskanaIntegrationTest
|
||||||
@WithServiceProvider(
|
@WithServiceProvider(
|
||||||
serviceProviderInterface = CreateTaskPreprocessor.class,
|
serviceProviderInterface = CreateTaskPreprocessor.class,
|
||||||
serviceProviders = CreateTaskPreprocessingAccTest.TestCreateTaskPreprocessorProvider.class)
|
serviceProviders = TestCreateTaskPreprocessorProvider.class)
|
||||||
class CreateTaskPreprocessingAccTest {
|
class CreateTaskPreprocessingAccTest {
|
||||||
|
|
||||||
@TaskanaInject TaskService taskService;
|
@TaskanaInject TaskService taskService;
|
||||||
|
|
@ -62,15 +64,16 @@ class CreateTaskPreprocessingAccTest {
|
||||||
|
|
||||||
Task createdTask = taskService.createTask(newTaskToCreate);
|
Task createdTask = taskService.createTask(newTaskToCreate);
|
||||||
|
|
||||||
assertThat(createdTask.getCustomField(TaskCustomField.CUSTOM_1))
|
assertThat(createdTask.getCustomField(TaskCustomField.CUSTOM_1)).isEqualTo(SPI_VALUE);
|
||||||
.isEqualTo("preprocessedCustomField");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TestCreateTaskPreprocessorProvider implements CreateTaskPreprocessor {
|
static class TestCreateTaskPreprocessorProvider implements CreateTaskPreprocessor {
|
||||||
|
|
||||||
|
static final String SPI_VALUE = "preprocessedCustomField";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void processTaskBeforeCreation(Task taskToProcess) {
|
public void processTaskBeforeCreation(Task taskToProcess) {
|
||||||
taskToProcess.setCustomField(TaskCustomField.CUSTOM_1, "preprocessedCustomField");
|
taskToProcess.setCustomField(TaskCustomField.CUSTOM_1, SPI_VALUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package pro.taskana.testapi;
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.OptionalInt;
|
||||||
import org.junit.jupiter.api.Nested;
|
import org.junit.jupiter.api.Nested;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.TestInstance;
|
import org.junit.jupiter.api.TestInstance;
|
||||||
|
|
@ -12,6 +13,8 @@ import pro.taskana.TaskanaEngineConfiguration;
|
||||||
import pro.taskana.common.api.TaskanaEngine;
|
import pro.taskana.common.api.TaskanaEngine;
|
||||||
import pro.taskana.spi.priority.api.PriorityServiceProvider;
|
import pro.taskana.spi.priority.api.PriorityServiceProvider;
|
||||||
import pro.taskana.spi.priority.internal.PriorityServiceManager;
|
import pro.taskana.spi.priority.internal.PriorityServiceManager;
|
||||||
|
import pro.taskana.task.api.models.TaskSummary;
|
||||||
|
import pro.taskana.testapi.TaskanaInitializationExtensionTest.NestedTestClassWithServiceProvider.DummyPriorityServiceProvider;
|
||||||
|
|
||||||
@TaskanaIntegrationTest
|
@TaskanaIntegrationTest
|
||||||
class TaskanaInitializationExtensionTest {
|
class TaskanaInitializationExtensionTest {
|
||||||
|
|
@ -82,11 +85,10 @@ class TaskanaInitializationExtensionTest {
|
||||||
|
|
||||||
@WithServiceProvider(
|
@WithServiceProvider(
|
||||||
serviceProviderInterface = PriorityServiceProvider.class,
|
serviceProviderInterface = PriorityServiceProvider.class,
|
||||||
serviceProviders = TestPriorityServiceProvider.class)
|
serviceProviders = DummyPriorityServiceProvider.class)
|
||||||
@Nested
|
@Nested
|
||||||
@TestInstance(Lifecycle.PER_CLASS)
|
@TestInstance(Lifecycle.PER_CLASS)
|
||||||
class NestedTestClassWithServiceProvider {
|
class NestedTestClassWithServiceProvider {
|
||||||
|
|
||||||
@TaskanaInject TaskanaEngineConfiguration taskanaEngineConfiguration;
|
@TaskanaInject TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||||
@TaskanaInject TaskanaEngine taskanaEngine;
|
@TaskanaInject TaskanaEngine taskanaEngine;
|
||||||
|
|
||||||
|
|
@ -109,6 +111,14 @@ class TaskanaInitializationExtensionTest {
|
||||||
assertThat(taskanaEngineConfiguration.getDomains())
|
assertThat(taskanaEngineConfiguration.getDomains())
|
||||||
.containsExactlyInAnyOrder("DOMAIN_A", "DOMAIN_B");
|
.containsExactlyInAnyOrder("DOMAIN_A", "DOMAIN_B");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class DummyPriorityServiceProvider implements PriorityServiceProvider {
|
||||||
|
@Override
|
||||||
|
public OptionalInt calculatePriority(TaskSummary taskSummary) {
|
||||||
|
// implementation not important for the tests
|
||||||
|
return OptionalInt.empty();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@WithServiceProvider(
|
@WithServiceProvider(
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package pro.taskana.testapi;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
import java.util.OptionalInt;
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
import org.junit.jupiter.api.Nested;
|
import org.junit.jupiter.api.Nested;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
@ -10,6 +11,8 @@ import org.junit.jupiter.api.TestInstance.Lifecycle;
|
||||||
|
|
||||||
import pro.taskana.TaskanaEngineConfiguration;
|
import pro.taskana.TaskanaEngineConfiguration;
|
||||||
import pro.taskana.spi.priority.api.PriorityServiceProvider;
|
import pro.taskana.spi.priority.api.PriorityServiceProvider;
|
||||||
|
import pro.taskana.task.api.models.TaskSummary;
|
||||||
|
import pro.taskana.testapi.TestContainerExtensionTest.NestedTestClassWithServiceProvider.DummyPriorityServiceProvider;
|
||||||
|
|
||||||
@TaskanaIntegrationTest
|
@TaskanaIntegrationTest
|
||||||
class TestContainerExtensionTest {
|
class TestContainerExtensionTest {
|
||||||
|
|
@ -185,7 +188,7 @@ class TestContainerExtensionTest {
|
||||||
|
|
||||||
@WithServiceProvider(
|
@WithServiceProvider(
|
||||||
serviceProviderInterface = PriorityServiceProvider.class,
|
serviceProviderInterface = PriorityServiceProvider.class,
|
||||||
serviceProviders = TestPriorityServiceProvider.class)
|
serviceProviders = DummyPriorityServiceProvider.class)
|
||||||
@Nested
|
@Nested
|
||||||
@TestInstance(Lifecycle.PER_CLASS)
|
@TestInstance(Lifecycle.PER_CLASS)
|
||||||
class NestedTestClassWithServiceProvider {
|
class NestedTestClassWithServiceProvider {
|
||||||
|
|
@ -209,5 +212,13 @@ class TestContainerExtensionTest {
|
||||||
|
|
||||||
assertThat(nestedSchemaName).isNotNull().isEqualTo(topLevelSchemaName);
|
assertThat(nestedSchemaName).isNotNull().isEqualTo(topLevelSchemaName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class DummyPriorityServiceProvider implements PriorityServiceProvider {
|
||||||
|
@Override
|
||||||
|
public OptionalInt calculatePriority(TaskSummary taskSummary) {
|
||||||
|
// implementation not important for the tests
|
||||||
|
return OptionalInt.empty();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
package pro.taskana.testapi;
|
|
||||||
|
|
||||||
import java.time.Duration;
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.OptionalInt;
|
|
||||||
|
|
||||||
import pro.taskana.common.api.WorkingDaysToDaysConverter;
|
|
||||||
import pro.taskana.common.api.WorkingTimeCalculator;
|
|
||||||
import pro.taskana.spi.priority.api.PriorityServiceProvider;
|
|
||||||
import pro.taskana.task.api.TaskCustomField;
|
|
||||||
import pro.taskana.task.api.models.TaskSummary;
|
|
||||||
|
|
||||||
public class TestPriorityServiceProvider implements PriorityServiceProvider {
|
|
||||||
|
|
||||||
private static final int MULTIPLIER = 10;
|
|
||||||
|
|
||||||
private final WorkingDaysToDaysConverter converter = new WorkingDaysToDaysConverter(true, true);
|
|
||||||
private final WorkingTimeCalculator calculator = new WorkingTimeCalculator(converter);
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public OptionalInt calculatePriority(TaskSummary taskSummary) {
|
|
||||||
|
|
||||||
long priority;
|
|
||||||
try {
|
|
||||||
priority =
|
|
||||||
calculator
|
|
||||||
.workingTimeBetweenTwoTimestamps(taskSummary.getCreated(), Instant.now())
|
|
||||||
.toMinutes()
|
|
||||||
+ 1;
|
|
||||||
} catch (Exception e) {
|
|
||||||
priority = Duration.between(taskSummary.getCreated(), Instant.now()).toMinutes();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Boolean.parseBoolean(taskSummary.getCustomField(TaskCustomField.CUSTOM_6))) {
|
|
||||||
priority *= MULTIPLIER;
|
|
||||||
}
|
|
||||||
|
|
||||||
return OptionalInt.of(Math.toIntExact(priority));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue