Guest User

Untitled

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