1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.any23.validator;
19
20 import org.apache.any23.validator.rule.MetaNameMisuseFix;
21 import org.apache.any23.validator.rule.MetaNameMisuseRule;
22 import org.apache.xerces.dom.DocumentImpl;
23 import org.junit.After;
24 import org.junit.Assert;
25 import org.junit.Before;
26 import org.junit.Test;
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
29 import org.w3c.dom.Document;
30 import org.w3c.dom.Element;
31
32 import java.io.ByteArrayOutputStream;
33 import java.nio.charset.StandardCharsets;
34
35
36
37
38
39
40 public class XMLValidationReportSerializerTest {
41
42 private static final Logger logger = LoggerFactory.getLogger(XMLValidationReportSerializerTest.class);
43
44 private XMLValidationReportSerializer serializer;
45
46 @Before
47 public void setUp() {
48 serializer = new XMLValidationReportSerializer();
49 }
50
51 @After
52 public void tearDown() {
53 serializer = null;
54 }
55
56 @Test
57 public void testSerializeEmptyReport() throws SerializationException {
58 ValidationReport emptyReport = EmptyValidationReport.getInstance();
59 ByteArrayOutputStream baos = new ByteArrayOutputStream();
60 serializer.serialize(emptyReport, baos);
61
62 Assert.assertTrue(baos.size() > 0);
63 }
64
65 @Test
66 public void testSerialize() throws SerializationException, IllegalAccessException, InstantiationException {
67 ValidationReportBuilder validationReportBuilder = new DefaultValidationReportBuilder();
68
69 Document document = new DocumentImpl();
70 Element element = document.createElement("html");
71 validationReportBuilder.reportIssue(ValidationReport.IssueLevel.INFO, "Test message", element);
72
73 validationReportBuilder.traceRuleActivation(new MetaNameMisuseRule());
74
75 validationReportBuilder.reportRuleError(new MetaNameMisuseRule(), new RuntimeException("Fake exc message"),
76 "Fake message");
77
78 validationReportBuilder.reportFixError(new MetaNameMisuseFix(), new RuntimeException("Fake exc message"),
79 "Fake message");
80
81 ValidationReport vr = validationReportBuilder.getReport();
82 ByteArrayOutputStream baos = new ByteArrayOutputStream();
83 serializer.serialize(vr, baos);
84 logger.debug(baos.toString(StandardCharsets.UTF_8));
85
86 final String bufferContent = baos.toString(StandardCharsets.UTF_8);
87 Assert.assertTrue(bufferContent.contains("<validationReport>"));
88 Assert.assertTrue(bufferContent.contains("</validationReport>"));
89 Assert.assertTrue(bufferContent.contains("<issue>"));
90 Assert.assertTrue(bufferContent.contains("</issue>"));
91 Assert.assertTrue(bufferContent.contains("<ruleActivation>"));
92 Assert.assertTrue(bufferContent.contains("</ruleActivation>"));
93 Assert.assertTrue(bufferContent.contains("<ruleError>"));
94 Assert.assertTrue(bufferContent.contains("</ruleError>"));
95 Assert.assertTrue(bufferContent.contains("<fixError>"));
96 Assert.assertTrue(bufferContent.contains("</fixError>"));
97 }
98
99 }