Browse Source

refactor CopyCompare again

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1896543 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_5_2_0
PJ Fanning 2 years ago
parent
commit
4823d0cbd4

+ 6
- 11
poi-examples/src/main/java/org/apache/poi/examples/hpsf/CopyCompare.java View File

import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;


import org.apache.poi.hpsf.DocumentSummaryInformation; import org.apache.poi.hpsf.DocumentSummaryInformation;
@SuppressWarnings({"java:S106","java:S4823"}) @SuppressWarnings({"java:S106","java:S4823"})
public final class CopyCompare { public final class CopyCompare {


private PrintStream out = System.out;
private CopyCompare() {}


/** /**
* Runs the example program. The application expects one or two arguments: * Runs the example program. The application expects one or two arguments:
* supported. * supported.
*/ */
public static void main(final String[] args) throws IOException { public static void main(final String[] args) throws IOException {
new CopyCompare().run(args);
}

public void run(String[] args) throws IOException {
String originalFileName = null; String originalFileName = null;
String copyFileName = null; String copyFileName = null;


System.exit(1); System.exit(1);
} }


boolean result = compare(originalFileName, copyFileName);
System.out.println(result ? "Equal" : "Not equal");
}


public static boolean compare(String originalFileName, String copyFileName) throws IOException {
// Read the origin POIFS using the eventing API. // Read the origin POIFS using the eventing API.
final POIFSReader r = new POIFSReader(); final POIFSReader r = new POIFSReader();
try (final POIFSFileSystem poiFs = new POIFSFileSystem(); try (final POIFSFileSystem poiFs = new POIFSFileSystem();
POIFSFileSystem cpfs = new POIFSFileSystem(new File(copyFileName))) { POIFSFileSystem cpfs = new POIFSFileSystem(new File(copyFileName))) {
final DirectoryEntry oRoot = opfs.getRoot(); final DirectoryEntry oRoot = opfs.getRoot();
final DirectoryEntry cRoot = cpfs.getRoot(); final DirectoryEntry cRoot = cpfs.getRoot();
out.println(EntryUtils.areDirectoriesIdentical(oRoot, cRoot) ? "Equal" : "Not equal");
return EntryUtils.areDirectoriesIdentical(oRoot, cRoot);
} }
} }


public void setOut(PrintStream ps) {
out = ps;
}

private interface InputStreamSupplier { private interface InputStreamSupplier {
InputStream get() throws IOException, WritingNotSupportedException; InputStream get() throws IOException, WritingNotSupportedException;
} }

+ 3
- 11
poi-integration/src/test/java/org/apache/poi/stress/HPSFFileHandler.java View File

import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail; import static org.junit.jupiter.api.Assertions.fail;
import static org.junit.jupiter.api.Assumptions.assumeFalse; import static org.junit.jupiter.api.Assumptions.assumeFalse;


import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
import java.util.Set; import java.util.Set;


import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.examples.hpsf.CopyCompare; import org.apache.poi.examples.hpsf.CopyCompare;
import org.apache.poi.hpsf.DocumentSummaryInformation; import org.apache.poi.hpsf.DocumentSummaryInformation;
import org.apache.poi.hpsf.HPSFPropertiesOnlyDocument; import org.apache.poi.hpsf.HPSFPropertiesOnlyDocument;
public void handleAdditional(File file) throws Exception { public void handleAdditional(File file) throws Exception {
assumeFalse(EXCLUDES_HANDLE_ADD.contains(file.getParentFile().getName()+"/"+file.getName())); assumeFalse(EXCLUDES_HANDLE_ADD.contains(file.getParentFile().getName()+"/"+file.getName()));


try (UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream()) {
try (PrintStream psNew = new PrintStream(bos, true, "ISO-8859-1")) {
CopyCompare copyCompare = new CopyCompare();
copyCompare.setOut(psNew);
copyCompare.run(new String[]{file.getAbsolutePath(), copyOutput.get().getAbsolutePath()});
assertEquals("Equal" + NL, bos.toString(StandardCharsets.UTF_8));
}
}
boolean result = CopyCompare.compare(file.getAbsolutePath(), copyOutput.get().getAbsolutePath());
assertTrue(result);
} }





Loading…
Cancel
Save