diff --git a/api/docker-kotlin.klib.api b/api/docker-kotlin.klib.api index fafa4400..d7fbea65 100644 --- a/api/docker-kotlin.klib.api +++ b/api/docker-kotlin.klib.api @@ -280,7 +280,7 @@ final class me.devnatan.dockerkt.models.container/ContainerArchiveInfo { // me.d } final class me.devnatan.dockerkt.models.container/ContainerConfig { // me.devnatan.dockerkt.models.container/ContainerConfig|null[0] - constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.collections/List? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.collections/List? = ..., kotlin.collections/List = ..., me.devnatan.dockerkt.models/HealthConfig? = ..., kotlin/Boolean? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin/Boolean? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin.collections/Map = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin.collections/List = ...) // me.devnatan.dockerkt.models.container/ContainerConfig.|(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Boolean?;kotlin.collections.List?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Boolean?;kotlin.collections.List?;kotlin.collections.List;me.devnatan.dockerkt.models.HealthConfig?;kotlin.Boolean?;kotlin.String?;kotlin.collections.List?;kotlin.String?;kotlin.collections.List?;kotlin.Boolean?;kotlin.String?;kotlin.collections.List?;kotlin.collections.Map;kotlin.String?;kotlin.Int?;kotlin.collections.List){}[0] + constructor (kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.collections/List? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., me.devnatan.dockerkt.models/HealthConfig? = ..., kotlin/Boolean? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin/Boolean? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin.collections/Map = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin.collections/List = ...) // me.devnatan.dockerkt.models.container/ContainerConfig.|(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Boolean?;kotlin.collections.List?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Boolean?;kotlin.collections.List?;kotlin.collections.List?;me.devnatan.dockerkt.models.HealthConfig?;kotlin.Boolean?;kotlin.String?;kotlin.collections.List?;kotlin.String?;kotlin.collections.List?;kotlin.Boolean?;kotlin.String?;kotlin.collections.List?;kotlin.collections.Map;kotlin.String?;kotlin.Int?;kotlin.collections.List){}[0] final val argsEscaped // me.devnatan.dockerkt.models.container/ContainerConfig.argsEscaped|{}argsEscaped[0] final fun (): kotlin/Boolean? // me.devnatan.dockerkt.models.container/ContainerConfig.argsEscaped.|(){}[0] @@ -291,7 +291,7 @@ final class me.devnatan.dockerkt.models.container/ContainerConfig { // me.devnat final val attachStdout // me.devnatan.dockerkt.models.container/ContainerConfig.attachStdout|{}attachStdout[0] final fun (): kotlin/Boolean? // me.devnatan.dockerkt.models.container/ContainerConfig.attachStdout.|(){}[0] final val command // me.devnatan.dockerkt.models.container/ContainerConfig.command|{}command[0] - final fun (): kotlin.collections/List // me.devnatan.dockerkt.models.container/ContainerConfig.command.|(){}[0] + final fun (): kotlin.collections/List? // me.devnatan.dockerkt.models.container/ContainerConfig.command.|(){}[0] final val domainname // me.devnatan.dockerkt.models.container/ContainerConfig.domainname|{}domainname[0] final fun (): kotlin/String? // me.devnatan.dockerkt.models.container/ContainerConfig.domainname.|(){}[0] final val entrypoint // me.devnatan.dockerkt.models.container/ContainerConfig.entrypoint|{}entrypoint[0] @@ -336,7 +336,7 @@ final class me.devnatan.dockerkt.models.container/ContainerConfig { // me.devnat final fun component1(): kotlin/String? // me.devnatan.dockerkt.models.container/ContainerConfig.component1|component1(){}[0] final fun component10(): kotlin/Boolean? // me.devnatan.dockerkt.models.container/ContainerConfig.component10|component10(){}[0] final fun component11(): kotlin.collections/List? // me.devnatan.dockerkt.models.container/ContainerConfig.component11|component11(){}[0] - final fun component12(): kotlin.collections/List // me.devnatan.dockerkt.models.container/ContainerConfig.component12|component12(){}[0] + final fun component12(): kotlin.collections/List? // me.devnatan.dockerkt.models.container/ContainerConfig.component12|component12(){}[0] final fun component13(): me.devnatan.dockerkt.models/HealthConfig? // me.devnatan.dockerkt.models.container/ContainerConfig.component13|component13(){}[0] final fun component14(): kotlin/Boolean? // me.devnatan.dockerkt.models.container/ContainerConfig.component14|component14(){}[0] final fun component15(): kotlin/String? // me.devnatan.dockerkt.models.container/ContainerConfig.component15|component15(){}[0] @@ -358,7 +358,7 @@ final class me.devnatan.dockerkt.models.container/ContainerConfig { // me.devnat final fun component7(): kotlin.collections/List? // me.devnatan.dockerkt.models.container/ContainerConfig.component7|component7(){}[0] final fun component8(): kotlin/Boolean? // me.devnatan.dockerkt.models.container/ContainerConfig.component8|component8(){}[0] final fun component9(): kotlin/Boolean? // me.devnatan.dockerkt.models.container/ContainerConfig.component9|component9(){}[0] - final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.collections/List? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.collections/List? = ..., kotlin.collections/List = ..., me.devnatan.dockerkt.models/HealthConfig? = ..., kotlin/Boolean? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin/Boolean? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin.collections/Map = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin.collections/List = ...): me.devnatan.dockerkt.models.container/ContainerConfig // me.devnatan.dockerkt.models.container/ContainerConfig.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Boolean?;kotlin.collections.List?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Boolean?;kotlin.collections.List?;kotlin.collections.List;me.devnatan.dockerkt.models.HealthConfig?;kotlin.Boolean?;kotlin.String?;kotlin.collections.List?;kotlin.String?;kotlin.collections.List?;kotlin.Boolean?;kotlin.String?;kotlin.collections.List?;kotlin.collections.Map;kotlin.String?;kotlin.Int?;kotlin.collections.List){}[0] + final fun copy(kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.collections/List? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin/Boolean? = ..., kotlin.collections/List? = ..., kotlin.collections/List? = ..., me.devnatan.dockerkt.models/HealthConfig? = ..., kotlin/Boolean? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin/Boolean? = ..., kotlin/String? = ..., kotlin.collections/List? = ..., kotlin.collections/Map = ..., kotlin/String? = ..., kotlin/Int? = ..., kotlin.collections/List = ...): me.devnatan.dockerkt.models.container/ContainerConfig // me.devnatan.dockerkt.models.container/ContainerConfig.copy|copy(kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Boolean?;kotlin.collections.List?;kotlin.Boolean?;kotlin.Boolean?;kotlin.Boolean?;kotlin.collections.List?;kotlin.collections.List?;me.devnatan.dockerkt.models.HealthConfig?;kotlin.Boolean?;kotlin.String?;kotlin.collections.List?;kotlin.String?;kotlin.collections.List?;kotlin.Boolean?;kotlin.String?;kotlin.collections.List?;kotlin.collections.Map;kotlin.String?;kotlin.Int?;kotlin.collections.List){}[0] final fun equals(kotlin/Any?): kotlin/Boolean // me.devnatan.dockerkt.models.container/ContainerConfig.equals|equals(kotlin.Any?){}[0] final fun hashCode(): kotlin/Int // me.devnatan.dockerkt.models.container/ContainerConfig.hashCode|hashCode(){}[0] final fun toString(): kotlin/String // me.devnatan.dockerkt.models.container/ContainerConfig.toString|toString(){}[0] diff --git a/src/commonMain/kotlin/me/devnatan/dockerkt/models/container/ContainerConfig.kt b/src/commonMain/kotlin/me/devnatan/dockerkt/models/container/ContainerConfig.kt index 663807b0..af162669 100644 --- a/src/commonMain/kotlin/me/devnatan/dockerkt/models/container/ContainerConfig.kt +++ b/src/commonMain/kotlin/me/devnatan/dockerkt/models/container/ContainerConfig.kt @@ -23,8 +23,8 @@ public data class ContainerConfig( @SerialName("Tty") public val tty: Boolean? = null, @SerialName("OpenStdin") public val openStdin: Boolean? = null, @SerialName("StdinOnce") public val stdinOnce: Boolean? = null, - @SerialName("Env") public val env: List? = emptyList(), - @SerialName("Cmd") public val command: List = emptyList(), + @SerialName("Env") public val env: List? = null, + @SerialName("Cmd") public val command: List? = null, @SerialName("Healthcheck") public val healthcheck: HealthConfig? = null, @SerialName("ArgsEscaped") public val argsEscaped: Boolean? = null, @SerialName("Image") public val image: String? = null, diff --git a/src/commonTest/kotlin/me/devnatan/dockerkt/resource/container/InspectContainerIT.kt b/src/commonTest/kotlin/me/devnatan/dockerkt/resource/container/InspectContainerIT.kt index 763b425a..b275235f 100644 --- a/src/commonTest/kotlin/me/devnatan/dockerkt/resource/container/InspectContainerIT.kt +++ b/src/commonTest/kotlin/me/devnatan/dockerkt/resource/container/InspectContainerIT.kt @@ -10,26 +10,22 @@ import me.devnatan.dockerkt.resource.ResourceIT import me.devnatan.dockerkt.withContainer import kotlin.test.Test import kotlin.test.assertEquals +import kotlin.test.assertNull class InspectContainerIT : ResourceIT() { @Test fun `inspects container with volumes`() = runTest { testClient.withContainer( - "busybox:latest", - { + image = "busybox:latest", + options = { volume("/opt") keepStartedForever() }, - ) { id -> - testClient.containers.start(id) - try { - val container = testClient.containers.inspect(id) - val volumes = container.config.volumes - assertEquals(volumes, listOf("/opt")) - } finally { - testClient.containers.stop(id) - } + ) { containerId -> + val container = testClient.containers.inspect(containerId) + val volumes = container.config.volumes + assertEquals(volumes, listOf("/opt")) } } } diff --git a/src/commonTest/kotlin/me/devnatan/dockerkt/util/JsonTest.kt b/src/commonTest/kotlin/me/devnatan/dockerkt/util/JsonTest.kt deleted file mode 100644 index a90a1e01..00000000 --- a/src/commonTest/kotlin/me/devnatan/dockerkt/util/JsonTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package me.devnatan.dockerkt.util - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable -import kotlin.test.Test -import kotlin.test.assertEquals - -class JsonTest { - @Test - fun `deserialization of nullable api field with default value`() { - @Serializable - data class Entity( - @SerialName("Cmd") val command: List = emptyList(), - ) - - val json = """{"Cmd": null}""" - val entity = DockerKotlinJson.decodeFromString(json) - - assertEquals( - expected = Entity(command = emptyList()), - actual = entity, - ) - } -}