TSK-1937: cleaned up usage of WithServiceProvider annotation

This commit is contained in:
Mustapha Zorgati 2022-08-10 12:01:03 +02:00
parent 82400aecb1
commit b1166939cd
7 changed files with 51 additions and 100 deletions

View File

@ -1,10 +1,12 @@
package acceptance.jobs.helper;
import static acceptance.jobs.helper.TaskUpdatePriorityWorkerAccTest.WithSpi.DummyPriorityServiceProvider.SPI_PRIORITY;
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.util.List;
import java.util.OptionalInt;
import java.util.function.IntPredicate;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Nested;
@ -125,7 +127,7 @@ class TaskUpdatePriorityWorkerAccTest {
@Nested
@WithServiceProvider(
serviceProviderInterface = PriorityServiceProvider.class,
serviceProviders = TestPriorityServiceProvider.class)
serviceProviders = DummyPriorityServiceProvider.class)
@TestInstance(Lifecycle.PER_CLASS)
class WithSpi {
@ -140,7 +142,6 @@ class TaskUpdatePriorityWorkerAccTest {
@Test
@WithAccessId(user = "admin")
void should_executeBatch() throws Exception {
// given
Task oldTask =
TaskBuilder.newTask()
.classificationSummary(classificationSummary)
@ -150,14 +151,20 @@ class TaskUpdatePriorityWorkerAccTest {
.primaryObjRef(DefaultTestEntities.defaultTestObjectReference().build())
.buildAndStore(taskService);
// when
final List<String> updatedTaskIds = worker.executeBatch(List.of(oldTask.getId()));
// then
final Task updatedTask = taskService.getTask(oldTask.getId());
List<String> updatedTaskIds = worker.executeBatch(List.of(oldTask.getId()));
Task updatedTask = taskService.getTask(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);
}
}
}
}

View File

@ -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));
}
}

View File

