From 8bb4ce2dd873fcc11f44c51968a9479f7b628354 Mon Sep 17 00:00:00 2001 From: mehmet-yoti Date: Fri, 5 Jun 2026 10:22:10 +0100 Subject: [PATCH] feat(SDK-2738): .NET - Expose IDV breakdown "process" property [dotnet] --- .../Session/Retrieve/BreakdownResponse.cs | 3 ++ .../Retrieve/Check/CheckResponseTests.cs | 52 +++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/src/Yoti.Auth/DocScan/Session/Retrieve/BreakdownResponse.cs b/src/Yoti.Auth/DocScan/Session/Retrieve/BreakdownResponse.cs index 8992a4578..c64552ea4 100644 --- a/src/Yoti.Auth/DocScan/Session/Retrieve/BreakdownResponse.cs +++ b/src/Yoti.Auth/DocScan/Session/Retrieve/BreakdownResponse.cs @@ -16,5 +16,8 @@ public class BreakdownResponse [JsonProperty(PropertyName = "details")] public List Details { get; private set; } + + [JsonProperty(PropertyName = "process")] + public string Process { get; private set; } } } \ No newline at end of file diff --git a/test/Yoti.Auth.Tests/DocScan/Session/Retrieve/Check/CheckResponseTests.cs b/test/Yoti.Auth.Tests/DocScan/Session/Retrieve/Check/CheckResponseTests.cs index faa5bc284..bb70015e3 100644 --- a/test/Yoti.Auth.Tests/DocScan/Session/Retrieve/Check/CheckResponseTests.cs +++ b/test/Yoti.Auth.Tests/DocScan/Session/Retrieve/Check/CheckResponseTests.cs @@ -106,6 +106,56 @@ public void CheckBreakdownResponseIsParsed() AssertBreakdownResponseValuesCorrect(breakdownResponse, response); } + [TestMethod] + public void CheckBreakdownResponseProcessIsAutomated() + { + dynamic breakdownResponse = new + { + sub_check = "issuing_authority_verification", + result = "PASS", + process = "AUTOMATED", + details = new List() + }; + + string json = JsonConvert.SerializeObject(breakdownResponse); + BreakdownResponse response = JsonConvert.DeserializeObject(json); + + Assert.AreEqual("AUTOMATED", response.Process); + } + + [TestMethod] + public void CheckBreakdownResponseProcessIsExpertReview() + { + dynamic breakdownResponse = new + { + sub_check = "issuing_authority_verification", + result = "PASS", + process = "EXPERT_REVIEW", + details = new List() + }; + + string json = JsonConvert.SerializeObject(breakdownResponse); + BreakdownResponse response = JsonConvert.DeserializeObject(json); + + Assert.AreEqual("EXPERT_REVIEW", response.Process); + } + + [TestMethod] + public void CheckBreakdownResponseProcessIsNullWhenAbsent() + { + dynamic breakdownResponse = new + { + sub_check = "issuing_authority_verification", + result = "PASS", + details = new List() + }; + + string json = JsonConvert.SerializeObject(breakdownResponse); + BreakdownResponse response = JsonConvert.DeserializeObject(json); + + Assert.IsNull(response.Process); + } + [TestMethod] public void CheckReportResponseIsParsed() { @@ -253,6 +303,7 @@ private dynamic GetBreakdownResponse() { sub_check = "issuing_authority_verification", result = "PASS", + process = "AUTOMATED", details = new List { new { name = "n1", value = "v1" }, new { name = "n2", value = "v2" } @@ -272,6 +323,7 @@ private static void AssertBreakdownResponseValuesCorrect(dynamic breakdownRespon { Assert.AreEqual(breakdownResponse.sub_check, response.SubCheck); Assert.AreEqual(breakdownResponse.result, response.Result); + Assert.AreEqual(breakdownResponse.process, response.Process); var detailsList = (breakdownResponse.details as IEnumerable); Assert.AreEqual(detailsList.First().name, response.Details.First().Name);