Closes #2211 classificationTypes are List instead of Set, because of sorting

This commit is contained in:
arolfes 2023-04-12 10:43:20 +02:00 committed by Alex
parent 54382bc8f5
commit d73beb3a3c
3 changed files with 18 additions and 18 deletions

View File

@ -100,7 +100,7 @@ class TaskanaConfigurationTest {
Arrays.stream(TaskanaRole.values())
.collect(Collectors.toMap(Function.identity(), r -> Set.of())));
// classification configuration
assertThat(configuration.getClassificationTypes()).isEqualTo(Collections.emptySet());
assertThat(configuration.getClassificationTypes()).isEqualTo(Collections.emptyList());
assertThat(configuration.getClassificationCategoriesByType())
.isEqualTo(Collections.emptyMap());
// working time configuration
@ -171,7 +171,7 @@ class TaskanaConfigurationTest {
Map.entry(TaskanaRole.TASK_ADMIN, Set.of("taskadmin-1", "taskadmin-2")),
Map.entry(TaskanaRole.TASK_ROUTER, Set.of("taskrouter-1", "taskrouter-2"))));
// classification configuration
assertThat(configuration.getClassificationTypes()).isEqualTo(Set.of("TASK", "DOCUMENT"));
assertThat(configuration.getClassificationTypes()).isEqualTo(List.of("TASK", "DOCUMENT"));
assertThat(configuration.getClassificationCategoriesByType())
.isEqualTo(
Map.ofEntries(
@ -247,7 +247,7 @@ class TaskanaConfigurationTest {
Map.entry(TaskanaRole.TASK_ADMIN, Set.of("task_admin")),
Map.entry(TaskanaRole.TASK_ROUTER, Set.of("task_router")));
// classification configuration
Set<String> expectedClassificationTypes = Set.of("TYPE_A", "TYPE_B");
List<String> expectedClassificationTypes = List.of("TYPE_A", "TYPE_B");
Map<String, Set<String>> expectedClassificationCategories =
Map.of("TYPE_A", Set.of("CATEGORY_A"), "TYPE_B", Set.of("CATEGORY_B"));
// working time configuration
@ -435,7 +435,7 @@ class TaskanaConfigurationTest {
// authentication configuration
.roleMap(Map.of(TaskanaRole.ADMIN, Set.of("admin")))
// classification configuration
.classificationTypes(Set.of("typeA", "typeB"))
.classificationTypes(List.of("typeA", "typeB"))
.classificationCategoriesByType(
Map.of("typeA", Set.of("categoryA"), "typeB", Set.of("categoryB")))
// working time configuration
@ -624,7 +624,7 @@ class TaskanaConfigurationTest {
new TaskanaConfiguration.Builder(
TestContainerExtension.createDataSourceForH2(), false, "TASKANA")
// necessary to bypass validation since Classification Categories will be an empty Map
.classificationTypes(Set.of(""));
.classificationTypes(List.of(""));
initializeWithMutableCollectionsAsMapValues(builder);
Stream<Field> fields =
ReflectionUtil.retrieveAllFields(TaskanaConfiguration.class).stream()
@ -672,7 +672,7 @@ class TaskanaConfigurationTest {
new TaskanaConfiguration.Builder(
TestContainerExtension.createDataSourceForH2(), false, "TASKANA")
// necessary to bypass validation since Classification Categories will be an empty Map
.classificationTypes(Set.of());
.classificationTypes(List.of());
initializeWithMutableMaps(builder);
Stream<Field> fields =
ReflectionUtil.retrieveAllFields(TaskanaConfiguration.class).stream()
@ -919,7 +919,7 @@ class TaskanaConfigurationTest {
TaskanaConfiguration.Builder builder =
new TaskanaConfiguration.Builder(
TestContainerExtension.createDataSourceForH2(), false, "TASKANA")
.classificationTypes(Set.of("valid"))
.classificationTypes(List.of("valid"))
.classificationCategoriesByType(Map.of("does_not_exist", Set.of("a", "b")));
ThrowingCallable call = builder::build;
@ -938,7 +938,7 @@ class TaskanaConfigurationTest {
TaskanaConfiguration.Builder builder =
new TaskanaConfiguration.Builder(
TestContainerExtension.createDataSourceForH2(), false, "TASKANA")
.classificationTypes(Set.of("type1", "type2"))
.classificationTypes(List.of("type1", "type2"))
.classificationCategoriesByType(Map.of("type1", Set.of("a", "b")));
ThrowingCallable call = builder::build;
@ -948,7 +948,7 @@ class TaskanaConfigurationTest {
.hasMessageContaining(
"Some Classification Categories for parameter classificationTypes "
+ "(taskana.classification.types) are missing. "
+ "configured: [TYPE2, TYPE1] detected: [TYPE1]");
+ "configured: [TYPE1, TYPE2] detected: [TYPE1]");
}
@ParameterizedTest
@ -988,7 +988,7 @@ class TaskanaConfigurationTest {
void should_MakeClassificationTypesUpperCase() {
TaskanaConfiguration configuration =
new Builder(TestContainerExtension.createDataSourceForH2(), false, "TASKANA")
.classificationTypes(Set.of("a", "b"))
.classificationTypes(List.of("a", "b"))
.classificationCategoriesByType(
Map.ofEntries(Map.entry("a", Set.of()), Map.entry("b", Set.of())))
.build();
@ -1000,7 +1000,7 @@ class TaskanaConfigurationTest {
void should_MakeClassificationCategoriesUpperCase() {
TaskanaConfiguration configuration =
new Builder(TestContainerExtension.createDataSourceForH2(), false, "TASKANA")
.classificationTypes(Set.of("type_a", "type_b"))
.classificationTypes(List.of("type_a", "type_b"))
.classificationCategoriesByType(
Map.ofEntries(
Map.entry("type_a", Set.of("a", "b")), Map.entry("type_b", Set.of("c", "d"))))

View File

@ -67,7 +67,7 @@ public class TaskanaConfiguration {
// endregion
// region classification configuration
private final Set<String> classificationTypes;
private final List<String> classificationTypes;
private final Map<String, Set<String>> classificationCategoriesByType;
// endregion
@ -142,7 +142,7 @@ public class TaskanaConfiguration {
Collectors.toUnmodifiableMap(
Entry::getKey, e -> Collections.unmodifiableSet(e.getValue())));
// classification configuration
this.classificationTypes = Collections.unmodifiableSet(builder.classificationTypes);
this.classificationTypes = Collections.unmodifiableList(builder.classificationTypes);
this.classificationCategoriesByType =
builder.classificationCategoriesByType.entrySet().stream()
.collect(
@ -252,7 +252,7 @@ public class TaskanaConfiguration {
return roleMap;
}
public Set<String> getClassificationTypes() {
public List<String> getClassificationTypes() {
return classificationTypes;
}
@ -629,7 +629,7 @@ public class TaskanaConfiguration {
// region classification configuration
@TaskanaProperty("taskana.classification.types")
private Set<String> classificationTypes = new HashSet<>();
private List<String> classificationTypes = new ArrayList<>();
@TaskanaProperty("taskana.classification.categories")
private Map<String, Set<String>> classificationCategoriesByType = new HashMap<>();
@ -928,7 +928,7 @@ public class TaskanaConfiguration {
// region classification configuration
public Builder classificationTypes(Set<String> classificationTypes) {
public Builder classificationTypes(List<String> classificationTypes) {
this.classificationTypes = classificationTypes;
return this;
}
@ -1171,7 +1171,7 @@ public class TaskanaConfiguration {
private void adjustConfiguration() {
domains = domains.stream().map(String::toUpperCase).collect(Collectors.toList());
classificationTypes =
classificationTypes.stream().map(String::toUpperCase).collect(Collectors.toSet());
classificationTypes.stream().map(String::toUpperCase).collect(Collectors.toList());
classificationCategoriesByType =
classificationCategoriesByType.entrySet().stream()
.map(

View File

@ -78,7 +78,7 @@ public class TaskanaEngineController {
*/
@GetMapping(path = RestEndpoints.URL_CLASSIFICATION_TYPES)
@Transactional(readOnly = true, rollbackFor = Exception.class)
public ResponseEntity<Set<String>> getClassificationTypes() {
public ResponseEntity<List<String>> getClassificationTypes() {
return ResponseEntity.ok(taskanaConfiguration.getClassificationTypes());
}