From 81f251c0168a43f78a14538cbe2f757823cb1fa8 Mon Sep 17 00:00:00 2001 From: Yanick Minder Date: Mon, 17 Feb 2025 07:13:29 +0100 Subject: [PATCH] fix tests by fixing view --- .../okr/repository/ActionRepository.java | 4 +- .../okr/repository/CheckInRepository.java | 4 +- .../okr/repository/KeyResultRepository.java | 2 +- .../okr/repository/ObjectiveRepository.java | 4 +- .../puzzle/okr/repository/TeamRepository.java | 2 +- .../puzzle/okr/repository/UnitRepository.java | 8 +- .../puzzle/okr/repository/UserRepository.java | 4 +- .../persistence/ActionPersistenceService.java | 2 +- .../CheckInPersistenceService.java | 4 +- .../KeyResultPersistenceService.java | 3 +- .../ObjectivePersistenceService.java | 4 +- .../persistence/TeamPersistenceService.java | 2 +- .../persistence/UnitPersistenceService.java | 8 +- .../persistence/UserPersistenceService.java | 6 +- .../V1_0_0__current-db-schema-for-testing.sql | 66 ++++++++------ ..._only_non_deleted_entities_on_overview.sql | 91 +++++++++++-------- .../KeyResultPersistenceServiceIT.java | 25 ++--- .../OverviewPersistenceServiceIT.java | 8 +- .../okr/test/SpringIntegrationTest.java | 3 +- 19 files changed, 129 insertions(+), 121 deletions(-) diff --git a/backend/src/main/java/ch/puzzle/okr/repository/ActionRepository.java b/backend/src/main/java/ch/puzzle/okr/repository/ActionRepository.java index b22e1389f0..34b4155d95 100644 --- a/backend/src/main/java/ch/puzzle/okr/repository/ActionRepository.java +++ b/backend/src/main/java/ch/puzzle/okr/repository/ActionRepository.java @@ -4,7 +4,5 @@ import java.util.List; public interface ActionRepository extends DeleteRepository { - // @Query("select Action from Action a where ") - // TODO rename this - List getActionsByKeyResultIdOrderByPriorityAsc(Long keyResultId); + List getActionsByKeyResultIdAndIsDeletedFalseOrderByPriorityAsc(Long keyResultId); } diff --git a/backend/src/main/java/ch/puzzle/okr/repository/CheckInRepository.java b/backend/src/main/java/ch/puzzle/okr/repository/CheckInRepository.java index dd86a63fed..cf9372a047 100644 --- a/backend/src/main/java/ch/puzzle/okr/repository/CheckInRepository.java +++ b/backend/src/main/java/ch/puzzle/okr/repository/CheckInRepository.java @@ -4,7 +4,7 @@ import java.util.List; public interface CheckInRepository extends DeleteRepository { - List findCheckInsByKeyResultIdOrderByCreatedOnDesc(Long keyResultId); + List findCheckInsByKeyResultIdAndIsDeletedFalseOrderByCreatedOnDesc(Long keyResultId); - CheckIn findFirstByKeyResultIdOrderByCreatedOnDesc(Long keyResultId); + CheckIn findFirstByKeyResultIdAndIsDeletedFalseOrderByCreatedOnDesc(Long keyResultId); } diff --git a/backend/src/main/java/ch/puzzle/okr/repository/KeyResultRepository.java b/backend/src/main/java/ch/puzzle/okr/repository/KeyResultRepository.java index 74c3b9d7c9..067241d8de 100644 --- a/backend/src/main/java/ch/puzzle/okr/repository/KeyResultRepository.java +++ b/backend/src/main/java/ch/puzzle/okr/repository/KeyResultRepository.java @@ -4,5 +4,5 @@ import java.util.List; public interface KeyResultRepository extends DeleteRepository { - List findByObjectiveId(Long objectiveId); + List findByObjectiveIdAndIsDeletedFalse(Long objectiveId); } diff --git a/backend/src/main/java/ch/puzzle/okr/repository/ObjectiveRepository.java b/backend/src/main/java/ch/puzzle/okr/repository/ObjectiveRepository.java index 484f0eb694..247bdcd3cb 100644 --- a/backend/src/main/java/ch/puzzle/okr/repository/ObjectiveRepository.java +++ b/backend/src/main/java/ch/puzzle/okr/repository/ObjectiveRepository.java @@ -9,7 +9,7 @@ @Repository public interface ObjectiveRepository extends DeleteRepository { - Integer countByTeamAndQuarter(Team team, Quarter quarter); + Integer countByTeamAndQuarterAndIsDeletedFalse(Team team, Quarter quarter); - List findObjectivesByTeamId(Long id); + List findObjectivesByTeamIdAndIsDeletedFalse(Long id); } diff --git a/backend/src/main/java/ch/puzzle/okr/repository/TeamRepository.java b/backend/src/main/java/ch/puzzle/okr/repository/TeamRepository.java index bf2c940326..43af9813c0 100644 --- a/backend/src/main/java/ch/puzzle/okr/repository/TeamRepository.java +++ b/backend/src/main/java/ch/puzzle/okr/repository/TeamRepository.java @@ -5,5 +5,5 @@ public interface TeamRepository extends DeleteRepository { - List findTeamsByName(String name); + List findTeamsByNameAndIsDeletedFalse(String name); } diff --git a/backend/src/main/java/ch/puzzle/okr/repository/UnitRepository.java b/backend/src/main/java/ch/puzzle/okr/repository/UnitRepository.java index 38b3ec436f..a7711ca456 100644 --- a/backend/src/main/java/ch/puzzle/okr/repository/UnitRepository.java +++ b/backend/src/main/java/ch/puzzle/okr/repository/UnitRepository.java @@ -8,11 +8,11 @@ @Repository public interface UnitRepository extends DeleteRepository { - Optional findUnitByUnitName(String name); + Optional findUnitByUnitNameAndIsDeletedFalse(String name); - List findAllByCreatedById(Long userId); + List findAllByCreatedByIdAndIsDeletedFalse(Long userId); - boolean existsUnitByUnitName(String unitName); + boolean existsUnitByUnitNameAndIsDeletedFalse(String unitName); - boolean existsUnitByUnitNameAndIdNot(String unitName, Long id); + boolean existsUnitByUnitNameAndIsDeletedFalseAndIdNot(String unitName, Long id); } diff --git a/backend/src/main/java/ch/puzzle/okr/repository/UserRepository.java b/backend/src/main/java/ch/puzzle/okr/repository/UserRepository.java index fb5188ba26..583ecd66a0 100644 --- a/backend/src/main/java/ch/puzzle/okr/repository/UserRepository.java +++ b/backend/src/main/java/ch/puzzle/okr/repository/UserRepository.java @@ -5,7 +5,7 @@ import java.util.Optional; public interface UserRepository extends DeleteRepository { - Optional findByEmail(String email); + Optional findByEmailAndIsDeletedFalse(String email); - List findByOkrChampion(boolean isOkrChampion); + List findByOkrChampionAndIsDeletedFalse(boolean isOkrChampion); } diff --git a/backend/src/main/java/ch/puzzle/okr/service/persistence/ActionPersistenceService.java b/backend/src/main/java/ch/puzzle/okr/service/persistence/ActionPersistenceService.java index 798f8aa194..5460e4d3f9 100644 --- a/backend/src/main/java/ch/puzzle/okr/service/persistence/ActionPersistenceService.java +++ b/backend/src/main/java/ch/puzzle/okr/service/persistence/ActionPersistenceService.java @@ -21,6 +21,6 @@ public String getModelName() { } public List getActionsByKeyResultIdOrderByPriorityAsc(Long keyResultId) { - return getRepository().getActionsByKeyResultIdOrderByPriorityAsc(keyResultId); + return getRepository().getActionsByKeyResultIdAndIsDeletedFalseOrderByPriorityAsc(keyResultId); } } diff --git a/backend/src/main/java/ch/puzzle/okr/service/persistence/CheckInPersistenceService.java b/backend/src/main/java/ch/puzzle/okr/service/persistence/CheckInPersistenceService.java index 5c0bc18e43..c239c5b952 100644 --- a/backend/src/main/java/ch/puzzle/okr/service/persistence/CheckInPersistenceService.java +++ b/backend/src/main/java/ch/puzzle/okr/service/persistence/CheckInPersistenceService.java @@ -21,10 +21,10 @@ public String getModelName() { } public List getCheckInsByKeyResultIdOrderByCheckInDateDesc(Long keyResultId) { - return getRepository().findCheckInsByKeyResultIdOrderByCreatedOnDesc(keyResultId); + return getRepository().findCheckInsByKeyResultIdAndIsDeletedFalseOrderByCreatedOnDesc(keyResultId); } public CheckIn getLastCheckInOfKeyResult(Long keyResultId) { - return getRepository().findFirstByKeyResultIdOrderByCreatedOnDesc(keyResultId); + return getRepository().findFirstByKeyResultIdAndIsDeletedFalseOrderByCreatedOnDesc(keyResultId); } } diff --git a/backend/src/main/java/ch/puzzle/okr/service/persistence/KeyResultPersistenceService.java b/backend/src/main/java/ch/puzzle/okr/service/persistence/KeyResultPersistenceService.java index 4768e601c3..dfe5e26bdc 100644 --- a/backend/src/main/java/ch/puzzle/okr/service/persistence/KeyResultPersistenceService.java +++ b/backend/src/main/java/ch/puzzle/okr/service/persistence/KeyResultPersistenceService.java @@ -22,13 +22,14 @@ public String getModelName() { } public List getKeyResultsByObjective(Long objectiveId) { - return getRepository().findByObjectiveId(objectiveId); + return getRepository().findByObjectiveIdAndIsDeletedFalse(objectiveId); } @Transactional public KeyResult recreateEntity(Long id, KeyResult keyResult) { // delete entity in order to prevent duplicates in case of changed keyResultType deleteById(id); + // deleteById(id, new HardDelete<>()); // reset id of key result, so it gets saved as a new entity keyResult.resetId(); diff --git a/backend/src/main/java/ch/puzzle/okr/service/persistence/ObjectivePersistenceService.java b/backend/src/main/java/ch/puzzle/okr/service/persistence/ObjectivePersistenceService.java index f7528b2779..1fc745327f 100644 --- a/backend/src/main/java/ch/puzzle/okr/service/persistence/ObjectivePersistenceService.java +++ b/backend/src/main/java/ch/puzzle/okr/service/persistence/ObjectivePersistenceService.java @@ -53,7 +53,7 @@ public String getModelName() { * @return number of Objectives of team in quarter */ public Integer countByTeamAndQuarter(Team team, Quarter quarter) { - return getRepository().countByTeamAndQuarter(team, quarter); + return getRepository().countByTeamAndQuarterAndIsDeletedFalse(team, quarter); } public Objective findObjectiveById(Long objectiveId, AuthorizationUser authorizationUser, @@ -62,7 +62,7 @@ public Objective findObjectiveById(Long objectiveId, AuthorizationUser authoriza } public List findObjectiveByTeamId(Long teamId) { - return getRepository().findObjectivesByTeamId(teamId); + return getRepository().findObjectivesByTeamIdAndIsDeletedFalse(teamId); } public Objective findObjectiveByKeyResultId(Long keyResultId, AuthorizationUser authorizationUser, diff --git a/backend/src/main/java/ch/puzzle/okr/service/persistence/TeamPersistenceService.java b/backend/src/main/java/ch/puzzle/okr/service/persistence/TeamPersistenceService.java index 73663331a4..3b6d9b90df 100644 --- a/backend/src/main/java/ch/puzzle/okr/service/persistence/TeamPersistenceService.java +++ b/backend/src/main/java/ch/puzzle/okr/service/persistence/TeamPersistenceService.java @@ -21,6 +21,6 @@ public String getModelName() { } public List findTeamsByName(String name) { - return getRepository().findTeamsByName(name); + return getRepository().findTeamsByNameAndIsDeletedFalse(name); } } diff --git a/backend/src/main/java/ch/puzzle/okr/service/persistence/UnitPersistenceService.java b/backend/src/main/java/ch/puzzle/okr/service/persistence/UnitPersistenceService.java index ec3c8a10c7..78ac6a70eb 100644 --- a/backend/src/main/java/ch/puzzle/okr/service/persistence/UnitPersistenceService.java +++ b/backend/src/main/java/ch/puzzle/okr/service/persistence/UnitPersistenceService.java @@ -26,21 +26,21 @@ public String getModelName() { public Unit findUnitByUnitName(String unitName) { return getRepository() - .findUnitByUnitName(unitName) + .findUnitByUnitNameAndIsDeletedFalse(unitName) .orElseThrow(() -> new OkrResponseStatusException(HttpStatus.NOT_FOUND, ErrorKey.MODEL_NOT_FOUND_BY_PROPERTY, List.of(Constants.UNIT, "unit name", unitName))); } public boolean existsUnitByUnitName(String unitName) { - return getRepository().existsUnitByUnitName(unitName); + return getRepository().existsUnitByUnitNameAndIsDeletedFalse(unitName); } public boolean existsUnitByUnitNameAndIdNot(String unitName, Long id) { - return getRepository().existsUnitByUnitNameAndIdNot(unitName, id); + return getRepository().existsUnitByUnitNameAndIsDeletedFalseAndIdNot(unitName, id); } public List findUnitsByUser(Long userId) { - return getRepository().findAllByCreatedById(userId); + return getRepository().findAllByCreatedByIdAndIsDeletedFalse(userId); } } diff --git a/backend/src/main/java/ch/puzzle/okr/service/persistence/UserPersistenceService.java b/backend/src/main/java/ch/puzzle/okr/service/persistence/UserPersistenceService.java index bc54bb2a50..41d741691f 100644 --- a/backend/src/main/java/ch/puzzle/okr/service/persistence/UserPersistenceService.java +++ b/backend/src/main/java/ch/puzzle/okr/service/persistence/UserPersistenceService.java @@ -21,12 +21,12 @@ public String getModelName() { } public synchronized User getOrCreateUser(User user) { - Optional savedUser = getRepository().findByEmail(user.getEmail()); + Optional savedUser = getRepository().findByEmailAndIsDeletedFalse(user.getEmail()); return savedUser.orElseGet(() -> getRepository().save(user)); } public Optional findByEmail(String email) { - return getRepository().findByEmail(email); + return getRepository().findByEmailAndIsDeletedFalse(email); } @Override @@ -38,7 +38,7 @@ public User save(User user) { } public List findAllOkrChampions() { - return getRepository().findByOkrChampion(true); + return getRepository().findByOkrChampionAndIsDeletedFalse(true); } public Iterable saveAll(List userList) { diff --git a/backend/src/main/resources/db/h2-db/database-h2-schema/V1_0_0__current-db-schema-for-testing.sql b/backend/src/main/resources/db/h2-db/database-h2-schema/V1_0_0__current-db-schema-for-testing.sql index 8de91b8d89..3a46db7c17 100644 --- a/backend/src/main/resources/db/h2-db/database-h2-schema/V1_0_0__current-db-schema-for-testing.sql +++ b/backend/src/main/resources/db/h2-db/database-h2-schema/V1_0_0__current-db-schema-for-testing.sql @@ -183,39 +183,42 @@ create index if not exists idx_completed_objective DROP VIEW IF EXISTS OVERVIEW; CREATE VIEW OVERVIEW AS -SELECT tq.team_id AS "team_id", - tq.team_version AS "team_version", - tq.name AS "team_name", - tq.quater_id AS "quarter_id", - tq.label AS "quarter_label", - coalesce(o.id, -1) AS "objective_id", - o.title AS "objective_title", - o.state AS "objective_state", - o.created_on AS "objective_created_on", - coalesce(kr.id, -1) AS "key_result_id", - kr.title AS "key_result_title", - kr.key_result_type AS "key_result_type", - U.unit_name as "unit", - kr.baseline, - kr.stretch_goal, - kr.commit_zone, - kr.target_zone, - kr.stretch_zone, - coalesce(c.id, -1) AS "check_in_id", - c.value_metric AS "check_in_value", - c.zone AS "check_in_zone", - c.confidence, - c.created_on AS "check_in_created_on" -FROM (select t.id as team_id, t.version as team_version, t.name, q.id as quater_id, q.label - from team t, - quarter q) tq - LEFT JOIN OBJECTIVE O ON TQ.TEAM_ID = O.TEAM_ID AND TQ.QUATER_ID = O.QUARTER_ID +SELECT TQ.TEAM_ID AS "TEAM_ID", + TQ.TEAM_VERSION AS "TEAM_VERSION", + TQ.NAME AS "TEAM_NAME", + TQ.QUARTER_ID AS "QUARTER_ID", + TQ.LABEL AS "QUARTER_LABEL", + COALESCE(O.ID, -1) AS "OBJECTIVE_ID", + O.TITLE AS "OBJECTIVE_TITLE", + O.STATE AS "OBJECTIVE_STATE", + O.CREATED_ON AS "OBJECTIVE_CREATED_ON", + COALESCE(KR.ID, -1) AS "KEY_RESULT_ID", + KR.TITLE AS "KEY_RESULT_TITLE", + KR.KEY_RESULT_TYPE AS "KEY_RESULT_TYPE", + U.unit_name as "UNIT", + KR.BASELINE, + KR.STRETCH_GOAL, + KR.COMMIT_ZONE, + KR.TARGET_ZONE, + KR.STRETCH_ZONE, + COALESCE(C.ID, -1) AS "CHECK_IN_ID", + C.VALUE_METRIC AS "CHECK_IN_VALUE", + C.ZONE AS "CHECK_IN_ZONE", + C.CONFIDENCE, + C.CREATED_ON AS "CHECK_IN_CREATED_ON" +FROM (SELECT T.ID AS TEAM_ID, T.VERSION AS TEAM_VERSION, T.NAME, Q.ID AS QUARTER_ID, Q.LABEL + FROM TEAM T, + QUARTER Q where T.is_deleted is not true) TQ + LEFT JOIN OBJECTIVE O ON TQ.TEAM_ID = O.TEAM_ID AND TQ.QUARTER_ID = O.QUARTER_ID LEFT JOIN KEY_RESULT KR ON O.ID = KR.OBJECTIVE_ID LEFT JOIN unit U ON U.ID = KR.unit_id LEFT JOIN CHECK_IN C ON KR.ID = C.KEY_RESULT_ID AND C.MODIFIED_ON = (SELECT MAX(CC.MODIFIED_ON) FROM CHECK_IN CC - WHERE CC.KEY_RESULT_ID = C.KEY_RESULT_ID AND CC.is_deleted = false) -WHERE KR.is_deleted = false; + WHERE CC.KEY_RESULT_ID = C.KEY_RESULT_ID and CC.is_deleted is not true ) + +WHERE KR.is_deleted is not true + and O.is_deleted is not true +; create table if not exists alignment @@ -248,7 +251,10 @@ SELECT O.ID AS "OBJECTIVE_ID", FROM OBJECTIVE O LEFT JOIN TEAM T ON O.TEAM_ID = T.ID LEFT JOIN QUARTER Q ON O.QUARTER_ID = Q.ID - LEFT JOIN KEY_RESULT KR ON O.ID = KR.OBJECTIVE_ID; + LEFT JOIN KEY_RESULT KR ON O.ID = KR.OBJECTIVE_ID +WHERE T.is_deleted is not true + and KR.is_deleted is not true + and O.is_deleted is not true; create table if not exists organisation ( diff --git a/backend/src/main/resources/db/migration/V3_5_3__show_only_non_deleted_entities_on_overview.sql b/backend/src/main/resources/db/migration/V3_5_3__show_only_non_deleted_entities_on_overview.sql index c6773d3362..64c8ce2ed9 100644 --- a/backend/src/main/resources/db/migration/V3_5_3__show_only_non_deleted_entities_on_overview.sql +++ b/backend/src/main/resources/db/migration/V3_5_3__show_only_non_deleted_entities_on_overview.sql @@ -1,41 +1,56 @@ - DROP VIEW IF EXISTS OVERVIEW; - CREATE VIEW OVERVIEW AS - SELECT tq.team_id AS "team_id", - tq.team_version AS "team_version", - tq.name AS "team_name", - tq.quater_id AS "quarter_id", - tq.label AS "quarter_label", - coalesce(o.id, -1) AS "objective_id", - o.title AS "objective_title", - o.state AS "objective_state", - o.created_on AS "objective_created_on", - coalesce(kr.id, -1) AS "key_result_id", - kr.title AS "key_result_title", - kr.key_result_type AS "key_result_type", - U.unit_name as "unit", - kr.baseline, - kr.stretch_goal, - kr.commit_zone, - kr.target_zone, - kr.stretch_zone, - coalesce(c.id, -1) AS "check_in_id", - c.value_metric AS "check_in_value", - c.zone AS "check_in_zone", - c.confidence, - c.created_on AS "check_in_created_on" - FROM (select t.id as team_id, t.version as team_version, t.name, q.id as quater_id, q.label - from team t, - quarter q) tq - LEFT JOIN OBJECTIVE O ON TQ.TEAM_ID = O.TEAM_ID AND TQ.QUATER_ID = O.QUARTER_ID - LEFT JOIN KEY_RESULT KR ON O.ID = KR.OBJECTIVE_ID - LEFT JOIN unit U ON U.ID = KR.unit_id - LEFT JOIN CHECK_IN C ON KR.ID = C.KEY_RESULT_ID AND C.MODIFIED_ON = (SELECT MAX(CC.MODIFIED_ON) - FROM CHECK_IN CC - WHERE CC.KEY_RESULT_ID = C.KEY_RESULT_ID AND CC.is_deleted = false) - WHERE KR.is_deleted = false; --- AND u.is_deleted = false --- AND c.is_deleted = false; - +DROP VIEW IF EXISTS OVERVIEW; +CREATE VIEW OVERVIEW AS +SELECT tq.team_id AS "team_id", + tq.team_version AS "team_version", + tq.name AS "team_name", + tq.quater_id AS "quarter_id", + tq.label AS "quarter_label", + coalesce(o.id, -1) AS "objective_id", + o.title AS "objective_title", + o.state AS "objective_state", + o.created_on AS "objective_created_on", + coalesce(kr.id, -1) AS "key_result_id", + kr.title AS "key_result_title", + kr.key_result_type AS "key_result_type", + U.unit_name as "unit", + kr.baseline, + kr.stretch_goal, + kr.commit_zone, + kr.target_zone, + kr.stretch_zone, + coalesce(c.id, -1) AS "check_in_id", + c.value_metric AS "check_in_value", + c.zone AS "check_in_zone", + c.confidence, + c.created_on AS "check_in_created_on" +FROM (select t.id as team_id, t.version as team_version, t.name, q.id as quater_id, q.label + from team t, + quarter q T.is_deleted) tq + LEFT JOIN OBJECTIVE O ON TQ.TEAM_ID = O.TEAM_ID AND TQ.QUATER_ID = O.QUARTER_ID + LEFT JOIN KEY_RESULT KR ON O.ID = KR.OBJECTIVE_ID + LEFT JOIN unit U ON U.ID = KR.unit_id + LEFT JOIN CHECK_IN C ON KR.ID = C.KEY_RESULT_ID AND C.MODIFIED_ON = (SELECT MAX(CC.MODIFIED_ON) + FROM CHECK_IN CC + WHERE CC.KEY_RESULT_ID = C.KEY_RESULT_ID AND CC.is_deleted is not true) + WHERE KR.is_deleted is not true + AND O.is_deleted = false; +drop view if exists alignment_selection; +create view alignment_selection as +select o.id as "objective_id", + o.title as "objective_title", + t.id as "team_id", + t.name as "team_name", + q.id as "quarter_id", + q.label as "quarter_label", + coalesce(kr.id, -1) as "key_result_id", + kr.title as "key_result_title" +from objective o + left join team t on o.team_id = t.id + left join quarter q on o.quarter_id = q.id + left join key_result kr on o.id = kr.objective_id +WHERE T.is_deleted is not true + and KR.is_deleted is not true + and O.is_deleted is not true; diff --git a/backend/src/test/java/ch/puzzle/okr/service/persistence/KeyResultPersistenceServiceIT.java b/backend/src/test/java/ch/puzzle/okr/service/persistence/KeyResultPersistenceServiceIT.java index 8f87621cd8..390f690484 100644 --- a/backend/src/test/java/ch/puzzle/okr/service/persistence/KeyResultPersistenceServiceIT.java +++ b/backend/src/test/java/ch/puzzle/okr/service/persistence/KeyResultPersistenceServiceIT.java @@ -154,6 +154,7 @@ void getKeyResultByIdShouldThrowExceptionWhenKeyResultIdIsNull() { assertTrue(TestHelper.getAllErrorKeys(expectedErrors).contains(exception.getReason())); } + // testing @DisplayName("Should only update entity on recreateEntity() when no type change was done") @Test void recreateEntityShouldUpdateKeyResultNoTypeChange() { @@ -171,16 +172,9 @@ void recreateEntityShouldUpdateKeyResultNoTypeChange() { assertEquals(createdKeyResult.getObjective().getId(), recreatedKeyResult.getObjective().getId()); // Should delete the old KeyResult - OkrResponseStatusException exception = assertThrows(OkrResponseStatusException.class, - () -> keyResultPersistenceService.findById(keyResultId)); + KeyResult byId = keyResultPersistenceService.findById(keyResultId); - List expectedErrors = List.of(ErrorDto.of(MODEL_NOT_FOUND, List.of(KEY_RESULT, keyResultId))); - - assertEquals(NOT_FOUND, exception.getStatusCode()); - assertThat(expectedErrors).hasSameElementsAs(exception.getErrors()); - assertTrue(TestHelper.getAllErrorKeys(expectedErrors).contains(exception.getReason())); - - // delete re-created key result in tearDown() + assertTrue(byId.isDeleted()); createdKeyResult = recreatedKeyResult; } @@ -213,16 +207,9 @@ void recreateEntityShouldUpdateKeyResultWithTypeChange() { Long keyResultId = createdKeyResult.getId(); // Should delete the old KeyResult - OkrResponseStatusException exception = assertThrows(OkrResponseStatusException.class, - () -> keyResultPersistenceService.findById(keyResultId)); - - List expectedErrors = List.of(ErrorDto.of(MODEL_NOT_FOUND, List.of(KEY_RESULT, keyResultId))); - - assertEquals(NOT_FOUND, exception.getStatusCode()); - assertThat(expectedErrors).hasSameElementsAs(exception.getErrors()); - assertTrue(TestHelper.getAllErrorKeys(expectedErrors).contains(exception.getReason())); + KeyResult byId = keyResultPersistenceService.findById(keyResultId); + assertTrue(byId.isDeleted()); - // delete re-created key result in tearDown() createdKeyResult = recreatedKeyResult; } @@ -307,6 +294,8 @@ void shouldDeleteCheckInById() { assertTrue(keyResultPersistenceService.findById(entityId).isDeleted()); Mockito.verify(keyResultRepository, Mockito.times(1)).markAsDeleted(entityId); + keyResultPersistenceService.deleteById(entityId, new HardDelete<>()); + } @DisplayName("Should throw exception on deleteById() when id does not exist") diff --git a/backend/src/test/java/ch/puzzle/okr/service/persistence/OverviewPersistenceServiceIT.java b/backend/src/test/java/ch/puzzle/okr/service/persistence/OverviewPersistenceServiceIT.java index 61f3c5056c..f066286ce9 100644 --- a/backend/src/test/java/ch/puzzle/okr/service/persistence/OverviewPersistenceServiceIT.java +++ b/backend/src/test/java/ch/puzzle/okr/service/persistence/OverviewPersistenceServiceIT.java @@ -63,7 +63,7 @@ void getFilteredOverviewShouldReturnOverviewsWhenTeamIdsSet() { List overviews = overviewPersistenceService .getFilteredOverview(2L, List.of(5L, 6L, 8L), "", authorizationUser); - assertThat(expectedOverviewIds.subList(5, 18)).hasSameElementsAs(getOverviewIds(overviews)); + assertThat(getOverviewIds(overviews)).hasSameElementsAs(expectedOverviewIds.subList(5, 18)); } @DisplayName("Should return correct overview on getFilteredOverview() when team ids are not set") @@ -71,7 +71,7 @@ void getFilteredOverviewShouldReturnOverviewsWhenTeamIdsSet() { void getFilteredOverviewShouldReturnOverviewsWhenTeamIdsEmpty() { List overviews = overviewPersistenceService.getFilteredOverview(2L, List.of(), "", authorizationUser); - assertThat(expectedOverviewIds.subList(0, 18)).hasSameElementsAs(getOverviewIds(overviews)); + assertThat(getOverviewIds(overviews)).hasSameElementsAs(expectedOverviewIds.subList(0, 18)); } @DisplayName("Should return correct overview on getFilteredOverview() when query is set") @@ -80,7 +80,7 @@ void getFilteredOverviewShouldReturnOverviewsWhenObjectiveQuery() { List overviews = overviewPersistenceService .getFilteredOverview(2L, List.of(5L, 6L, 8L), "kundenzufriedenheit", authorizationUser); - assertThat(expectedOverviewIds.subList(5, 8)).hasSameElementsAs(getOverviewIds(overviews)); + assertThat(getOverviewIds(overviews)).hasSameElementsAs(expectedOverviewIds.subList(5, 8)); } @DisplayName("Should return correct overview on getFilteredOverview() when quarter has no objectives") @@ -89,7 +89,7 @@ void getFilteredOverviewShouldReturnOverviewsWhenQuarterWithoutObjectives() { List overviews = overviewPersistenceService .getFilteredOverview(3L, List.of(5L, 6L, 8L), null, authorizationUser); - assertThat(expectedOverviewIds.subList(17, 20)).hasSameElementsAs(getOverviewIds(overviews)); + assertThat(getOverviewIds(overviews)).hasSameElementsAs(expectedOverviewIds.subList(17, 20)); } @DisplayName("Should return empty overview on getFilteredOverview() when query is set and no objectives are present") diff --git a/backend/src/test/java/ch/puzzle/okr/test/SpringIntegrationTest.java b/backend/src/test/java/ch/puzzle/okr/test/SpringIntegrationTest.java index f6492cc7d4..b193223276 100644 --- a/backend/src/test/java/ch/puzzle/okr/test/SpringIntegrationTest.java +++ b/backend/src/test/java/ch/puzzle/okr/test/SpringIntegrationTest.java @@ -2,7 +2,6 @@ import java.lang.annotation.*; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; @@ -11,7 +10,7 @@ @Documented @Inherited @SpringBootTest -@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS) +// @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS) @ContextConfiguration(initializers = TestContextInitializer.class) @ActiveProfiles(value = "integration-test") public @interface SpringIntegrationTest {