1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs.test;
18
19 import org.apache.commons.vfs.Capability;
20 import org.apache.commons.vfs.FileObject;
21 import org.apache.commons.vfs.RandomAccessContent;
22 import org.apache.commons.vfs.util.RandomAccessMode;
23
24 /***
25 * RanomdRead-only test cases for file providers.
26 *
27 * @author <a href="mailto:imario@apache.org">Mario Ivankovits</a>
28 * @version $Revision: 480428 $ $Date: 2006-11-29 07:15:24 +0100 (Mi, 29 Nov 2006) $
29 */
30 public class ProviderRandomReadTests
31 extends AbstractProviderTestCase
32 {
33 private final String TEST_DATA = "This is a test file.";
34
35 /***
36 * Returns the capabilities required by the tests of this test case.
37 */
38 protected Capability[] getRequiredCaps()
39 {
40 return new Capability[]
41 {
42 Capability.GET_TYPE,
43 Capability.RANDOM_ACCESS_READ
44 };
45 }
46
47 /***
48 * Read a file
49 */
50 public void testRandomRead() throws Exception
51 {
52 FileObject file = null;
53 try
54 {
55 file = getReadFolder().resolveFile("file1.txt");
56 RandomAccessContent ra = file.getContent().getRandomAccessContent(RandomAccessMode.READ);
57
58
59 byte c = ra.readByte();
60 assertEquals(c, TEST_DATA.charAt(0));
61 assertEquals("fp", ra.getFilePointer(), 1);
62
63
64 ra.seek(3);
65 c = ra.readByte();
66 assertEquals(c, TEST_DATA.charAt(3));
67 assertEquals("fp", ra.getFilePointer(), 4);
68
69 c = ra.readByte();
70 assertEquals(c, TEST_DATA.charAt(4));
71 assertEquals("fp", ra.getFilePointer(), 5);
72
73
74 ra.seek(3);
75 c = ra.readByte();
76 assertEquals(c, TEST_DATA.charAt(3));
77 assertEquals("fp", ra.getFilePointer(), 4);
78
79 c = ra.readByte();
80 assertEquals(c, TEST_DATA.charAt(4));
81 assertEquals("fp", ra.getFilePointer(), 5);
82
83
84 ra.seek(10);
85 c = ra.readByte();
86 assertEquals(c, TEST_DATA.charAt(10));
87 assertEquals("fp", ra.getFilePointer(), 11);
88
89 c = ra.readByte();
90 assertEquals(c, TEST_DATA.charAt(11));
91 assertEquals("fp", ra.getFilePointer(), 12);
92 }
93 finally
94 {
95 if (file != null)
96 {
97 file.close();
98 }
99 }
100 }
101 }