1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs2;
18
19 import org.apache.commons.vfs2.util.RandomAccessMode;
20 import org.junit.Test;
21
22
23
24
25 public class ProviderRandomReadTests extends AbstractProviderTestCase {
26
27 private static final String TEST_DATA = "This is a test file.";
28
29
30
31
32 @Override
33 protected Capability[] getRequiredCapabilities() {
34 return new Capability[] { Capability.GET_TYPE, Capability.RANDOM_ACCESS_READ };
35 }
36
37
38
39
40 @Test
41 public void testRandomRead() throws Exception {
42 try (FileObject file = getReadFolder().resolveFile("file1.txt")) {
43 final RandomAccessContent ra = file.getContent().getRandomAccessContent(RandomAccessMode.READ);
44
45
46 byte c = ra.readByte();
47 assertEquals(TEST_DATA.charAt(0), c);
48 assertEquals("fp", 1, ra.getFilePointer());
49
50
51 ra.seek(3);
52 c = ra.readByte();
53 assertEquals(TEST_DATA.charAt(3), c);
54 assertEquals("fp", 4, ra.getFilePointer());
55
56 c = ra.readByte();
57 assertEquals(TEST_DATA.charAt(4), c);
58 assertEquals("fp", 5, ra.getFilePointer());
59
60
61 ra.seek(3);
62 c = ra.readByte();
63 assertEquals(TEST_DATA.charAt(3), c);
64 assertEquals("fp", 4, ra.getFilePointer());
65
66 c = ra.readByte();
67 assertEquals(TEST_DATA.charAt(4), c);
68 assertEquals("fp", 5, ra.getFilePointer());
69
70
71 ra.seek(10);
72 c = ra.readByte();
73 assertEquals(TEST_DATA.charAt(10), c);
74 assertEquals("fp", 11, ra.getFilePointer());
75
76 c = ra.readByte();
77 assertEquals(TEST_DATA.charAt(11), c);
78 assertEquals("fp", 12, ra.getFilePointer());
79 }
80 }
81
82 }