@Test public void testAudioMD_noMD5() throws Exception { Fits fits = new Fits(); // First generate the FITS output File input = new File("testfiles/test.wav"); FitsOutput fitsOut = fits.examine(input); XMLOutputter serializer = new XMLOutputter(Format.getPrettyFormat()); String actualXmlStr = serializer.outputString(fitsOut.getFitsXml()); // Read in the expected XML file Scanner scan = new Scanner(new File("testfiles/output/FITS_test_wav_NO_MD5.xml")); String expectedXmlStr = scan.useDelimiter("\\Z").next(); scan.close(); // Set up XMLUnit XMLUnit.setIgnoreWhitespace(true); XMLUnit.setNormalizeWhitespace(true); Diff diff = new Diff(expectedXmlStr, actualXmlStr); // Initialize attributes or elements to ignore for difference checking diff.overrideDifferenceListener( new IgnoreNamedElementsDifferenceListener( "version", "toolversion", "dateModified", "fslastmodified", "lastmodified", "startDate", "startTime", "timestamp", "fitsExecutionTime", "executionTime", "filepath", "location")); DetailedDiff detailedDiff = new DetailedDiff(diff); // Display any Differences List<Difference> diffs = detailedDiff.getAllDifferences(); if (!diff.identical()) { StringBuffer differenceDescription = new StringBuffer(); differenceDescription.append(diffs.size()).append(" differences"); System.out.println(differenceDescription.toString()); for (Difference difference : diffs) { System.out.println(difference.toString()); } } assertTrue("Differences in XML", diff.identical()); }
@Test public void testEquality() throws Exception { // convert FitsOutput xml doms to strings for the diff StringWriter sw = new StringWriter(); Document expectedDom = expected.getFitsXml(); Document actualDom = actual.getFitsXml(); serializer.output(actualDom, sw); String actualStr = sw.toString(); sw = new StringWriter(); serializer.output(expectedDom, sw); String expectedStr = sw.toString(); // get the file name in case of a failure FitsMetadataElement item = actual.getMetadataElement("filename"); DifferenceListener myDifferenceListener = new IgnoreAttributeValuesDifferenceListener(); Diff diff = new Diff(expectedStr, actualStr); diff.overrideDifferenceListener(myDifferenceListener); assertXMLIdentical("Error comparing: " + item.getValue(), diff, true); }
public static void assertExportedTmxFilesEqual(File testFile, InputStream goalStream) throws IOException, SAXException { try (Reader testReader = Files.newReader(testFile, StandardCharsets.UTF_8); Reader goldReader = new InputStreamReader(goalStream, StandardCharsets.UTF_8)) { Diff diff = new Diff(goldReader, testReader); diff.overrideDifferenceListener( new DifferenceListener() { @Override public void skippedComparison(Node arg0, Node arg1) {} @Override public int differenceFound(Difference d) { Node node = d.getControlNodeDetail().getNode(); if (node.getNodeType() == Node.ATTRIBUTE_NODE && "creationtoolversion".equals(node.getNodeName())) { return RETURN_IGNORE_DIFFERENCE_NODES_SIMILAR; } return 0; } }); assertTrue(diff.similar()); } }