Guest User

Untitled

a guest
Dec 13th, 2017
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. import java.util.List;
  2. import java.util.stream.Collectors;
  3. import java.util.stream.StreamSupport;
  4.  
  5. import org.w3c.dom.Node;
  6. import org.xmlunit.builder.DiffBuilder;
  7. import org.xmlunit.builder.Input;
  8. import org.xmlunit.diff.Diff;
  9.  
  10. import org.junit.Test;
  11.  
  12. import static org.junit.Assert.assertEquals;
  13.  
  14. public class XmlUnitTest {
  15.  
  16. @Test
  17. public void testForDifferences() {
  18. String control = "<Parent>\n" +
  19. " <Costum>\n" +
  20. " <Work>\n" +
  21. " <Person>\n" +
  22. " <FirstName>John</FirstName>\n" +
  23. " <LastName>Doe</LastName>\n" +
  24. " <Email>johndoe@email.com</Email>\n" +
  25. " </Person>\n" +
  26. " <Person>\n" +
  27. " <FirstName>Mickey</FirstName>\n" +
  28. " <LastName>Mouse</LastName>\n" +
  29. " <Email>mm@email.com</Email>\n" +
  30. " </Person>\n" +
  31. " <Person>\n" +
  32. " <FirstName>HO</FirstName>\n" +
  33. " <LastName>FRT</LastName>\n" +
  34. " <Email>mm@email.com</Email>\n" +
  35. " </Person>\n" +
  36. " </Work>\n" +
  37. " </Costum>\n" +
  38. "</Parent>";
  39. String test = "<Parent>\n" +
  40. " <Costum>\n" +
  41. " <Work>\n" +
  42. " <Person>\n" +
  43. " <FirstName>John</FirstName>\n" +
  44. " <LastName>Doe</LastName>\n" +
  45. " <Email>johndoe@email.com</Email>\n" +
  46. " </Person>\n" +
  47.  
  48. " <Person>\n" +
  49. " <FirstName>HO</FirstName>\n" +
  50. " <LastName>FRT</LastName>\n" +
  51. " <Email>mm@email.com</Email>\n" +
  52. " </Person>\n" +
  53. " <Person>\n" +
  54. " <FirstName>Mickey</FirstName>\n" +
  55. " <LastName>Mouse</LastName>\n" +
  56. " <Email>mm@email.com</Email>\n" +
  57. " </Person>\n" +
  58. " </Work>\n" +
  59. " </Costum>\n" +
  60. "</Parent>";
  61.  
  62. Diff myDiff = DiffBuilder.compare(Input.fromString(control))
  63. .withTest(Input.fromString(test))
  64. .ignoreWhitespace()
  65. .checkForSimilar()
  66. .build();
  67.  
  68. List<String> controlElements = StreamSupport
  69. .stream(myDiff.getDifferences().spliterator(), false /* parallel */)
  70. .map(diff -> diff.getComparison().getControlDetails().getTarget())
  71. .map(node -> describeElement(node))
  72. .sorted()
  73. .collect(Collectors.toList());
  74.  
  75. List<String> testElements = StreamSupport
  76. .stream(myDiff.getDifferences().spliterator(), false /* parallel */)
  77. .map(diff -> diff.getComparison().getTestDetails().getTarget())
  78. .map(node -> describeElement(node))
  79. .sorted()
  80. .collect(Collectors.toList());
  81.  
  82. assertEquals("В документе есть различия", controlElements, testElements);
  83. }
  84.  
  85. private static String describeElement(Node node) {
  86. String value = node.getNodeValue();
  87. String name = node.getParentNode().getLocalName();
  88. String parentName = node.getParentNode().getParentNode().getLocalName();
  89.  
  90. return new StringBuilder()
  91. .append(parentName)
  92. .append('/')
  93. .append(name)
  94. .append('/')
  95. .append(value)
  96. .toString();
  97.  
  98. }
Add Comment
Please, Sign In to add comment