TSK-1650: Added WorkbasketAccessSqlProvider

And made search for accessItems by Key and Domain case insensitive
This commit is contained in:
Tristan Eisermann 2021-08-05 09:21:44 +02:00 committed by Mustapha Zorgati
parent dc9e3a25ce
commit ed11a02b80
4 changed files with 194 additions and 72 deletions

View File

@ -1,13 +1,13 @@
package pro.taskana.workbasket.internal;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.UpdateProvider;
import pro.taskana.workbasket.internal.models.WorkbasketAccessItemImpl;
@ -15,11 +15,7 @@ import pro.taskana.workbasket.internal.models.WorkbasketAccessItemImpl;
@SuppressWarnings("checkstyle:LineLength")
public interface WorkbasketAccessMapper {
@Select(
"<script>SELECT ID, WORKBASKET_ID, ACCESS_ID, ACCESS_NAME, PERM_READ, PERM_OPEN, PERM_APPEND, PERM_TRANSFER, PERM_DISTRIBUTE, PERM_CUSTOM_1, PERM_CUSTOM_2, PERM_CUSTOM_3, PERM_CUSTOM_4, PERM_CUSTOM_5, PERM_CUSTOM_6, PERM_CUSTOM_7, PERM_CUSTOM_8, PERM_CUSTOM_9, PERM_CUSTOM_10, PERM_CUSTOM_11, PERM_CUSTOM_12 "
+ "FROM WORKBASKET_ACCESS_LIST WHERE ID = #{id} "
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>")
@SelectProvider(type = WorkbasketAccessSqlProvider.class, method = "findById")
@Result(property = "id", column = "ID")
@Result(property = "workbasketId", column = "WORKBASKET_ID")
@Result(property = "accessId", column = "ACCESS_ID")
@ -43,11 +39,7 @@ public interface WorkbasketAccessMapper {
@Result(property = "permCustom12", column = "PERM_CUSTOM_12")
WorkbasketAccessItemImpl findById(@Param("id") String id);
@Select(
"<script>SELECT WBA.ID, WORKBASKET_ID, WB.KEY, ACCESS_ID, ACCESS_NAME, PERM_READ, PERM_OPEN, PERM_APPEND, PERM_TRANSFER, PERM_DISTRIBUTE, PERM_CUSTOM_1, PERM_CUSTOM_2, PERM_CUSTOM_3, PERM_CUSTOM_4, PERM_CUSTOM_5, PERM_CUSTOM_6, PERM_CUSTOM_7, PERM_CUSTOM_8, PERM_CUSTOM_9, PERM_CUSTOM_10, PERM_CUSTOM_11, PERM_CUSTOM_12 "
+ "FROM WORKBASKET_ACCESS_LIST AS WBA LEFT JOIN WORKBASKET AS WB ON WORKBASKET_ID = WB.ID WHERE WORKBASKET_ID = #{id} "
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>")
@SelectProvider(type = WorkbasketAccessSqlProvider.class, method = "findByWorkbasketId")
@Result(property = "id", column = "ID")
@Result(property = "workbasketId", column = "WORKBASKET_ID")
@Result(property = "workbasketKey", column = "KEY")
@ -72,11 +64,7 @@ public interface WorkbasketAccessMapper {
@Result(property = "permCustom12", column = "PERM_CUSTOM_12")
List<WorkbasketAccessItemImpl> findByWorkbasketId(@Param("id") String id);
@Select(
"<script>SELECT WBA.ID, WORKBASKET_ID, WB.KEY, ACCESS_ID, ACCESS_NAME, PERM_READ, PERM_OPEN, PERM_APPEND, PERM_TRANSFER, PERM_DISTRIBUTE, PERM_CUSTOM_1, PERM_CUSTOM_2, PERM_CUSTOM_3, PERM_CUSTOM_4, PERM_CUSTOM_5, PERM_CUSTOM_6, PERM_CUSTOM_7, PERM_CUSTOM_8, PERM_CUSTOM_9, PERM_CUSTOM_10, PERM_CUSTOM_11, PERM_CUSTOM_12 "
+ "FROM WORKBASKET_ACCESS_LIST AS WBA LEFT JOIN WORKBASKET AS WB ON WORKBASKET_ID = WB.ID WHERE ACCESS_ID = #{id} "
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>")
@SelectProvider(type = WorkbasketAccessSqlProvider.class, method = "findByAccessId")
@Result(property = "id", column = "ID")
@Result(property = "workbasketId", column = "WORKBASKET_ID")
@Result(property = "workbasketKey", column = "KEY")
@ -101,41 +89,25 @@ public interface WorkbasketAccessMapper {
@Result(property = "permCustom12", column = "PERM_CUSTOM_12")
List<WorkbasketAccessItemImpl> findByAccessId(@Param("id") String id);
@Insert(
"INSERT INTO WORKBASKET_ACCESS_LIST (ID, WORKBASKET_ID, ACCESS_ID, ACCESS_NAME, PERM_READ, PERM_OPEN, PERM_APPEND, PERM_TRANSFER, PERM_DISTRIBUTE, PERM_CUSTOM_1, PERM_CUSTOM_2, PERM_CUSTOM_3, PERM_CUSTOM_4, PERM_CUSTOM_5, PERM_CUSTOM_6, PERM_CUSTOM_7, PERM_CUSTOM_8, PERM_CUSTOM_9, PERM_CUSTOM_10, PERM_CUSTOM_11, PERM_CUSTOM_12) "
+ "VALUES (#{workbasketAccessItem.id}, #{workbasketAccessItem.workbasketId}, #{workbasketAccessItem.accessId}, #{workbasketAccessItem.accessName}, #{workbasketAccessItem.permRead}, #{workbasketAccessItem.permOpen}, #{workbasketAccessItem.permAppend}, #{workbasketAccessItem.permTransfer}, #{workbasketAccessItem.permDistribute}, #{workbasketAccessItem.permCustom1}, #{workbasketAccessItem.permCustom2}, #{workbasketAccessItem.permCustom3}, #{workbasketAccessItem.permCustom4}, #{workbasketAccessItem.permCustom5}, #{workbasketAccessItem.permCustom6}, #{workbasketAccessItem.permCustom7}, #{workbasketAccessItem.permCustom8}, #{workbasketAccessItem.permCustom9}, #{workbasketAccessItem.permCustom10}, #{workbasketAccessItem.permCustom11}, #{workbasketAccessItem.permCustom12})")
@InsertProvider(type = WorkbasketAccessSqlProvider.class, method = "insert")
@Options(keyProperty = "id", keyColumn = "ID")
void insert(@Param("workbasketAccessItem") WorkbasketAccessItemImpl workbasketAccessItem);
@Update(
"UPDATE WORKBASKET_ACCESS_LIST SET WORKBASKET_ID = #{workbasketAccessItem.workbasketId}, ACCESS_ID = #{workbasketAccessItem.accessId}, ACCESS_NAME = #{workbasketAccessItem.accessName}, PERM_READ = #{workbasketAccessItem.permRead}, PERM_OPEN = #{workbasketAccessItem.permOpen}, PERM_APPEND = #{workbasketAccessItem.permAppend}, PERM_TRANSFER = #{workbasketAccessItem.permTransfer}, PERM_DISTRIBUTE = #{workbasketAccessItem.permDistribute}, PERM_CUSTOM_1 = #{workbasketAccessItem.permCustom1}, PERM_CUSTOM_2 = #{workbasketAccessItem.permCustom2}, PERM_CUSTOM_3 = #{workbasketAccessItem.permCustom3}, PERM_CUSTOM_4 = #{workbasketAccessItem.permCustom4}, PERM_CUSTOM_5 = #{workbasketAccessItem.permCustom5}, PERM_CUSTOM_6 = #{workbasketAccessItem.permCustom6}, PERM_CUSTOM_7 = #{workbasketAccessItem.permCustom7}, PERM_CUSTOM_8 = #{workbasketAccessItem.permCustom8}, PERM_CUSTOM_9 = #{workbasketAccessItem.permCustom9}, PERM_CUSTOM_10 = #{workbasketAccessItem.permCustom10}, PERM_CUSTOM_11 = #{workbasketAccessItem.permCustom11}, PERM_CUSTOM_12 = #{workbasketAccessItem.permCustom12} "
+ "WHERE id = #{workbasketAccessItem.id}")
@UpdateProvider(type = WorkbasketAccessSqlProvider.class, method = "update")
void update(@Param("workbasketAccessItem") WorkbasketAccessItemImpl workbasketAccessItem);
@Delete("DELETE FROM WORKBASKET_ACCESS_LIST WHERE ID = #{id}")
@DeleteProvider(type = WorkbasketAccessSqlProvider.class, method = "delete")
void delete(@Param("id") String id);
@Delete("DELETE FROM WORKBASKET_ACCESS_LIST WHERE WORKBASKET_ID = #{workbasketId}")
@DeleteProvider(
type = WorkbasketAccessSqlProvider.class,
method = "deleteAllAccessItemsForWorkbasketId")
void deleteAllAccessItemsForWorkbasketId(@Param("workbasketId") String workbasketId);
@Delete("DELETE FROM WORKBASKET_ACCESS_LIST where ACCESS_ID = #{accessId}")
@DeleteProvider(type = WorkbasketAccessSqlProvider.class, method = "deleteAccessItemsForAccessId")
void deleteAccessItemsForAccessId(@Param("accessId") String accessId);
@Select(
"<script>"
+ "<choose>"
+ "<when test=\"_databaseId == 'db2'\">"
+ "SELECT MAX(PERM_READ) AS P_READ, MAX(PERM_OPEN) AS P_OPEN, MAX(PERM_APPEND) AS P_APPEND, MAX(PERM_TRANSFER) AS P_TRANSFER, MAX(PERM_DISTRIBUTE) AS P_DISTRIBUTE, MAX(PERM_CUSTOM_1) AS P_CUSTOM_1, MAX(PERM_CUSTOM_2) AS P_CUSTOM_2, MAX(PERM_CUSTOM_3) AS P_CUSTOM_3, MAX(PERM_CUSTOM_4) AS P_CUSTOM_4, MAX(PERM_CUSTOM_5) AS P_CUSTOM_5, MAX(PERM_CUSTOM_6) AS P_CUSTOM_6, MAX(PERM_CUSTOM_7) AS P_CUSTOM_7, MAX(PERM_CUSTOM_8) AS P_CUSTOM_8, MAX(PERM_CUSTOM_9) AS P_CUSTOM_9, MAX(PERM_CUSTOM_10) AS P_CUSTOM_10, MAX(PERM_CUSTOM_11) AS P_CUSTOM_11, MAX(PERM_CUSTOM_12) AS P_CUSTOM_12 "
+ "</when>"
+ "<otherwise>"
+ "SELECT MAX(PERM_READ::int) AS P_READ, MAX(PERM_OPEN::int) AS P_OPEN, MAX(PERM_APPEND::int) AS P_APPEND, MAX(PERM_TRANSFER::int) AS P_TRANSFER, MAX(PERM_DISTRIBUTE::int) AS P_DISTRIBUTE, MAX(PERM_CUSTOM_1::int) AS P_CUSTOM_1, MAX(PERM_CUSTOM_2::int) AS P_CUSTOM_2, MAX(PERM_CUSTOM_3::int) AS P_CUSTOM_3, MAX(PERM_CUSTOM_4::int) AS P_CUSTOM_4, MAX(PERM_CUSTOM_5::int) AS P_CUSTOM_5, MAX(PERM_CUSTOM_6::int) AS P_CUSTOM_6, MAX(PERM_CUSTOM_7::int) AS P_CUSTOM_7, MAX(PERM_CUSTOM_8::int) AS P_CUSTOM_8, MAX(PERM_CUSTOM_9::int) AS P_CUSTOM_9, MAX(PERM_CUSTOM_10::int) AS P_CUSTOM_10, MAX(PERM_CUSTOM_11::int) AS P_CUSTOM_11, MAX(PERM_CUSTOM_12::int) AS P_CUSTOM_12 "
+ "</otherwise>"
+ "</choose>"
+ "FROM WORKBASKET_ACCESS_LIST "
+ "WHERE WORKBASKET_ID = #{workbasketId} "
+ "AND ACCESS_ID IN(<foreach item='item' collection='accessIds' separator=',' >#{item}</foreach>) "
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>")
@SelectProvider(type = WorkbasketAccessSqlProvider.class, method = "findByWorkbasketAndAccessId")
@Result(property = "id", column = "ID")
@Result(property = "workbasketId", column = "WORKBASKET_ID")
@Result(property = "accessId", column = "ACCESS_ID")
@ -160,21 +132,9 @@ public interface WorkbasketAccessMapper {
WorkbasketAccessItemImpl findByWorkbasketAndAccessId(
@Param("workbasketId") String workbasketId, @Param("accessIds") List<String> accessIds);
@Select(
"<script>"
+ "<choose>"
+ "<when test=\"_databaseId == 'db2'\">"
+ "SELECT MAX(PERM_READ) AS P_READ, MAX(PERM_OPEN) AS P_OPEN, MAX(PERM_APPEND) AS P_APPEND, MAX(PERM_TRANSFER) AS P_TRANSFER, MAX(PERM_DISTRIBUTE) AS P_DISTRIBUTE, MAX(PERM_CUSTOM_1) AS P_CUSTOM_1, MAX(PERM_CUSTOM_2) AS P_CUSTOM_2, MAX(PERM_CUSTOM_3) AS P_CUSTOM_3, MAX(PERM_CUSTOM_4) AS P_CUSTOM_4, MAX(PERM_CUSTOM_5) AS P_CUSTOM_5, MAX(PERM_CUSTOM_6) AS P_CUSTOM_6, MAX(PERM_CUSTOM_7) AS P_CUSTOM_7, MAX(PERM_CUSTOM_8) AS P_CUSTOM_8, MAX(PERM_CUSTOM_9) AS P_CUSTOM_9, MAX(PERM_CUSTOM_10) AS P_CUSTOM_10, MAX(PERM_CUSTOM_11) AS P_CUSTOM_11, MAX(PERM_CUSTOM_12) AS P_CUSTOM_12 "
+ "</when>"
+ "<otherwise>"
+ "SELECT MAX(PERM_READ::int) AS P_READ, MAX(PERM_OPEN::int) AS P_OPEN, MAX(PERM_APPEND::int) AS P_APPEND, MAX(PERM_TRANSFER::int) AS P_TRANSFER, MAX(PERM_DISTRIBUTE::int) AS P_DISTRIBUTE, MAX(PERM_CUSTOM_1::int) AS P_CUSTOM_1, MAX(PERM_CUSTOM_2::int) AS P_CUSTOM_2, MAX(PERM_CUSTOM_3::int) AS P_CUSTOM_3, MAX(PERM_CUSTOM_4::int) AS P_CUSTOM_4, MAX(PERM_CUSTOM_5::int) AS P_CUSTOM_5, MAX(PERM_CUSTOM_6::int) AS P_CUSTOM_6, MAX(PERM_CUSTOM_7::int) AS P_CUSTOM_7, MAX(PERM_CUSTOM_8::int) AS P_CUSTOM_8, MAX(PERM_CUSTOM_9::int) AS P_CUSTOM_9, MAX(PERM_CUSTOM_10::int) AS P_CUSTOM_10, MAX(PERM_CUSTOM_11::int) AS P_CUSTOM_11, MAX(PERM_CUSTOM_12::int) AS P_CUSTOM_12 "
+ "</otherwise>"
+ "</choose>"
+ "FROM WORKBASKET_ACCESS_LIST "
+ "WHERE WORKBASKET_ID in (SELECT ID FROM WORKBASKET WHERE KEY = #{workbasketKey} AND DOMAIN = #{domain} ) "
+ "AND ACCESS_ID IN(<foreach item='item' collection='accessIds' separator=',' >#{item}</foreach>) "
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>")
@SelectProvider(
type = WorkbasketAccessSqlProvider.class,
method = "findByWorkbasketKeyDomainAndAccessId")
@Result(property = "workbasketId", column = "WORKBASKET_ID")
@Result(property = "accessId", column = "ACCESS_ID")
@Result(property = "accessName", column = "ACCESS_NAME")

View File

@ -0,0 +1,157 @@
package pro.taskana.workbasket.internal;
import java.util.Arrays;
import java.util.Objects;
import java.util.stream.Collectors;
import pro.taskana.workbasket.api.WorkbasketPermission;
public class WorkbasketAccessSqlProvider {
public static String findById() {
return "<script>"
+ "SELECT "
+ "ID, "
+ commonSelectStatements()
+ "FROM WORKBASKET_ACCESS_LIST WHERE ID = #{id} "
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>";
}
public static String findByWorkbasketId() {
return "<script>"
+ "SELECT "
+ "WBA.ID, WB.KEY, "
+ commonSelectStatements()
+ "FROM WORKBASKET_ACCESS_LIST AS WBA "
+ "LEFT JOIN WORKBASKET AS WB ON WORKBASKET_ID = WB.ID "
+ "WHERE WORKBASKET_ID = #{id} "
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>";
}
public static String findByAccessId() {
return "<script>"
+ "SELECT "
+ "WBA.ID, WB.KEY, "
+ commonSelectStatements()
+ "FROM WORKBASKET_ACCESS_LIST AS WBA "
+ "LEFT JOIN WORKBASKET AS WB ON WORKBASKET_ID = WB.ID "
+ "WHERE ACCESS_ID = #{id} "
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>";
}
public static String insert() {
return "INSERT INTO WORKBASKET_ACCESS_LIST (ID, "
+ commonSelectStatements()
+ ") VALUES (#{workbasketAccessItem.id},"
+ " #{workbasketAccessItem.workbasketId}, #{workbasketAccessItem.accessId},"
+ " #{workbasketAccessItem.accessName}, #{workbasketAccessItem.permRead},"
+ " #{workbasketAccessItem.permOpen}, #{workbasketAccessItem.permAppend},"
+ " #{workbasketAccessItem.permTransfer}, #{workbasketAccessItem.permDistribute},"
+ " #{workbasketAccessItem.permCustom1}, #{workbasketAccessItem.permCustom2},"
+ " #{workbasketAccessItem.permCustom3}, #{workbasketAccessItem.permCustom4},"
+ " #{workbasketAccessItem.permCustom5}, #{workbasketAccessItem.permCustom6},"
+ " #{workbasketAccessItem.permCustom7}, #{workbasketAccessItem.permCustom8},"
+ " #{workbasketAccessItem.permCustom9}, #{workbasketAccessItem.permCustom10},"
+ " #{workbasketAccessItem.permCustom11}, #{workbasketAccessItem.permCustom12})";
}
public static String update() {
return "UPDATE WORKBASKET_ACCESS_LIST SET "
+ "WORKBASKET_ID = #{workbasketAccessItem."
+ "workbasketId}, ACCESS_ID = #{workbasketAccessItem.accessId}, "
+ "ACCESS_NAME = #{workbasketAccessItem.accessName}, "
+ "PERM_READ = #{workbasketAccessItem.permRead}, PERM_OPEN = #{workbasketAccessItem."
+ "permOpen}, PERM_APPEND = #{workbasketAccessItem.permAppend}, "
+ "PERM_TRANSFER = #{workbasketAccessItem.permTransfer}, "
+ "PERM_DISTRIBUTE = #{workbasketAccessItem.permDistribute}, "
+ "PERM_CUSTOM_1 = #{workbasketAccessItem.permCustom1}, "
+ "PERM_CUSTOM_2 = #{workbasketAccessItem.permCustom2}, "
+ "PERM_CUSTOM_3 = #{workbasketAccessItem.permCustom3}, "
+ "PERM_CUSTOM_4 = #{workbasketAccessItem.permCustom4}, "
+ "PERM_CUSTOM_5 = #{workbasketAccessItem.permCustom5}, "
+ "PERM_CUSTOM_6 = #{workbasketAccessItem.permCustom6}, "
+ "PERM_CUSTOM_7 = #{workbasketAccessItem.permCustom7}, "
+ "PERM_CUSTOM_8 = #{workbasketAccessItem.permCustom8}, "
+ "PERM_CUSTOM_9 = #{workbasketAccessItem.permCustom9}, "
+ "PERM_CUSTOM_10 = #{workbasketAccessItem.permCustom10}, "
+ "PERM_CUSTOM_11 = #{workbasketAccessItem.permCustom11}, "
+ "PERM_CUSTOM_12 = #{workbasketAccessItem.permCustom12} "
+ "WHERE id = #{workbasketAccessItem.id}";
}
public static String delete() {
return "DELETE FROM WORKBASKET_ACCESS_LIST WHERE ID = #{id}";
}
public static String deleteAllAccessItemsForWorkbasketId() {
return "DELETE FROM WORKBASKET_ACCESS_LIST WHERE WORKBASKET_ID = #{workbasketId}";
}
public static String deleteAccessItemsForAccessId() {
return "DELETE FROM WORKBASKET_ACCESS_LIST where ACCESS_ID = #{accessId}";
}
public static String findByWorkbasketAndAccessId() {
return "<script>"
+ "<choose>"
+ "<when test=\"_databaseId == 'db2'\">"
+ "SELECT "
+ getMaximumPermissionStatement(true)
+ "</when>"
+ "<otherwise>"
+ "SELECT "
+ getMaximumPermissionStatement(false)
+ "</otherwise>"
+ "</choose>"
+ "FROM WORKBASKET_ACCESS_LIST "
+ "WHERE WORKBASKET_ID = #{workbasketId} AND ACCESS_ID IN"
+ "(<foreach item='item' collection='accessIds' separator=',' >#{item}</foreach>) "
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>";
}
public static String findByWorkbasketKeyDomainAndAccessId() {
return "<script>"
+ "<choose>"
+ "<when test=\"_databaseId == 'db2'\">"
+ "SELECT "
+ getMaximumPermissionStatement(true)
+ "</when>"
+ "<otherwise>"
+ "SELECT "
+ getMaximumPermissionStatement(false)
+ "</otherwise>"
+ "</choose>"
+ "FROM WORKBASKET_ACCESS_LIST "
+ "WHERE WORKBASKET_ID in "
+ "(SELECT ID FROM WORKBASKET WHERE UPPER(KEY) = UPPER(#{workbasketKey}) AND UPPER(DOMAIN) = UPPER(#{domain}) )"
+ "AND ACCESS_ID IN"
+ "(<foreach item='item' collection='accessIds' separator=',' >#{item}</foreach>)"
+ "<if test=\"_databaseId == 'db2'\">with UR</if>"
+ "</script>";
}
private static String getMaximumPermissionStatement(boolean isNotDb2) {
return Arrays.stream(WorkbasketPermission.values())
.map(
perm -> {
String temp = "MAX(PERM_" + perm;
if (isNotDb2) {
temp += "::int";
}
temp += ") AS P_" + perm;
return temp;
})
.collect(Collectors.joining(", "));
}
private static String commonSelectStatements() {
return "WORKBASKET_ID, ACCESS_ID, ACCESS_NAME, "
+ Arrays.stream(WorkbasketPermission.values())
.map(Objects::toString)
.collect(Collectors.joining(", PERM_", "PERM_", " "));
}
}

View File

@ -174,9 +174,9 @@ public final class TaskanaEngineTestConfiguration {
String jdbcDriver = "org.h2.Driver";
String jdbcUrl =
"jdbc:h2:mem:taskana;IGNORECASE=TRUE;LOCK_MODE=0;"
+ "INIT=CREATE SCHEMA IF NOT EXISTS TASKANA\\;"
+ "SET COLLATION DEFAULT_de_DE ";
"jdbc:h2:mem:taskana;"
// + "IGNORECASE=TRUE;"
+ "LOCK_MODE=0;INIT=CREATE SCHEMA IF NOT EXISTS TASKANA\\;SET COLLATION DEFAULT_de_DE ";
String dbUserName = "sa";
String dbPassword = "sa";
PooledDataSource ds =

View File

@ -32,7 +32,7 @@ class GetWorkbasketAccTest extends AbstractAccTest {
@WithAccessId(user = "user-1-2")
@Test
void testGetWorkbasketById() throws Exception {
void should_ReturnWorkbasketWithId_When_IdIsValidAndUserHasPermissions() throws Exception {
Workbasket workbasket =
WORKBASKET_SERVICE.getWorkbasket("WBI:100000000000000000000000000000000007");
@ -82,9 +82,10 @@ class GetWorkbasketAccTest extends AbstractAccTest {
@WithAccessId(user = "user-1-2")
@Test
void testGetWorkbasketByKeyAndDomain() throws Exception {
void should_ReturnWorkbasketWithKeyAndDomainAndIgnoreCapitalization_When_KeyAndDomainAreValid()
throws Exception {
Workbasket workbasket = WORKBASKET_SERVICE.getWorkbasket("USER-1-2", "DOMAIN_A");
Workbasket workbasket = WORKBASKET_SERVICE.getWorkbasket("user-1-2", "domain_a");
assertThat(workbasket.getId()).isEqualTo("WBI:100000000000000000000000000000000007");
assertThat(workbasket.getDescription()).isEqualTo("PPK User 2 KSC 1");
@ -103,7 +104,7 @@ class GetWorkbasketAccTest extends AbstractAccTest {
@WithAccessId(user = "user-1-1", groups = GROUP_1_DN)
@Test
void testGetWorkbasketPermissions() {
void should_ReturnWorkbasketPermissions_When_IdIsValidAndUserHasPermissions() {
List<WorkbasketPermission> permissions =
WORKBASKET_SERVICE.getPermissionsForWorkbasket("WBI:100000000000000000000000000000000007");
@ -116,7 +117,7 @@ class GetWorkbasketAccTest extends AbstractAccTest {
@WithAccessId(user = "user-1-1")
@Test
void testGetWorkbasketPermissionsForInvalidWorkbasketId() {
void should_ReturnNoWorkbasketPermissions_When_ProvidingAnInvalidId() {
List<WorkbasketPermission> permissions =
WORKBASKET_SERVICE.getPermissionsForWorkbasket("WBI:invalid");
@ -125,7 +126,7 @@ class GetWorkbasketAccTest extends AbstractAccTest {
@WithAccessId(user = "user-1-2")
@Test
void testGetWorkbasketAsSummary() throws Exception {
void should_ReturnWorkbasketSummary_When_IdIsValidAndSummaryIsRequested() throws Exception {
WorkbasketSummary workbasketSummary =
WORKBASKET_SERVICE.getWorkbasket("WBI:100000000000000000000000000000000007").asSummary();
@ -148,7 +149,7 @@ class GetWorkbasketAccTest extends AbstractAccTest {
}
@Test
void testThrowsExceptionIfIdIsInvalid() {
void should_ThrowException_When_ProvidingAnInvalidId() {
assertThatThrownBy(() -> WORKBASKET_SERVICE.getWorkbasket("INVALID_ID"))
.isInstanceOf(WorkbasketNotFoundException.class);
}
@ -156,26 +157,30 @@ class GetWorkbasketAccTest extends AbstractAccTest {
@Test
void testThrowsExceptionIfKeyOrDomainIsInvalid() {
assertThatThrownBy(() -> WORKBASKET_SERVICE.getWorkbasket("INVALID_KEY", "INVALID_DOMAIN"))
assertThatThrownBy(() -> WORKBASKET_SERVICE.getWorkbasket("USER-1-2", "INVALID_DOMAIN"))
.isInstanceOf(WorkbasketNotFoundException.class);
assertThatThrownBy(() -> WORKBASKET_SERVICE.getWorkbasket("INVALID_ID", "DOMAIN_A"))
.isInstanceOf(WorkbasketNotFoundException.class);
assertThatThrownBy(() -> WORKBASKET_SERVICE.getWorkbasket("INAVLID_ID", "INVALID_DOMAIN"))
.isInstanceOf(WorkbasketNotFoundException.class);
}
@Test
void testGetByIdNotAuthorized() {
void should_ThrowException_When_TryingToGetByIdWithoutPermissions() {
ThrowingCallable call =
() -> WORKBASKET_SERVICE.getWorkbasket("WBI:100000000000000000000000000000000001");
assertThatThrownBy(call).isInstanceOf(NotAuthorizedException.class);
}
@Test
void testGetByKeyDomainNotAuthorized() {
void should_ThrowException_When_TryingToGetByKeyAndDomainWithoutPermissions() {
assertThatThrownBy(() -> WORKBASKET_SERVICE.getWorkbasket("GPK_KSC", "DOMAIN_A"))
.isInstanceOf(NotAuthorizedException.class);
}
@WithAccessId(user = "user-1-1")
@Test
void testGetWorkbasketByIdNotExisting() {
void should_ThrowException_When_TryingToGetWithAnInvalidId() {
assertThatThrownBy(() -> WORKBASKET_SERVICE.getWorkbasket("NOT EXISTING ID"))
.isInstanceOf(WorkbasketNotFoundException.class);
}