// Copyright 2002-2005, FreeHEP. package org.freehep.util.io.test; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import org.freehep.util.io.RouteListener; import org.freehep.util.io.RoutedInputStream; /** * Test for Routed Input Stream. * * @author Mark Donszelmann * @version $Id: * src/test/java/org/freehep/util/io/test/RoutedInputStreamTest.java * 5c38dc058ace 2005/12/02 23:30:37 duns $ */ public class RoutedInputStreamTest extends AbstractStreamTest { /** * Tests RoutiedInputStream.read() * * @throws Exception * when reference file cannot be found */ public void testRead() throws Exception { File testFile = new File(testDir, "RoutedInputStream.txt"); File refFile = new File(refDir, "RoutedInputStream.out"); File outFile = new File(outDir, "RoutedInputStream.out"); RoutedInputStream in = new RoutedInputStream(new BufferedInputStream( new FileInputStream(testFile))); final PrintStream out = new PrintStream(new FileOutputStream(outFile)); RouteListener listener = new RouteListener() { public void routeFound(RoutedInputStream.Route route) throws IOException { out.write('['); out.write(route.getStart()); out.write(':'); int b = route.read(); while (b != -1) { out.write(b); b = route.read(); } route.close(); out.write(']'); out.flush(); } }; in.addRoute("StartA", "EndA", listener); in.addRoute("StartB", "EndB", listener); in.addRoute("StartC", "EndC", listener); in.addRoute("SClosed", "EClosed", new RouteListener() { public void routeFound(RoutedInputStream.Route route) throws IOException { out.print("[EarlyClosed:"); for (int i = 0; i < 6; i++) { out.write(route.read()); } route.close(); out.write(']'); out.flush(); } }); int b = in.read(); while (b != -1) { out.write(b); b = in.read(); } in.close(); out.close(); Assert.assertEquals(refFile, outFile, false); } }