瀏覽代碼

Add error message and context to validation results in Semantic Tests

Marcin Ziąbek 1 月之前
父節點
當前提交
4c1e9017bd
共有 1 個文件被更改,包括 17 次插入6 次删除
  1. 17 6
      Source/QuestPDF.ConformanceTests/TestEngine/VeraPdfConformanceTestRunner.cs

+ 17 - 6
Source/QuestPDF.ConformanceTests/TestEngine/VeraPdfConformanceTestRunner.cs

@@ -19,6 +19,8 @@ public static class VeraPdfConformanceTestRunner
             public string Specification { get; set; }
             public string Clause { get; set; }
             public string Description { get; set; }
+            public string ErrorMessage { get; set; }
+            public string Context { get; set; }
         }
 
         public string GetErrorMessage()
@@ -35,6 +37,10 @@ public static class VeraPdfConformanceTestRunner
                 errorMessage.AppendLine($"\t{failedRule.Clause}");
                 errorMessage.AppendLine($"\t{failedRule.Description}");
                 errorMessage.AppendLine();
+                errorMessage.AppendLine($"\t{failedRule.ErrorMessage}");
+                errorMessage.AppendLine();
+                errorMessage.AppendLine($"\t{failedRule.Context}");
+                errorMessage.AppendLine();
             }
 
             return errorMessage.ToString();
@@ -98,13 +104,18 @@ public static class VeraPdfConformanceTestRunner
 
             foreach (var failedRule in failedRules.EnumerateArray())
             {
-                result.FailedRules.Add(new ValidationResult.FailedRule
+                foreach (var check in failedRule.GetProperty("checks").EnumerateArray())
                 {
-                    Profile = profileValidationResult.GetProperty("profileName").GetString().Split(" ").First(),
-                    Specification = failedRule.GetProperty("specification").GetString(),
-                    Clause = failedRule.GetProperty("clause").GetString(),
-                    Description = failedRule.GetProperty("description").GetString()
-                });
+                    result.FailedRules.Add(new ValidationResult.FailedRule
+                    {
+                        Profile = profileValidationResult.GetProperty("profileName").GetString().Split(" ").First(),
+                        Specification = failedRule.GetProperty("specification").GetString(),
+                        Clause = failedRule.GetProperty("clause").GetString(),
+                        Description = failedRule.GetProperty("description").GetString(),
+                        ErrorMessage = check.GetProperty("errorMessage").GetString(),
+                        Context = check.GetProperty("context").GetString()
+                    });
+                }
             }
         }