Skip to content

Commit f835e1b

Browse files
committed
add a test for MutableCharArray
1 parent 7c15573 commit f835e1b

File tree

1 file changed

+174
-0
lines changed

1 file changed

+174
-0
lines changed
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
package io.routekit.util;
2+
3+
import org.junit.jupiter.api.Assertions;
4+
import org.junit.jupiter.api.Test;
5+
6+
public class MutableCharArrayTest {
7+
@Test
8+
public void create_empty_string() {
9+
MutableCharArray array = new MutableCharArray("");
10+
Assertions.assertEquals(array.start(), 0);
11+
Assertions.assertEquals(array.end(), 0);
12+
Assertions.assertEquals(array.length(), 0);
13+
}
14+
15+
@Test
16+
public void create_empty_same_pointers() {
17+
MutableCharArray array = new MutableCharArray("foo", 3, 3);
18+
Assertions.assertEquals(array.start(), 3);
19+
Assertions.assertEquals(array.end(), 3);
20+
Assertions.assertEquals(array.length(), 0);
21+
}
22+
23+
@Test
24+
public void immutable_to_others() {
25+
CharArray array = new CharArray("foo");
26+
27+
Assertions.assertEquals(array, array.mutable());
28+
Assertions.assertEquals(array, array.mutableCopy());
29+
30+
Assertions.assertSame(array, array.immutable());
31+
Assertions.assertEquals(array, array.immutableCopy());
32+
Assertions.assertFalse(array.immutable() instanceof MutableCharArray);
33+
Assertions.assertFalse(array.immutableCopy() instanceof MutableCharArray);
34+
}
35+
36+
@Test
37+
public void mutable_to_others() {
38+
MutableCharArray array = new MutableCharArray("foo");
39+
40+
Assertions.assertSame(array, array.mutable());
41+
Assertions.assertEquals(array, array.mutableCopy());
42+
Assertions.assertNotSame(array, array.mutableCopy());
43+
44+
Assertions.assertEquals(array, array.immutable());
45+
Assertions.assertEquals(array, array.immutableCopy());
46+
Assertions.assertFalse(array.immutable() instanceof MutableCharArray);
47+
Assertions.assertFalse(array.immutableCopy() instanceof MutableCharArray);
48+
}
49+
50+
@Test
51+
public void substring() {
52+
MutableCharArray array = new MutableCharArray("foobar");
53+
54+
Assertions.assertFalse(array.substring(0, 3) instanceof MutableCharArray);
55+
Assertions.assertFalse(array.substring(3, 6) instanceof MutableCharArray);
56+
57+
Assertions.assertEquals(array.substring(0, 3), array.mutableSubstring(0, 3));
58+
Assertions.assertEquals(array.substring(1, 4), array.mutableSubstring(1, 4));
59+
Assertions.assertEquals(array.substring(3, 6), array.mutableSubstring(3, 6));
60+
}
61+
62+
@Test
63+
public void offset_start_and_end() {
64+
MutableCharArray array = new MutableCharArray("foobar");
65+
66+
array.offsetStart(1);
67+
Assertions.assertEquals("oobar", array.toString());
68+
69+
array.offsetEnd(1);
70+
Assertions.assertEquals("ooba", array.toString());
71+
72+
array.offsetStart(2);
73+
Assertions.assertEquals("ba", array.toString());
74+
75+
array.offsetEnd(2);
76+
Assertions.assertEquals("", array.toString());
77+
}
78+
79+
@Test
80+
public void offset_prefix() {
81+
MutableCharArray array = new MutableCharArray("foobar");
82+
83+
array.offsetPrefix(new CharArray("food"));
84+
Assertions.assertEquals("foobar", array.toString());
85+
86+
array.offsetPrefix(new CharArray("foo"));
87+
Assertions.assertEquals("bar", array.toString());
88+
89+
array.offsetPrefix(new CharArray("a"));
90+
Assertions.assertEquals("bar", array.toString());
91+
92+
array.offsetPrefix(new CharArray("b"));
93+
Assertions.assertEquals("ar", array.toString());
94+
95+
array.offsetPrefix('a');
96+
Assertions.assertEquals("r", array.toString());
97+
98+
array.offsetPrefix('r');
99+
Assertions.assertEquals("", array.toString());
100+
}
101+
102+
@Test
103+
public void offset_suffix() {
104+
MutableCharArray array = new MutableCharArray("foobar");
105+
106+
array.offsetSuffix(new CharArray("var"));
107+
Assertions.assertEquals("foobar", array.toString());
108+
109+
array.offsetSuffix(new CharArray("bar"));
110+
Assertions.assertEquals("foo", array.toString());
111+
112+
array.offsetSuffix(new CharArray("a"));
113+
Assertions.assertEquals("foo", array.toString());
114+
115+
array.offsetSuffix(new CharArray("o"));
116+
Assertions.assertEquals("fo", array.toString());
117+
118+
array.offsetSuffix('o');
119+
Assertions.assertEquals("f", array.toString());
120+
121+
array.offsetSuffix('f');
122+
Assertions.assertEquals("", array.toString());
123+
}
124+
125+
@Test
126+
public void reset() {
127+
MutableCharArray array = new MutableCharArray("foobar", 3, 5);
128+
129+
array.resetStart();
130+
Assertions.assertEquals("fooba", array.toString());
131+
132+
array.resetEnd();
133+
Assertions.assertEquals("foobar", array.toString());
134+
135+
array.offsetStart(2);
136+
array.offsetEnd(2);
137+
Assertions.assertEquals("ob", array.toString());
138+
139+
array.reset();
140+
Assertions.assertEquals("foobar", array.toString());
141+
}
142+
143+
@Test
144+
public void join_same_buffer() {
145+
MutableCharArray foobar = new MutableCharArray("foobar");
146+
CharArray foo = foobar.substring(0, 3);
147+
CharArray bar = foobar.substring(3, 6);
148+
149+
Assertions.assertEquals(foobar, MutableCharArray.join(foo, bar));
150+
Assertions.assertSame(foobar.chars, MutableCharArray.join(foo, bar).chars);
151+
Assertions.assertSame(foobar.chars, MutableCharArray.join(foo.immutableCopy(), bar).chars);
152+
Assertions.assertSame(foobar.chars, MutableCharArray.join(foo, bar.immutableCopy()).chars);
153+
Assertions.assertSame(foobar.chars, MutableCharArray.join(foo.immutableCopy(), bar.immutableCopy()).chars);
154+
Assertions.assertSame(foobar.chars, MutableCharArray.join(foo.mutable(), bar).chars);
155+
Assertions.assertSame(foobar.chars, MutableCharArray.join(foo, bar.mutable()).chars);
156+
Assertions.assertSame(foobar.chars, MutableCharArray.join(foo.mutable(), bar.mutable()).chars);
157+
}
158+
159+
@Test
160+
public void join_new_buffer() {
161+
MutableCharArray foobar = new MutableCharArray("foobar");
162+
CharArray foo = new CharArray("foo");
163+
CharArray bar = new CharArray("bar");
164+
165+
Assertions.assertEquals(foobar, MutableCharArray.join(foo, bar));
166+
Assertions.assertNotSame(foobar.chars, MutableCharArray.join(foo, bar).chars);
167+
Assertions.assertNotSame(foobar.chars, MutableCharArray.join(foo.immutableCopy(), bar).chars);
168+
Assertions.assertNotSame(foobar.chars, MutableCharArray.join(foo, bar.immutableCopy()).chars);
169+
Assertions.assertNotSame(foobar.chars, MutableCharArray.join(foo.immutableCopy(), bar.immutableCopy()).chars);
170+
Assertions.assertNotSame(foobar.chars, MutableCharArray.join(foo.mutable(), bar).chars);
171+
Assertions.assertNotSame(foobar.chars, MutableCharArray.join(foo, bar.mutable()).chars);
172+
Assertions.assertNotSame(foobar.chars, MutableCharArray.join(foo.mutable(), bar.mutable()).chars);
173+
}
174+
}

0 commit comments

Comments
 (0)