diff --git a/edge-agent/src/Microsoft.Azure.Devices.Edge.Agent.Docker/models/RestartPolicyKind.cs b/edge-agent/src/Microsoft.Azure.Devices.Edge.Agent.Docker/models/RestartPolicyKind.cs index 48ef3fe0e08..87fb3e46c6d 100644 --- a/edge-agent/src/Microsoft.Azure.Devices.Edge.Agent.Docker/models/RestartPolicyKind.cs +++ b/edge-agent/src/Microsoft.Azure.Devices.Edge.Agent.Docker/models/RestartPolicyKind.cs @@ -1,23 +1,27 @@ // Copyright (c) Microsoft. All rights reserved. namespace Microsoft.Azure.Devices.Edge.Agent.Docker.Models { + using System.Runtime.Serialization; + using Newtonsoft.Json; + using Newtonsoft.Json.Converters; + [JsonConverter(typeof(StringEnumConverter))] public enum RestartPolicyKind { - [JsonProperty("")] + [EnumMember(Value ="")] Undefined, - [JsonProperty("no")] + [EnumMember(Value = "no")] No, - [JsonProperty("always")] + [EnumMember(Value = "always")] Always, - [JsonProperty("on-failure")] + [EnumMember(Value = "on-failure")] OnFailure, - [JsonProperty("unless-stopped")] + [EnumMember(Value = "unless-stopped")] UnlessStopped } } diff --git a/edge-agent/test/Microsoft.Azure.Devices.Edge.Agent.Docker.Test/DockerConfigTest.cs b/edge-agent/test/Microsoft.Azure.Devices.Edge.Agent.Docker.Test/DockerConfigTest.cs index 9ca4bbd1576..f5a33078553 100644 --- a/edge-agent/test/Microsoft.Azure.Devices.Edge.Agent.Docker.Test/DockerConfigTest.cs +++ b/edge-agent/test/Microsoft.Azure.Devices.Edge.Agent.Docker.Test/DockerConfigTest.cs @@ -232,5 +232,15 @@ public void TestGetCreateOptions(string createOptions, CreateContainerParameters Assert.NotNull(createContainerParameters); Assert.True(DockerConfig.CompareCreateOptions(expectedCreateOptions, createContainerParameters)); } + + [Fact] + public void TestRestartPolicyDeserialization() + { + var original = "{\"HostConfig\":{\"RestartPolicy\":{\"Name\":\"unless-stopped\"}}}"; + var encoded = JsonConvert.DeserializeObject(original); + var decoded = JsonConvert.SerializeObject(encoded); + + Assert.Equal(original, decoded); + } } }