From ccd55a0d0f464b703e509775c5f2493ec539f554 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 11 Jul 2024 17:00:04 +0200
Subject: [PATCH] OZG-5987 add tests for CommandStatus

---
 vorgang-manager-command/pom.xml               | 12 ++++
 .../ozgcloud/command/CommandStatusTest.java   | 56 +++++++++++++++++++
 .../org.junit.jupiter.api.extension.Extension |  1 +
 3 files changed, 69 insertions(+)
 create mode 100644 vorgang-manager-command/src/test/java/de/ozgcloud/command/CommandStatusTest.java
 create mode 100644 vorgang-manager-command/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension

diff --git a/vorgang-manager-command/pom.xml b/vorgang-manager-command/pom.xml
index a925adb4f..eee44b9bc 100644
--- a/vorgang-manager-command/pom.xml
+++ b/vorgang-manager-command/pom.xml
@@ -33,6 +33,18 @@
 			<artifactId>lombok</artifactId>
 			<optional>true</optional>
 		</dependency>
+
+		<!-- Test -->
+		<dependency>
+			<groupId>org.junit.jupiter</groupId>
+			<artifactId>junit-jupiter-engine</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.junit.jupiter</groupId>
+			<artifactId>junit-jupiter-params</artifactId>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 	
 	<build>
diff --git a/vorgang-manager-command/src/test/java/de/ozgcloud/command/CommandStatusTest.java b/vorgang-manager-command/src/test/java/de/ozgcloud/command/CommandStatusTest.java
new file mode 100644
index 000000000..489a073ac
--- /dev/null
+++ b/vorgang-manager-command/src/test/java/de/ozgcloud/command/CommandStatusTest.java
@@ -0,0 +1,56 @@
+/*
+ * 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.command;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.EnumSource;
+
+class CommandStatusTest {
+
+	@Nested
+	class TestIsFailedOrRevokeStatus {
+
+		@DisplayName("should return true when")
+		@ParameterizedTest(name = "status is {0}")
+		@EnumSource(value = CommandStatus.class, names = { "ERROR", "CANCELED", "REVOKE_PENDING", "REVOKED" })
+		void shouldReturnTrueWhenE(CommandStatus status) {
+			var result = CommandStatus.isFailedOrRevokeStatus(status);
+
+			assertTrue(result);
+		}
+
+		@DisplayName("should return false when")
+		@ParameterizedTest(name = "status is {0}")
+		@EnumSource(value = CommandStatus.class, names = { "ERROR", "CANCELED", "REVOKE_PENDING", "REVOKED" }, mode = EnumSource.Mode.EXCLUDE)
+		void shouldReturnFalseWhen(CommandStatus status) {
+			var result = CommandStatus.isFailedOrRevokeStatus(status);
+
+			assertFalse(result);
+		}
+	}
+}
\ No newline at end of file
diff --git a/vorgang-manager-command/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/vorgang-manager-command/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
new file mode 100644
index 000000000..79b126e6c
--- /dev/null
+++ b/vorgang-manager-command/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
@@ -0,0 +1 @@
+org.mockito.junit.jupiter.MockitoExtension
\ No newline at end of file
-- 
GitLab