KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > archive > io > RepositionableInputStreamTest


1 /* RepositionableInputStreamTest.java
2  *
3  * $Id: RepositionableInputStreamTest.java,v 1.2 2005/12/21 19:20:37 stack-sf Exp $
4  *
5  * Created Dec 20, 2005
6  *
7  * Copyright (C) 2005 Internet Archive.
8  *
9  * This file is part of the Heritrix web crawler (crawler.archive.org).
10  *
11  * Heritrix is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser Public License as published by
13  * the Free Software Foundation; either version 2.1 of the License, or
14  * any later version.
15  *
16  * Heritrix is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser Public License
22  * along with Heritrix; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24  */

25 package org.archive.io;
26
27 import java.io.File JavaDoc;
28 import java.io.FileInputStream JavaDoc;
29 import java.io.FileOutputStream JavaDoc;
30 import java.io.PrintWriter JavaDoc;
31
32 import org.archive.util.TmpDirTestCase;
33
34 public class RepositionableInputStreamTest extends TmpDirTestCase {
35     private File JavaDoc testFile;
36     private static final String JavaDoc LINE = "0123456789abcdefghijklmnopqrstuv";
37     protected void setUp() throws Exception JavaDoc {
38         super.setUp();
39         this.testFile = new File JavaDoc(getTmpDir(), this.getClass().getName());
40         PrintWriter JavaDoc pw = new PrintWriter JavaDoc(new FileOutputStream JavaDoc(testFile));
41         for (int i = 0; i < 100; i++) {
42             pw.print(LINE);
43         }
44         pw.close();
45     }
46     protected void tearDown() throws Exception JavaDoc {
47         super.tearDown();
48     }
49     public void testname() throws Exception JavaDoc {
50         // Make buffer awkward size so we run into buffers spanning issues.
51
RepositionableInputStream ris =
52             new RepositionableInputStream(new FileInputStream JavaDoc(this.testFile),
53                 57);
54         int c = ris.read();
55         assertEquals(1, ris.position());
56         ris.read();
57         ris.position(0);
58         assertEquals(0, ris.position());
59         int c1 = ris.read();
60         assertEquals(c, c1);
61         ris.position(0);
62         byte [] bytes = new byte[LINE.length()];
63         long offset = 0;
64         for (int i = 0; i < 10; i++) {
65             ris.read(bytes, 0, LINE.length());
66             assertEquals(LINE, new String JavaDoc(bytes));
67             offset += LINE.length();
68             assertEquals(offset, ris.position());
69         }
70         long p = ris.position();
71         ris.position(p - LINE.length());
72         assertEquals(p - LINE.length(), ris.position());
73         c = ris.read();
74         assertEquals(c, c1);
75     }
76 }
77
Popular Tags