From a05d9c22aed44a21e3d82f7652efcf6dca900d97 Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 16 Apr 2026 22:13:45 +0200 Subject: [PATCH] fix(#248): TagService.getById() throws DomainException(TAG_NOT_FOUND) instead of ResponseStatusException Co-Authored-By: Claude Sonnet 4.6 --- .../familienarchiv/service/TagService.java | 4 +--- .../service/TagServiceTest.java | 19 +++++++++---------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/backend/src/main/java/org/raddatz/familienarchiv/service/TagService.java b/backend/src/main/java/org/raddatz/familienarchiv/service/TagService.java index a7031390..28be224c 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/service/TagService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/service/TagService.java @@ -16,11 +16,9 @@ import org.raddatz.familienarchiv.exception.DomainException; import org.raddatz.familienarchiv.exception.ErrorCode; import org.raddatz.familienarchiv.model.Tag; import org.raddatz.familienarchiv.repository.TagRepository; -import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; -import org.springframework.web.server.ResponseStatusException; import lombok.RequiredArgsConstructor; @@ -41,7 +39,7 @@ public class TagService { public Tag getById(UUID id) { return tagRepository.findById(id) - .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, "Tag nicht gefunden")); + .orElseThrow(() -> DomainException.notFound(ErrorCode.TAG_NOT_FOUND, "Tag not found: " + id)); } public Tag findOrCreate(String name) { diff --git a/backend/src/test/java/org/raddatz/familienarchiv/service/TagServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/service/TagServiceTest.java index 59dbb83c..a8c8c96f 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/service/TagServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/service/TagServiceTest.java @@ -10,7 +10,6 @@ import org.raddatz.familienarchiv.exception.DomainException; import org.raddatz.familienarchiv.exception.ErrorCode; import org.raddatz.familienarchiv.model.Tag; import org.raddatz.familienarchiv.repository.TagRepository; -import org.springframework.web.server.ResponseStatusException; import java.util.List; import java.util.Optional; @@ -36,9 +35,9 @@ class TagServiceTest { when(tagRepository.findById(id)).thenReturn(Optional.empty()); assertThatThrownBy(() -> tagService.getById(id)) - .isInstanceOf(ResponseStatusException.class) - .extracting(e -> ((ResponseStatusException) e).getStatusCode().value()) - .isEqualTo(404); + .isInstanceOf(DomainException.class) + .extracting(e -> ((DomainException) e).getCode()) + .isEqualTo(ErrorCode.TAG_NOT_FOUND); } @Test @@ -133,9 +132,9 @@ class TagServiceTest { when(tagRepository.findById(id)).thenReturn(Optional.empty()); assertThatThrownBy(() -> tagService.update(id, new TagUpdateDTO("New", null, null))) - .isInstanceOf(ResponseStatusException.class) - .extracting(e -> ((ResponseStatusException) e).getStatusCode().value()) - .isEqualTo(404); + .isInstanceOf(DomainException.class) + .extracting(e -> ((DomainException) e).getCode()) + .isEqualTo(ErrorCode.TAG_NOT_FOUND); } // ─── color validation ───────────────────────────────────────────────────── @@ -322,8 +321,8 @@ class TagServiceTest { when(tagRepository.findById(id)).thenReturn(Optional.empty()); assertThatThrownBy(() -> tagService.delete(id)) - .isInstanceOf(ResponseStatusException.class) - .extracting(e -> ((ResponseStatusException) e).getStatusCode().value()) - .isEqualTo(404); + .isInstanceOf(DomainException.class) + .extracting(e -> ((DomainException) e).getCode()) + .isEqualTo(ErrorCode.TAG_NOT_FOUND); } }