From fdbc71dc8fa2e8629f3c03436d36f905d31d79a4 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Tue, 24 Oct 2023 12:11:15 +0200
Subject: [PATCH] OZG-4392 add  method to check if command has error status

---
 .../command/grpc/GrpcOzgCloudCommandService.java    |  6 +++++-
 .../grpc/GrpcOzgCloudCommandServiceTest.java        | 13 +++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/common/command/grpc/GrpcOzgCloudCommandService.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/common/command/grpc/GrpcOzgCloudCommandService.java
index 30e3171..8e8c8c3 100644
--- a/api-lib-core/src/main/java/de/ozgcloud/apilib/common/command/grpc/GrpcOzgCloudCommandService.java
+++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/common/command/grpc/GrpcOzgCloudCommandService.java
@@ -50,7 +50,7 @@ public class GrpcOzgCloudCommandService implements OzgCloudCommandService {
 				}
 			}
 		}
-		if (command.getStatus() == OzgCloudCommandStatus.ERROR) {
+		if (hasErrorStatus(command)) {
 			throw new TechnicalException("Command (id=%s) failed: %s".formatted(command.getId(), command.getErrorMessage()));
 		}
 		return command;
@@ -64,4 +64,8 @@ public class GrpcOzgCloudCommandService implements OzgCloudCommandService {
 	CommandServiceBlockingStub getCommandServiceStub() {
 		return commandServiceStub.withInterceptors(new OzgCloudCallContextAttachingInterceptor(contextProvider));
 	}
+
+	boolean hasErrorStatus(OzgCloudCommand command) {
+		return command.getStatus() == OzgCloudCommandStatus.ERROR;
+	}
 }
diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/common/command/grpc/GrpcOzgCloudCommandServiceTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/common/command/grpc/GrpcOzgCloudCommandServiceTest.java
index 5ca125e..23eac1e 100644
--- a/api-lib-core/src/test/java/de/ozgcloud/apilib/common/command/grpc/GrpcOzgCloudCommandServiceTest.java
+++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/common/command/grpc/GrpcOzgCloudCommandServiceTest.java
@@ -119,4 +119,17 @@ class GrpcOzgCloudCommandServiceTest {
 		}
 	}
 
+	@Nested
+	class TestStatus {
+
+		@Test
+		void shouldReturnTrueByError() {
+			var command = OzgCloudCommandTestFactory.createBuilder().status(OzgCloudCommandStatus.ERROR).build();
+
+			var result = service.hasErrorStatus(command);
+
+			assertThat(result).isTrue();
+		}
+
+	}
 }
\ No newline at end of file
-- 
GitLab