From 8e8e19c0c5ca8a211e1a3de317db20a09aee438a Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Fri, 12 Apr 2024 14:25:24 +0200 Subject: [PATCH] OZG-5323 implement comments from code review --- .../attacheditem/AttachedItemMapper.java | 2 +- .../bescheid/BescheidEventListenerITCase.java | 3 + .../attacheditem/AttachedItemServiceTest.java | 21 +++++ .../VorgangAttachedItemRemoteServiceTest.java | 78 +++++++++++++++++++ .../nachricht/NachrichtServiceITCase.java | 3 + .../document/DocumentServiceTest.java | 33 ++++++++ 6 files changed, 139 insertions(+), 1 deletion(-) diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/attacheditem/AttachedItemMapper.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/attacheditem/AttachedItemMapper.java index 219846854..c2b373a33 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/attacheditem/AttachedItemMapper.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/attacheditem/AttachedItemMapper.java @@ -29,7 +29,7 @@ import de.ozgcloud.vorgang.common.grpc.GrpcObjectMapper; import de.ozgcloud.vorgang.vorgangAttachedItem.GrpcVorgangAttachedItem; @Mapper(uses = { GrpcObjectMapper.class}) -public interface AttachedItemMapper { +interface AttachedItemMapper { AttachedItem mapFromVorgangAttachedItem(GrpcVorgangAttachedItem item); diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerITCase.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerITCase.java index 3728f3c86..33bfa8218 100644 --- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerITCase.java +++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerITCase.java @@ -20,6 +20,7 @@ import de.ozgcloud.command.Command; import de.ozgcloud.command.CommandCreatedEventTestFactory; import de.ozgcloud.command.CommandTestFactory; import de.ozgcloud.common.test.ITCase; +import de.ozgcloud.vorgang.vorgangAttachedItem.VorgangAttachedItemServiceGrpc.VorgangAttachedItemServiceBlockingStub; @ITCase class BescheidEventListenerITCase { @@ -37,6 +38,8 @@ class BescheidEventListenerITCase { private CommandMapper commandMapper; @MockBean private AttachedItemService attachedItemService; + @MockBean + private VorgangAttachedItemServiceBlockingStub serviceStub; @Mock private UserProfile userProfile; 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 3c10b5cdb..107f4e3ca 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 @@ -727,4 +727,25 @@ class AttachedItemServiceTest { } } + + @Nested + class TestGetItem { + + @Test + void shouldCallRemoteService() { + service.getItem(BescheidItemTestFactory.ID); + + verify(service).getItem(BescheidItemTestFactory.ID); + } + + @Test + void shouldReturnValue() { + var expectedItem = AttachedItemTestFactory.createDocument(); + doReturn(expectedItem).when(remoteService).getItem(any()); + + var result = service.getItem(BescheidItemTestFactory.ID); + + assertThat(result).isEqualTo(expectedItem); + } + } } \ No newline at end of file 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 88259ab13..08f8be7d2 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 @@ -67,6 +67,8 @@ class VorgangAttachedItemRemoteServiceTest { private ClientInterceptor bescheidCallContextInterceptor; @Mock private BescheidItemMapper bescheidItemMapper; + @Mock + private AttachedItemMapper attachedItemMapper; @Nested class TestFindBescheidDraft { @@ -320,6 +322,82 @@ class VorgangAttachedItemRemoteServiceTest { } } + @Nested + class TestGetItem { + + @Mock + private GrpcVorgangAttachedItemRequest grpcVorgangAttachedItemRequest; + @Mock + private GrpcVorgangAttachedItemResponse grpcVorgangAttachedItemResponse; + @Mock + private GrpcVorgangAttachedItem grpcVorgangAttachedItem; + + @BeforeEach + void init() { + when(serviceStub.getById(any())).thenReturn(grpcVorgangAttachedItemResponse); + doReturn(serviceStub).when(service).getServiceStub(); + } + + @Test + void shouldCallGetServiceStab() { + when(grpcVorgangAttachedItemResponse.getVorgangAttachedItem()).thenReturn(grpcVorgangAttachedItem); + + getItem(); + + verify(service).getServiceStub(); + } + + @Test + void shouldCallBuildRequest() { + when(grpcVorgangAttachedItemResponse.getVorgangAttachedItem()).thenReturn(grpcVorgangAttachedItem); + + getItem(); + + verify(service).buildGetByIdRequest(AttachedItemTestFactory.ID); + } + + @Test + void shouldCallGetById() { + when(grpcVorgangAttachedItemResponse.getVorgangAttachedItem()).thenReturn(grpcVorgangAttachedItem); + doReturn(grpcVorgangAttachedItemRequest).when(service).buildGetByIdRequest(any()); + + getItem(); + + verify(serviceStub).getById(grpcVorgangAttachedItemRequest); + } + + @Test + void shouldCallMapper() { + when(grpcVorgangAttachedItemResponse.getVorgangAttachedItem()).thenReturn(grpcVorgangAttachedItem); + + getItem(); + + verify(attachedItemMapper).mapFromVorgangAttachedItem(grpcVorgangAttachedItem); + } + + @Test + void shouldReturnFoundBescheid() { + var expectedItem = AttachedItemTestFactory.createDocument(); + when(attachedItemMapper.mapFromVorgangAttachedItem(any())).thenReturn(expectedItem); + when(grpcVorgangAttachedItemResponse.getVorgangAttachedItem()).thenReturn(grpcVorgangAttachedItem); + + var result = getItem(); + + assertThat(result).isEqualTo(expectedItem); + } + + @Test + void shouldThrowExceptionIfNotFound() { + when(serviceStub.getById(any())).thenThrow(StatusRuntimeException.class); + + assertThrows(StatusRuntimeException.class, this::getItem); + } + + private AttachedItem getItem() { + return service.getItem(BescheidItemTestFactory.ID); + } + } + @Nested class TestBuildGetByIdRequest { diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtServiceITCase.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtServiceITCase.java index bffdefb5e..9b3e707d5 100644 --- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtServiceITCase.java +++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtServiceITCase.java @@ -13,6 +13,7 @@ import de.ozgcloud.apilib.common.command.OzgCloudCommandService; import de.ozgcloud.apilib.common.command.grpc.CommandMapper; import de.ozgcloud.bescheid.BescheidTestFactory; import de.ozgcloud.common.test.ITCase; +import de.ozgcloud.vorgang.vorgangAttachedItem.VorgangAttachedItemServiceGrpc.VorgangAttachedItemServiceBlockingStub; @ITCase class NachrichtServiceITCase { @@ -23,6 +24,8 @@ class NachrichtServiceITCase { private OzgCloudCommandService commandService; @MockBean private CommandMapper commandMapper; + @MockBean + private VorgangAttachedItemServiceBlockingStub serviceStub; @Nested class TestBuildMessage { diff --git a/bescheid-manager/src/test/java/de/ozgcloud/document/DocumentServiceTest.java b/bescheid-manager/src/test/java/de/ozgcloud/document/DocumentServiceTest.java index 9ade64173..d97c1176e 100644 --- a/bescheid-manager/src/test/java/de/ozgcloud/document/DocumentServiceTest.java +++ b/bescheid-manager/src/test/java/de/ozgcloud/document/DocumentServiceTest.java @@ -44,6 +44,7 @@ import de.ozgcloud.apilib.common.datatypes.GenericId; import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId; import de.ozgcloud.bescheid.BescheidCallContextAttachingInterceptor; import de.ozgcloud.bescheid.attacheditem.AttachedItemService; +import de.ozgcloud.bescheid.attacheditem.AttachedItemTestFactory; import de.ozgcloud.bescheid.attacheditem.BescheidItem; import de.ozgcloud.bescheid.attacheditem.BescheidItemTestFactory; import de.ozgcloud.command.Command; @@ -65,6 +66,8 @@ class DocumentServiceTest { private CommandMapper commandMapper; @Mock private AttachedItemService attachedItemService; + @Mock + private DocumentMapper documentMapper; private Command command = CommandTestFactory.createBuilder() .relationId(RELATION_ID) @@ -293,4 +296,34 @@ class DocumentServiceTest { } } + @Nested + class TestGetDocument { + + @Test + void shouldCallAttachedItemService() { + service.getDocument(AttachedItemTestFactory.ID); + + verify(attachedItemService).getItem(AttachedItemTestFactory.ID); + } + + @Test + void shouldCallDocumentMapper() { + var expectedItem = AttachedItemTestFactory.createDocument(); + when(attachedItemService.getItem(any())).thenReturn(expectedItem); + + service.getDocument(AttachedItemTestFactory.ID); + + verify(documentMapper).fromAttacheItem(expectedItem); + } + + @Test + void shouldReturnDocument() { + var expectedDocument = DocumentTestFactory.create(); + when(documentMapper.fromAttacheItem(any())).thenReturn(expectedDocument); + + Document document = service.getDocument(AttachedItemTestFactory.ID); + + assertThat(document).isEqualTo(expectedDocument); + } + } } \ No newline at end of file -- GitLab