diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/attacheditem/BescheidItemMapper.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/attacheditem/BescheidItemMapper.java index b4d537bac983a6c010690fa745929321d089e027..2c915d65d934abab2636433b02e30a1eaf8e764d 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/attacheditem/BescheidItemMapper.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/attacheditem/BescheidItemMapper.java @@ -87,8 +87,14 @@ public class BescheidItemMapper { if (attachmentsObject instanceof Collection<?> attachments) { return (Collection<String>) attachments; } - return nonNull(attachmentsObject) - ? List.of(String.valueOf(attachmentsObject)) - : null; + if (attachmentsObject instanceof String attachment) { + attachment = StringUtils.trimToNull(attachment); + if (nonNull(attachment)) { + return List.of(attachment); + } + } else if (nonNull(attachmentsObject)) { + return List.of(String.valueOf(attachmentsObject)); + } + return null; //NOSONAR } } diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/AttachedItemServiceTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/AttachedItemServiceTest.java index e50741f94486825ccb1b602b2a056b031163af00..3c10b5cdb070f9c0cbd60590cf805170c0491632 100644 --- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/AttachedItemServiceTest.java +++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/AttachedItemServiceTest.java @@ -88,6 +88,27 @@ class AttachedItemServiceTest { } } + @Nested + class TestGetBescheidItem { + + @Test + void shouldCallGetBescheid() { + service.getBescheidItem(BescheidItemTestFactory.ID); + + verify(remoteService).getBescheid(BescheidItemTestFactory.ID); + } + + @Test + void shouldReturnBescheidItem() { + var expected = BescheidItemTestFactory.create(); + when(remoteService.getBescheid(anyString())).thenReturn(expected); + + var actual = service.getBescheidItem(BescheidItemTestFactory.ID); + + assertThat(actual).isEqualTo(expected); + } + } + @Nested class TestCreateBescheidDraft { diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/BescheidItemMapperTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/BescheidItemMapperTest.java index 28f87d7ddfa2c4959bbc28260c7e856449e768de..027085c7c1c70681debd0503f3e1920c5620a039 100644 --- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/BescheidItemMapperTest.java +++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/BescheidItemMapperTest.java @@ -29,8 +29,11 @@ import static org.mockito.Mockito.*; import java.util.List; import java.util.Map; +import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.NullAndEmptySource; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; @@ -242,9 +245,11 @@ class BescheidItemMapperTest { assertThat(result).containsExactly(BescheidItemTestFactory.ATTACHMENT); } - @Test - void shouldReturnNull() { - var result = mapper.toAttachments(null); + @DisplayName("should return null") + @ParameterizedTest(name = "when attachmentsObject is \"{0}\"") + @NullAndEmptySource + void shouldReturnNull(String attachmentsObject) { + var result = mapper.toAttachments(attachmentsObject); assertThat(result).isNull(); } diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/VorgangAttachedItemRemoteServiceTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/VorgangAttachedItemRemoteServiceTest.java index 97473a38072617469fa6f861d56c25abf44ea19f..88259ab1300ec4b86712144b5c196f761c7a231a 100644 --- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/VorgangAttachedItemRemoteServiceTest.java +++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/VorgangAttachedItemRemoteServiceTest.java @@ -151,6 +151,25 @@ class VorgangAttachedItemRemoteServiceTest { assertThat(result).contains(item); } + @Test + void shouldReturnEmptyWhenNotFound() { + when(bescheidItemMapper.fromFindVorgangAttachedItemResponse(any())).thenReturn(Stream.empty()); + + var result = service.findBescheidDraft(request); + + assertThat(result).isEmpty(); + } + + @Test + void shouldReturnEmptyWhenNotDraft() { + when(bescheidItemMapper.fromFindVorgangAttachedItemResponse(any())).thenReturn(Stream.of(BescheidItemTestFactory.create())); + doReturn(false).when(service).hasStatusDraft(any()); + + var result = service.findBescheidDraft(request); + + assertThat(result).isEmpty(); + } + @Test void shouldReturnLastBescheid() { var item1 = BescheidItemTestFactory.createBuilder().bescheidData(Map.of( @@ -201,6 +220,30 @@ class VorgangAttachedItemRemoteServiceTest { } } + @Nested + class TestHasStatusDraft { + + @Test + void shouldReturnTrueIfDraft() { + var item = BescheidItemTestFactory.createBuilder().bescheidData(Map.of(BescheidItem.FIELD_STATUS, BescheidItem.Status.DRAFT.name())) + .build(); + + var result = service.hasStatusDraft(item); + + assertThat(result).isTrue(); + } + + @Test + void shouldReturnFalseIfNotDraft() { + var item = BescheidItemTestFactory.createBuilder().bescheidData(Map.of(BescheidItem.FIELD_STATUS, BescheidItem.Status.BESCHEID.name())) + .build(); + + var result = service.hasStatusDraft(item); + + assertThat(result).isFalse(); + } + } + @Nested class TestGetBescheid {