From 073a3a0bdd5d45a0549465583af21d5c761a2e41 Mon Sep 17 00:00:00 2001 From: Jeffrey Verbeek Date: Fri, 4 May 2018 16:33:16 +0200 Subject: [PATCH 1/2] Fix Certes.Acme.Resource.Challenge error property --- src/Certes/Acme/Resource/Challenge.cs | 8 ++++---- test/Certes.Tests/Acme/Resource/ChallengeTests.cs | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Certes/Acme/Resource/Challenge.cs b/src/Certes/Acme/Resource/Challenge.cs index 6e45e0f9..2984eb8a 100644 --- a/src/Certes/Acme/Resource/Challenge.cs +++ b/src/Certes/Acme/Resource/Challenge.cs @@ -1,6 +1,5 @@ using Newtonsoft.Json; using System; -using System.Collections.Generic; namespace Certes.Acme.Resource { @@ -46,13 +45,14 @@ public class Challenge public DateTimeOffset? Validated { get; set; } /// - /// Gets or sets the errors. + /// Gets or sets the error. + /// Only if the status is invalid /// /// /// The errors. /// - [JsonProperty("errors")] - public IList Errors { get; set; } + [JsonProperty("error")] + public AcmeError Error { get; set; } /// /// Gets or sets the token. diff --git a/test/Certes.Tests/Acme/Resource/ChallengeTests.cs b/test/Certes.Tests/Acme/Resource/ChallengeTests.cs index bc3a5355..c7b98251 100644 --- a/test/Certes.Tests/Acme/Resource/ChallengeTests.cs +++ b/test/Certes.Tests/Acme/Resource/ChallengeTests.cs @@ -1,4 +1,5 @@ using System; +using Certes.Acme; using Certes.Acme.Resource; using Xunit; @@ -10,7 +11,7 @@ public class ChallengeTests public void CanGetSetProperties() { var entity = new Challenge(); - entity.VerifyGetterSetter(e => e.Errors, new object[0]); + entity.VerifyGetterSetter(e => e.Error, new AcmeError()); entity.VerifyGetterSetter(e => e.Status, ChallengeStatus.Invalid); entity.VerifyGetterSetter(e => e.Token, "certes"); entity.VerifyGetterSetter(e => e.Type, "http-01"); From 9387505952b56a7fc71ee808def34b9d02404e0c Mon Sep 17 00:00:00 2001 From: Eddie Lin <5827855+fszlin@users.noreply.github.com> Date: Fri, 4 May 2018 21:05:41 -0400 Subject: [PATCH 2/2] restore Challenge.Errors for backwards compatibility --- docs/CHANGELOG.md | 2 ++ src/Certes/Acme/Resource/Challenge.cs | 11 +++++++++++ test/Certes.Tests/Acme/Resource/ChallengeTests.cs | 1 + 3 files changed, 14 insertions(+) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 1ba37a53..dbf7c0aa 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file. ### Added - Export full chain certification in PEM ([#87][i87]) - Support custom `HttpClient` ([#95][i95]) +- Add `Challenge.Error` for challenge valdidation error ([#99][i99]) ### Changed - Encapsulating ACME errors in exceptions ([#65][i65]) @@ -68,3 +69,4 @@ All notable changes to this project will be documented in this file. [i86]: https://github.com/fszlin/certes/issues/86 [i87]: https://github.com/fszlin/certes/issues/87 [i95]: https://github.com/fszlin/certes/issues/95 +[i99]: https://github.com/fszlin/certes/issues/99 diff --git a/src/Certes/Acme/Resource/Challenge.cs b/src/Certes/Acme/Resource/Challenge.cs index 2984eb8a..b325488c 100644 --- a/src/Certes/Acme/Resource/Challenge.cs +++ b/src/Certes/Acme/Resource/Challenge.cs @@ -1,5 +1,6 @@ using Newtonsoft.Json; using System; +using System.Collections.Generic; namespace Certes.Acme.Resource { @@ -54,6 +55,16 @@ public class Challenge [JsonProperty("error")] public AcmeError Error { get; set; } + /// + /// Gets or sets the errors. + /// + /// + /// The errors. + /// + [JsonProperty("errors")] + [Obsolete("Use Challenge.Error instead.")] + public IList Errors { get; set; } + /// /// Gets or sets the token. /// diff --git a/test/Certes.Tests/Acme/Resource/ChallengeTests.cs b/test/Certes.Tests/Acme/Resource/ChallengeTests.cs index c7b98251..6a910516 100644 --- a/test/Certes.Tests/Acme/Resource/ChallengeTests.cs +++ b/test/Certes.Tests/Acme/Resource/ChallengeTests.cs @@ -11,6 +11,7 @@ public class ChallengeTests public void CanGetSetProperties() { var entity = new Challenge(); + entity.VerifyGetterSetter(e => e.Errors, new object[0]); entity.VerifyGetterSetter(e => e.Error, new AcmeError()); entity.VerifyGetterSetter(e => e.Status, ChallengeStatus.Invalid); entity.VerifyGetterSetter(e => e.Token, "certes");