1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.hc.core5.http.impl.nio;
29
30 import org.hamcrest.CoreMatchers;
31 import org.hamcrest.MatcherAssert;
32 import org.junit.Test;
33
34 public class TestExpandableBuffer {
35
36 @Test
37 public void testBasics() throws Exception {
38 final ExpandableBuffer buffer = new ExpandableBuffer(16);
39 MatcherAssert.assertThat(buffer.mode(), CoreMatchers.equalTo(ExpandableBuffer.Mode.INPUT));
40 MatcherAssert.assertThat(buffer.hasData(), CoreMatchers.equalTo(false));
41
42 buffer.setInputMode();
43 buffer.buffer().put(new byte[] { 0, 1, 2, 3, 4, 5});
44 MatcherAssert.assertThat(buffer.hasData(), CoreMatchers.equalTo(true));
45 MatcherAssert.assertThat(buffer.length(), CoreMatchers.equalTo(6));
46 MatcherAssert.assertThat(buffer.buffer().capacity(), CoreMatchers.equalTo(16));
47 MatcherAssert.assertThat(buffer.mode(), CoreMatchers.equalTo(ExpandableBuffer.Mode.OUTPUT));
48
49 buffer.setInputMode();
50 buffer.buffer().put(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 });
51 MatcherAssert.assertThat(buffer.length(), CoreMatchers.equalTo(16));
52 MatcherAssert.assertThat(buffer.buffer().capacity(), CoreMatchers.equalTo(16));
53 MatcherAssert.assertThat(buffer.mode(), CoreMatchers.equalTo(ExpandableBuffer.Mode.OUTPUT));
54
55 buffer.setInputMode();
56 buffer.ensureCapacity(22);
57 buffer.buffer().put(new byte[] { 0, 1, 2, 3, 4, 5});
58 MatcherAssert.assertThat(buffer.length(), CoreMatchers.equalTo(22));
59 MatcherAssert.assertThat(buffer.buffer().capacity(), CoreMatchers.equalTo(22));
60 MatcherAssert.assertThat(buffer.mode(), CoreMatchers.equalTo(ExpandableBuffer.Mode.OUTPUT));
61
62 buffer.clear();
63 MatcherAssert.assertThat(buffer.mode(), CoreMatchers.equalTo(ExpandableBuffer.Mode.INPUT));
64 MatcherAssert.assertThat(buffer.hasData(), CoreMatchers.equalTo(false));
65 MatcherAssert.assertThat(buffer.capacity(), CoreMatchers.equalTo(22));
66 }
67
68 @Test
69 public void testAdjustCapacity() throws Exception {
70 final ExpandableBuffer buffer = new ExpandableBuffer(16);
71 MatcherAssert.assertThat(buffer.capacity(), CoreMatchers.equalTo(16));
72
73 buffer.ensureCapacity(21);
74 MatcherAssert.assertThat(buffer.capacity(), CoreMatchers.equalTo(21));
75 buffer.ensureAdjustedCapacity(22);
76 MatcherAssert.assertThat(buffer.capacity(), CoreMatchers.equalTo(1024));
77 buffer.ensureAdjustedCapacity(1024);
78 MatcherAssert.assertThat(buffer.capacity(), CoreMatchers.equalTo(1024));
79 buffer.ensureAdjustedCapacity(1025);
80 MatcherAssert.assertThat(buffer.capacity(), CoreMatchers.equalTo(2048));
81 }
82 }