From 9f06032056fdfe7bd06eda8b7620570169749fe5 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Wed, 6 Nov 2024 09:29:06 +0100
Subject: [PATCH] OZG-6990 add mapper tests

---
 .../GrpcClientAttributeTestFactory.java       | 69 +++++++++++++++++++
 .../OzgCloudClientAttributeMapperTest.java    | 37 +++++++++-
 2 files changed, 105 insertions(+), 1 deletion(-)
 create mode 100644 api-lib-core/src/test/java/de/ozgcloud/apilib/attributes/GrpcClientAttributeTestFactory.java

diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/attributes/GrpcClientAttributeTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/attributes/GrpcClientAttributeTestFactory.java
new file mode 100644
index 0000000..4d8fe27
--- /dev/null
+++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/attributes/GrpcClientAttributeTestFactory.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+
+package de.ozgcloud.apilib.attributes;
+
+import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcAccessPermission;
+import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttribute;
+import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttributeValue;
+
+public class GrpcClientAttributeTestFactory {
+
+	public static final GrpcAccessPermission ACCESS_PERMISSION = GrpcAccessPermission.READ_ONLY;
+
+	public static final GrpcClientAttributeValue BOOLEAN_VALUE =
+		GrpcClientAttributeValue.newBuilder().setBoolValue(OzgCloudClientAttributeTestFactory.BOOLEAN_VALUE).build();
+
+	public static final GrpcClientAttributeValue STRING_VALUE =
+		GrpcClientAttributeValue.newBuilder().setStringValue(OzgCloudClientAttributeTestFactory.STRING_VALUE).build();
+
+	public static final GrpcClientAttributeValue LONG_VALUE = GrpcClientAttributeValue.newBuilder().setIntValue(
+		OzgCloudClientAttributeTestFactory.LONG_VALUE).build();
+
+	public static final GrpcClientAttributeValue DOUBLE_VALUE =
+		GrpcClientAttributeValue.newBuilder().setDoubleValue(OzgCloudClientAttributeTestFactory.DOUBLE_VALUE).build();
+
+	public static GrpcClientAttribute createBoolean() {
+		return createBuilder().setValue(BOOLEAN_VALUE).build();
+	}
+
+	public static GrpcClientAttribute createString() {
+		return createBuilder().setValue(STRING_VALUE).build();
+	}
+
+	public static GrpcClientAttribute createLong() {
+		return createBuilder().setValue(LONG_VALUE).build();
+	}
+
+	public static GrpcClientAttribute createDouble() {
+		return createBuilder().setValue(DOUBLE_VALUE).build();
+	}
+
+	public static GrpcClientAttribute.Builder createBuilder() {
+		return GrpcClientAttribute.newBuilder()
+			.setClientName(OzgCloudClientAttributeTestFactory.CLIENT)
+			.setAttributeName(OzgCloudClientAttributeTestFactory.ATTRIBUTE_NAME)
+			.setAccess(ACCESS_PERMISSION);
+	}
+}
diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/attributes/grpc/OzgCloudClientAttributeMapperTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/attributes/grpc/OzgCloudClientAttributeMapperTest.java
index df16c7e..0676d2f 100644
--- a/api-lib-core/src/test/java/de/ozgcloud/apilib/attributes/grpc/OzgCloudClientAttributeMapperTest.java
+++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/attributes/grpc/OzgCloudClientAttributeMapperTest.java
@@ -24,8 +24,43 @@
 
 package de.ozgcloud.apilib.attributes.grpc;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.api.Test;
+import org.mapstruct.factory.Mappers;
+
+import de.ozgcloud.apilib.attributes.GrpcClientAttributeTestFactory;
+import de.ozgcloud.apilib.attributes.OzgCloudClientAttributeTestFactory;
 
 class OzgCloudClientAttributeMapperTest {
 
+	private OzgCloudClientAttributeMapper mapper = Mappers.getMapper(OzgCloudClientAttributeMapper.class);
+
+	@Test
+	void shouldMapBooleanAttribute() {
+		var result = mapper.toGrpc(OzgCloudClientAttributeTestFactory.createBoolean());
+
+		assertThat(result).usingRecursiveComparison().isEqualTo(GrpcClientAttributeTestFactory.createBoolean());
+	}
+
+	@Test
+	void shouldMapStringAttribute() {
+		var result = mapper.toGrpc(OzgCloudClientAttributeTestFactory.createString());
+
+		assertThat(result).usingRecursiveComparison().isEqualTo(GrpcClientAttributeTestFactory.createString());
+	}
+
+	@Test
+	void shouldMapLongAttribute() {
+		var result = mapper.toGrpc(OzgCloudClientAttributeTestFactory.createLong());
+
+		assertThat(result).usingRecursiveComparison().isEqualTo(GrpcClientAttributeTestFactory.createLong());
+	}
+
+	@Test
+	void shouldMapDoubleAttribute() {
+		var result = mapper.toGrpc(OzgCloudClientAttributeTestFactory.createDouble());
+
+		assertThat(result).usingRecursiveComparison().isEqualTo(GrpcClientAttributeTestFactory.createDouble());
+	}
 }
\ No newline at end of file
-- 
GitLab