Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import org.xmlunit.builder.DiffBuilder;
- import org.xmlunit.builder.Input;
- import org.xmlunit.diff.Comparison;
- import org.xmlunit.diff.Diff;
- import org.xmlunit.diff.Difference;
- import org.junit.Test;
- import static org.junit.Assert.assertEquals;
- public class XmlUnitTest {
- @Test
- public void testForDifferences() {
- String control = "<Parent>\n" +
- " <Costum>\n" +
- " <Work>\n" +
- " <Person>\n" +
- " <FirstName>John</FirstName>\n" +
- " <LastName>Doe</LastName>\n" +
- " <Email>johndoe@email.com</Email>\n" +
- " </Person>\n" +
- " <Person>\n" +
- " <FirstName>Mickey</FirstName>\n" +
- " <LastName>Mouse</LastName>\n" +
- " <Email>mm@email.com</Email>\n" +
- " </Person>\n" +
- " <Person>\n" +
- " <FirstName>HO</FirstName>\n" +
- " <LastName>FRT</LastName>\n" +
- " <Email>mm@email.com</Email>\n" +
- " </Person>\n" +
- " </Work>\n" +
- " </Costum>\n" +
- "</Parent>";
- String test = "<Parent>\n" +
- " <Costum>\n" +
- " <Work>\n" +
- " <Person>\n" +
- " <FirstName>John</FirstName>\n" +
- " <LastName>Doe</LastName>\n" +
- " <Email>johndoe@email.com</Email>\n" +
- " </Person>\n" +
- " <Person>\n" +
- " <FirstName>HO</FirstName>\n" +
- " <LastName>FRT</LastName>\n" +
- " <Email>mm@email.com</Email>\n" +
- " </Person>\n" +
- " <Person>\n" +
- " <FirstName>Mickey</FirstName>\n" +
- " <LastName>Mouse</LastName>\n" +
- " <Email>mm@email.com</Email>\n" +
- " </Person>\n" +
- " </Work>\n" +
- " </Costum>\n" +
- "</Parent>";
- Diff myDiff = DiffBuilder.compare(Input.fromString(control))
- .withTest(Input.fromString(test))
- .ignoreWhitespace()
- .checkForSimilar()
- .build();
- List<String> controlElements = new ArrayList<>();
- List<String> testElements = new ArrayList<>();
- for (Difference di : myDiff.getDifferences()) {
- controlElements.add(describeElement(di.getComparison().getControlDetails()));
- testElements.add(describeElement(di.getComparison().getTestDetails()));
- }
- Collections.sort(controlElements);
- Collections.sort(testElements);
- assertEquals("В документе есть различия", controlElements, testElements);
- }
- private static String describeElement(Comparison.Detail detail) {
- String value = detail.getTarget().getNodeValue();
- String name = detail.getTarget().getParentNode().getLocalName();
- String parentName = detail.getTarget().getParentNode().getParentNode().getLocalName();
- return new StringBuilder()
- .append(parentName)
- .append('/')
- .append(name)
- .append('/')
- .append(value)
- .toString();
- }
- }
Add Comment
Please, Sign In to add comment