@ -5,6 +5,7 @@ import static pro.taskana.testapi.DefaultTestEntities.defaultTestClassification;
import static pro.taskana.testapi.DefaultTestEntities.defaultTestObjectReference;
import static pro.taskana.testapi.DefaultTestEntities.defaultTestWorkbasket;
import acceptance.task.update.UpdateManualPriorityWithSpiAccTest.TestStaticValuePriorityServiceProvider;
import java.util.List;
import java.util.OptionalInt;
import org.junit.jupiter.api.BeforeAll;
@ -35,8 +36,7 @@ import pro.taskana.workbasket.api.models.WorkbasketSummary;
@TaskanaIntegrationTest
@WithServiceProvider(
serviceProviderInterface = PriorityServiceProvider.class,
serviceProviders =
UpdateManualPriorityWithSpiAccTest.TestStaticValuePriorityServiceProvider.class)
serviceProviders = TestStaticValuePriorityServiceProvider.class)
class UpdateManualPriorityWithSpiAccTest {
private static final int SPI_PRIORITY = 5;
@ -46,8 +46,7 @@ class UpdateManualPriorityWithSpiAccTest {
@TaskanaInject ClassificationService classificationService;
@TaskanaInject WorkbasketService workbasketService;
public static class TestStaticValuePriorityServiceProvider implements PriorityServiceProvider {
static class TestStaticValuePriorityServiceProvider implements PriorityServiceProvider {
@Override
public OptionalInt calculatePriority(TaskSummary taskSummary) {
return OptionalInt.of(UpdateManualPriorityWithSpiAccTest.SPI_PRIORITY);

View File

@ -1,7 +1,9 @@
package acceptance.taskpreprocessing;
import static acceptance.taskpreprocessing.CreateTaskPreprocessingAccTest.TestCreateTaskPreprocessorProvider.SPI_VALUE;
import static org.assertj.core.api.Assertions.assertThat;
import acceptance.taskpreprocessing.CreateTaskPreprocessingAccTest.TestCreateTaskPreprocessorProvider;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@ -25,7 +27,7 @@ import pro.taskana.workbasket.api.models.WorkbasketSummary;
@TaskanaIntegrationTest
@WithServiceProvider(
serviceProviderInterface = CreateTaskPreprocessor.class,
serviceProviders = CreateTaskPreprocessingAccTest.TestCreateTaskPreprocessorProvider.class)
serviceProviders = TestCreateTaskPreprocessorProvider.class)
class CreateTaskPreprocessingAccTest {
@TaskanaInject TaskService taskService;
@ -62,15 +64,16 @@ class CreateTaskPreprocessingAccTest {
Task createdTask = taskService.createTask(newTaskToCreate);
assertThat(createdTask.getCustomField(TaskCustomField.CUSTOM_1))
.isEqualTo("preprocessedCustomField");
assertThat(createdTask.getCustomField(TaskCustomField.CUSTOM_1)).isEqualTo(SPI_VALUE);
}
public static class TestCreateTaskPreprocessorProvider implements CreateTaskPreprocessor {
static class TestCreateTaskPreprocessorProvider implements CreateTaskPreprocessor {
static final String SPI_VALUE = "preprocessedCustomField";
@Override
public void processTaskBeforeCreation(Task taskToProcess) {
taskToProcess.setCustomField(TaskCustomField.CUSTOM_1, "preprocessedCustomField");
taskToProcess.setCustomField(TaskCustomField.CUSTOM_1, SPI_VALUE);
}
}
}

View File

@ -3,6 +3,7 @@ package pro.taskana.testapi;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.List;
import java.util.OptionalInt;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
@ -12,6 +13,8 @@ import pro.taskana.TaskanaEngineConfiguration;
import pro.taskana.common.api.TaskanaEngine;
import pro.taskana.spi.priority.api.PriorityServiceProvider;
import pro.taskana.spi.priority.internal.PriorityServiceManager;
import pro.taskana.task.api.models.TaskSummary;
import pro.taskana.testapi.TaskanaInitializationExtensionTest.NestedTestClassWithServiceProvider.DummyPriorityServiceProvider;
@TaskanaIntegrationTest
class TaskanaInitializationExtensionTest {
@ -82,11 +85,10 @@ class TaskanaInitializationExtensionTest {
@WithServiceProvider(
serviceProviderInterface = PriorityServiceProvider.class,
serviceProviders = TestPriorityServiceProvider.class)
serviceProviders = DummyPriorityServiceProvider.class)
@Nested
@TestInstance(Lifecycle.PER_CLASS)
class NestedTestClassWithServiceProvider {
@TaskanaInject TaskanaEngineConfiguration taskanaEngineConfiguration;
@TaskanaInject TaskanaEngine taskanaEngine;
@ -109,6 +111,14 @@ class TaskanaInitializationExtensionTest {
assertThat(taskanaEngineConfiguration.getDomains())
.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(

View File

@ -2,6 +2,7 @@ package pro.taskana.testapi;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.OptionalInt;
import javax.sql.DataSource;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
@ -10,6 +11,8 @@ import org.junit.jupiter.api.TestInstance.Lifecycle;
import pro.taskana.TaskanaEngineConfiguration;
import pro.taskana.spi.priority.api.PriorityServiceProvider;
import pro.taskana.task.api.models.TaskSummary;
import pro.taskana.testapi.TestContainerExtensionTest.NestedTestClassWithServiceProvider.DummyPriorityServiceProvider;
@TaskanaIntegrationTest
class TestContainerExtensionTest {
@ -185,7 +188,7 @@ class TestContainerExtensionTest {
@WithServiceProvider(
serviceProviderInterface = PriorityServiceProvider.class,
serviceProviders = TestPriorityServiceProvider.class)
serviceProviders = DummyPriorityServiceProvider.class)
@Nested
@TestInstance(Lifecycle.PER_CLASS)
class NestedTestClassWithServiceProvider {
@ -209,5 +212,13 @@ class TestContainerExtensionTest {
assertThat(nestedSchemaName).isNotNull().isEqualTo(topLevelSchemaName);
}
class DummyPriorityServiceProvider implements PriorityServiceProvider {
@Override
public OptionalInt calculatePriority(TaskSummary taskSummary) {
// implementation not important for the tests
return OptionalInt.empty();
}
}
}
}

View File

@ -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));
}
}