1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.text.translate;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertThrows;
21
22 import java.io.StringWriter;
23 import java.io.Writer;
24
25 import org.junit.jupiter.api.BeforeEach;
26 import org.junit.jupiter.api.Test;
27
28
29
30
31 class SinglePassTranslatorTest {
32
33 private static final class TestTranslator extends SinglePassTranslator {
34 @Override
35 void translateWhole(final CharSequence input, final Writer writer) {
36
37 }
38 }
39
40 private final SinglePassTranslator dummyTranslator = new SinglePassTranslator() {
41
42 @Override
43 void translateWhole(final CharSequence input, final Writer writer) {
44
45 }
46 };
47
48 private StringWriter out;
49
50 @BeforeEach
51 public void before() {
52 out = new StringWriter();
53 }
54
55 @Test
56 void testCodePointsAreReturned() throws Exception {
57 assertEquals(0, dummyTranslator.translate("", 0, out));
58 assertEquals(3, dummyTranslator.translate("abc", 0, out));
59 assertEquals(7, dummyTranslator.translate("abcdefg", 0, out));
60 }
61
62 @Test
63 void testIndexIsValidated() {
64 assertThrows(IllegalArgumentException.class, () -> dummyTranslator.translate("abc", 1, out));
65 }
66
67 @Test
68 void testTranslateThrowsIllegalArgumentException() {
69 assertThrows(IllegalArgumentException.class, () -> dummyTranslator.translate("(,Fk", 647, null));
70 }
71
72 @Test
73 void testTranslateThrowsIllegalArgumentExceptionWithNonAnonymousClass() {
74 assertThrows(IllegalArgumentException.class, () -> new TestTranslator().translate("(,Fk", 647, null));
75 }
76 }