From 6785e6ae3c1fc8ff99992152661ea6c75be40f60 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 25 Apr 2024 15:09:21 +0200
Subject: [PATCH] OZG-5167: apply code review improvements

---
 .../src/lib/bescheid.linkrel.ts               |  4 +--
 .../src/lib/bescheid.util.spec.ts             |  4 +--
 .../bescheid-shared/src/lib/bescheid.util.ts  |  4 +--
 ...cheid-automatisch-erstellen.component.html |  2 +-
 ...id-automatisch-erstellen.component.spec.ts |  4 +--
 .../alfa/bescheid/BescheidModelAssembler.java |  8 ++---
 .../bescheid/BescheidModelAssemblerTest.java  | 32 ++++---------------
 .../bescheid/BescheidRemoteServiceTest.java   |  2 +-
 .../alfa/bescheid/BescheidServiceTest.java    | 20 ++++++------
 ...cheidManagerConfigResponseTestFactory.java |  4 ---
 10 files changed, 30 insertions(+), 54 deletions(-)

diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid.linkrel.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid.linkrel.ts
index 6dc9c2abe8..e964530ec1 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.linkrel.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.linkrel.ts
@@ -3,8 +3,8 @@ export enum BescheidLinkRel {
   UPLOAD_BESCHEID_FILE = 'uploadBescheidFile',
   UPLOAD_ATTACHMENT = 'uploadAttachment',
   UPDATE = 'update',
-  CREATE_BESCHEID_DOCUMENT_AUTOMATICALLY = 'createBescheidDocumentAutomatically',
-  CREATE_BESCHEID_DOCUMENT_FROM_FILE = 'createBescheidDocumentFromFile',
+  CREATE_DOCUMENT = 'createDocument',
+  CREATE_DOCUMENT_FROM_FILE = 'createDocumentFromFile',
   ATTACHMENTS = 'attachments',
   BESCHEID_DOCUMENT = 'bescheidDocument',
   SEND = 'send',
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid.util.spec.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid.util.spec.ts
index 1ce5001079..a6ba051915 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.util.spec.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.util.spec.ts
@@ -66,7 +66,7 @@ describe('BescheidUtil', () => {
         binaryFileResource,
       );
 
-      expect(props.linkRel).toBe(BescheidLinkRel.CREATE_BESCHEID_DOCUMENT_FROM_FILE);
+      expect(props.linkRel).toBe(BescheidLinkRel.CREATE_DOCUMENT_FROM_FILE);
     });
 
     describe('command', () => {
@@ -195,7 +195,7 @@ describe('BescheidUtil', () => {
     it('should have linkRel', () => {
       const props: CreateCommandProps = buildCreateBescheidDocumentCommandProps(bescheidResource);
 
-      expect(props.linkRel).toBe(BescheidLinkRel.CREATE_BESCHEID_DOCUMENT_AUTOMATICALLY);
+      expect(props.linkRel).toBe(BescheidLinkRel.CREATE_DOCUMENT);
     });
 
     describe('command', () => {
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid.util.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid.util.ts
index 867aeb37ad..ee496fe136 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.util.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.util.ts
@@ -28,7 +28,7 @@ export function buildCreateBescheidDocumentFromFileProps(
 ): CreateCommandProps {
   return {
     resource: bescheid,
-    linkRel: BescheidLinkRel.CREATE_BESCHEID_DOCUMENT_FROM_FILE,
+    linkRel: BescheidLinkRel.CREATE_DOCUMENT_FROM_FILE,
     command: buildCreateBescheidDocumentFromFileCommand(binaryFile),
     snackBarMessage: EMPTY_STRING,
   };
@@ -67,7 +67,7 @@ export function buildCreateBescheidDocumentCommandProps(
 ): CreateCommandProps {
   return {
     resource,
-    linkRel: BescheidLinkRel.CREATE_BESCHEID_DOCUMENT_AUTOMATICALLY,
+    linkRel: BescheidLinkRel.CREATE_DOCUMENT,
     command: {
       order: CommandOrder.CREATE_BESCHEID_DOCUMENT,
       body: null,
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html
index 18f52e0962..0755d97403 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html
@@ -1,7 +1,7 @@
 <ng-container *ngIf="bescheidDraftStateResource.resource as bescheidDraft">
   <div class="mt-4">
     <ods-button
-      *ngIf="bescheidDraft | hasLink: bescheidLinkRel.CREATE_BESCHEID_DOCUMENT_AUTOMATICALLY"
+      *ngIf="bescheidDraft | hasLink: bescheidLinkRel.CREATE_DOCUMENT"
       class="w-72"
       [isLoading]="(createBescheidDocumentInProgress$ | async).loading"
       (click)="createBescheidDocument()"
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts
index f9c5fc06dc..79731c5661 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts
@@ -60,7 +60,7 @@ describe('VorgangDetailBescheidenBescheidAutomatischErstellenComponent', () => {
   describe('create bescheid document button', () => {
     beforeEach(() => {
       component.bescheidDraftStateResource = createStateResource(
-        createBescheidResource([BescheidLinkRel.CREATE_BESCHEID_DOCUMENT_AUTOMATICALLY]),
+        createBescheidResource([BescheidLinkRel.CREATE_DOCUMENT]),
       );
 
       fixture.detectChanges();
@@ -81,7 +81,7 @@ describe('VorgangDetailBescheidenBescheidAutomatischErstellenComponent', () => {
 
     it('should be visible if link is present', () => {
       component.bescheidDraftStateResource = createStateResource(
-        createBescheidResource([BescheidLinkRel.CREATE_BESCHEID_DOCUMENT_AUTOMATICALLY]),
+        createBescheidResource([BescheidLinkRel.CREATE_DOCUMENT]),
       );
       fixture.detectChanges();
 
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidModelAssembler.java
index cae792c048..8ebf3d388d 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidModelAssembler.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidModelAssembler.java
@@ -23,8 +23,8 @@ public class BescheidModelAssembler implements RepresentationModelAssembler<Besc
 	static final String REL_UPLOAD_ATTACHMENT = "uploadAttachment";
 	static final String REL_ATTACHMENTS = "attachments";
 	static final String REL_UPDATE = "update";
-	static final String REL_CREATE_BESCHEID_DOCUMENT_AUTOMATICALLY = "createBescheidDocumentAutomatically";
-	static final String REL_CREATE_BESCHEID_DOCUMENT_FROM_FILE = "createBescheidDocumentFromFile";
+	static final String REL_CREATE_DOCUMENT = "createDocument";
+	static final String REL_CREATE_DOCUMENT_FROM_FILE = "createDocumentFromFile";
 	static final String REL_BESCHEID_DOCUMENT = "bescheidDocument";
 	static final String REL_SEND = "send";
 
@@ -53,8 +53,8 @@ public class BescheidModelAssembler implements RepresentationModelAssembler<Besc
 				.addLink(attachmentsLink.withRel(REL_ATTACHMENTS))
 				.addLink(createCommandLink.withRel(REL_UPDATE))
 				.ifMatch(bescheidService::canCreateBescheidDocumentAutomatically)
-				.addLink(createCommandLink.withRel(REL_CREATE_BESCHEID_DOCUMENT_AUTOMATICALLY))
-				.addLink(createCommandLink.withRel(REL_CREATE_BESCHEID_DOCUMENT_FROM_FILE))
+				.addLink(createCommandLink.withRel(REL_CREATE_DOCUMENT))
+				.addLink(createCommandLink.withRel(REL_CREATE_DOCUMENT_FROM_FILE))
 				.addLink(createCommandLink.withRel(REL_SEND))
 				.buildModel();
 	}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidModelAssemblerTest.java
index c423e4b2d1..450d840af3 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidModelAssemblerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidModelAssemblerTest.java
@@ -16,7 +16,6 @@ import org.mockito.Spy;
 import org.springframework.hateoas.EntityModel;
 import org.springframework.hateoas.IanaLinkRelations;
 import org.springframework.hateoas.Link;
-import org.springframework.hateoas.LinkRelation;
 import org.springframework.web.util.UriTemplate;
 
 import de.ozgcloud.alfa.common.command.CommandController;
@@ -95,29 +94,29 @@ class BescheidModelAssemblerTest {
 		}
 
 		@Test
-		void shouldHaveCreateBescheidDocumentAutomaticallyLink() {
+		void shouldHaveCreateDocumentLink() {
 			when(bescheidService.canCreateBescheidDocumentAutomatically()).thenReturn(true);
 
 			var model = callToModel();
 
-			assertThat(model.getLink(REL_CREATE_BESCHEID_DOCUMENT_AUTOMATICALLY)).isPresent().get().extracting(Link::getHref)
+			assertThat(model.getLink(REL_CREATE_DOCUMENT)).isPresent().get().extracting(Link::getHref)
 					.isEqualTo(createCommandLink());
 		}
 
 		@Test
-		void shoulNotdHaveCreateBescheidDocumentAutomaticallyLink() {
+		void shoulNotdHaveCreateDocumentLink() {
 			when(bescheidService.canCreateBescheidDocumentAutomatically()).thenReturn(false);
 
 			var model = callToModel();
 
-			assertThat(model.getLink(REL_CREATE_BESCHEID_DOCUMENT_AUTOMATICALLY)).isEmpty();
+			assertThat(model.getLink(REL_CREATE_DOCUMENT)).isEmpty();
 		}
 
 		@Test
-		void shouldHaveCreateBescheidDocumentFromFileLink() {
+		void shouldHaveCreateDocumentFromFileLink() {
 			var model = callToModel();
 
-			assertThat(model.getLink(REL_CREATE_BESCHEID_DOCUMENT_FROM_FILE)).isPresent().get().extracting(Link::getHref)
+			assertThat(model.getLink(REL_CREATE_DOCUMENT_FROM_FILE)).isPresent().get().extracting(Link::getHref)
 					.isEqualTo(createCommandLink());
 		}
 
@@ -137,25 +136,6 @@ class BescheidModelAssemblerTest {
 					.isEqualTo(String.format("%s/%s", DocumentController.PATH, BescheidTestFactory.BESCHEID_DOCUMENT));
 		}
 
-		@Test
-		void shouldHaveOnlyExpectedLinks() {
-			when(bescheidService.canCreateBescheidDocumentAutomatically()).thenReturn(true);
-
-			var model = callToModel();
-
-			assertThat(model.getLinks()).extracting(Link::getRel).containsExactlyInAnyOrder(
-					IanaLinkRelations.SELF,
-					LinkRelation.of(REL_DELETE),
-					LinkRelation.of(REL_UPLOAD_BESCHEID_FILE),
-					LinkRelation.of(REL_UPLOAD_ATTACHMENT),
-					LinkRelation.of(REL_ATTACHMENTS),
-					LinkRelation.of(REL_UPDATE),
-					LinkRelation.of(REL_CREATE_BESCHEID_DOCUMENT_AUTOMATICALLY),
-					LinkRelation.of(REL_CREATE_BESCHEID_DOCUMENT_FROM_FILE),
-					LinkRelation.of(REL_BESCHEID_DOCUMENT),
-					LinkRelation.of(REL_SEND));
-		}
-
 		@Test
 		void shouldHaveSendLink() {
 			var model = callToModel();
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java
index d08fe3d917..1a60e85c32 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java
@@ -148,7 +148,7 @@ class BescheidRemoteServiceTest {
 
 		@Test
 		void shouldReturnFalseIfNoFeaturesAvailable() {
-			when(bescheidServiceStub.getConfig(request)).thenReturn(GrpcBescheidManagerConfigResponseTestFactory.empty());
+			when(bescheidServiceStub.getConfig(request)).thenReturn(GrpcBescheidManagerConfigResponse.newBuilder().build());
 
 			var canCreate = service.canCreateBescheidDocument();
 
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidServiceTest.java
index 74dc8384f1..53b89afb96 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidServiceTest.java
@@ -7,6 +7,8 @@ import java.util.Optional;
 
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
@@ -46,22 +48,20 @@ class BescheidServiceTest {
 	class TestCanCreateBescheidDocumentAutomatically {
 
 		@Test
-		void shouldReturnTrue() {
-			when(remoteService.canCreateBescheidDocument()).thenReturn(true);
-
-			var canCreateAutomatically = service.canCreateBescheidDocumentAutomatically();
+		void shouldCallRemoteService() {
+			service.canCreateBescheidDocumentAutomatically();
 
-			assertThat(canCreateAutomatically).isTrue();
+			verify(remoteService).canCreateBescheidDocument();
 		}
 
-		@Test
-		void shouldReturnFalse() {
-			when(remoteService.canCreateBescheidDocument()).thenReturn(false);
+		@ParameterizedTest
+		@ValueSource(booleans = { true, false })
+		void shouldRetrun(boolean canCreateBescheidDocument) {
+			when(remoteService.canCreateBescheidDocument()).thenReturn(canCreateBescheidDocument);
 
 			var canCreateAutomatically = service.canCreateBescheidDocumentAutomatically();
 
-			assertThat(canCreateAutomatically).isFalse();
-
+			assertThat(canCreateAutomatically).isEqualTo(canCreateBescheidDocument);
 		}
 	}
 }
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerConfigResponseTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerConfigResponseTestFactory.java
index d15b8aea1d..72a9bcb5fe 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerConfigResponseTestFactory.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerConfigResponseTestFactory.java
@@ -4,10 +4,6 @@ import de.ozgcloud.bescheid.GrpcBescheidManagerConfigResponse;
 
 public class GrpcBescheidManagerConfigResponseTestFactory {
 
-	public static GrpcBescheidManagerConfigResponse empty() {
-		return GrpcBescheidManagerConfigResponse.newBuilder().build();
-	}
-
 	public static GrpcBescheidManagerConfigResponse create() {
 		return createBuilder().build();
 	}
-- 
GitLab