From a76be79bddeabad070200387b1d4250c2437ac42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Henning?= <soeren.henning@email.uni-kiel.de>
Date: Sat, 16 Jul 2022 23:48:03 +0200
Subject: [PATCH] Fix execution duration serialization

---
 .../kubernetes/model/crd/ExecutionStatus.kt      |  2 +-
 .../kubernetes/model/crd/ExecutionStatusTest.kt  | 16 +++++++++++++++-
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/model/crd/ExecutionStatus.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/model/crd/ExecutionStatus.kt
index 6bec7197d..d994da2c0 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/model/crd/ExecutionStatus.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/model/crd/ExecutionStatus.kt
@@ -47,7 +47,7 @@ class ExecutionStatus(
 
         private fun JavaDuration.toK8sString(): String {
             return when {
-                this <= JavaDuration.ofSeconds(2)  -> "${this.toSeconds()}s"
+                this <= JavaDuration.ofMinutes(2)  -> "${this.toSeconds()}s"
                 this < JavaDuration.ofMinutes(99) -> "${this.toMinutes()}m"
                 this < JavaDuration.ofHours(99) -> "${this.toHours()}h"
                 else -> "${this.toDays()}d + ${this.minusDays(this.toDays()).toHours()}h"
diff --git a/theodolite/src/test/kotlin/rocks/theodolite/kubernetes/model/crd/ExecutionStatusTest.kt b/theodolite/src/test/kotlin/rocks/theodolite/kubernetes/model/crd/ExecutionStatusTest.kt
index 4c9326ac2..69750a234 100644
--- a/theodolite/src/test/kotlin/rocks/theodolite/kubernetes/model/crd/ExecutionStatusTest.kt
+++ b/theodolite/src/test/kotlin/rocks/theodolite/kubernetes/model/crd/ExecutionStatusTest.kt
@@ -101,7 +101,7 @@ internal class ExecutionStatusTest {
     }
 
     @Test
-    fun testDurationSerialization() {
+    fun testMinutesDurationSerialization() {
         val objectMapper = ObjectMapper()
         val executionStatus = ExecutionStatus()
         val startInstant = Instant.parse("2022-01-02T18:59:20.492103Z")
@@ -114,6 +114,20 @@ internal class ExecutionStatusTest {
         assertEquals("15m", jsonField.asText())
     }
 
+    @Test
+    fun testSecondsDurationSerialization() {
+        val objectMapper = ObjectMapper()
+        val executionStatus = ExecutionStatus()
+        val startInstant = Instant.parse("2022-01-02T18:59:20.492103Z")
+        executionStatus.startTime = MicroTime(startInstant.toString())
+        executionStatus.completionTime = MicroTime(startInstant.plus(Duration.ofSeconds(45)).toString())
+        val jsonString = objectMapper.writeValueAsString(executionStatus)
+        val json = objectMapper.readTree(jsonString)
+        val jsonField = json.get("executionDuration")
+        assertTrue(jsonField.isTextual)
+        assertEquals("45s", jsonField.asText())
+    }
+
     @Test
     fun testNotStartedDurationSerialization() {
         val objectMapper = ObjectMapper()
-- 
GitLab