1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.codec.language.bm;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertFalse;
22 import static org.junit.jupiter.api.Assertions.assertNotNull;
23 import static org.junit.jupiter.api.Assertions.assertNotSame;
24 import static org.junit.jupiter.api.Assertions.assertTrue;
25
26 import org.apache.commons.codec.EncoderException;
27 import org.junit.jupiter.api.Test;
28
29
30
31
32 class BeiderMorseEncoderBuilderTest {
33
34
35
36
37 @Test
38 void testBuilderGetReturnsDifferentInstances() {
39 final BeiderMorseEncoder.Builder builder = BeiderMorseEncoder.builder();
40 assertNotSame(builder.get(), builder.get());
41 }
42
43
44
45
46 @Test
47 void testBuilderGetReturnsNonNull() {
48 assertNotNull(BeiderMorseEncoder.builder().get());
49 }
50
51
52
53
54 @Test
55 void testBuilderIsNotNull() {
56 assertNotNull(BeiderMorseEncoder.builder());
57 }
58
59
60
61
62 @Test
63 void testBuilderReturnsDifferentInstances() {
64 assertNotSame(BeiderMorseEncoder.builder(), BeiderMorseEncoder.builder());
65 }
66
67
68
69
70 @Test
71 void testBuilderWithConcatDisabled() {
72 final PhoneticEngine engine = PhoneticEngine.builder().setConcat(false).get();
73 final BeiderMorseEncoder encoder = BeiderMorseEncoder.builder().setPhoneticEngine(engine).get();
74 assertFalse(encoder.isConcat());
75 }
76
77
78
79
80 @Test
81 void testBuilderWithExactRuleType() throws EncoderException {
82 final PhoneticEngine engine = PhoneticEngine.builder().setRuleType(RuleType.EXACT).get();
83 final BeiderMorseEncoder encoder = BeiderMorseEncoder.builder().setPhoneticEngine(engine).get();
84 assertEquals(RuleType.EXACT, encoder.getRuleType());
85 final String result = encoder.encode("Cohen");
86 assertNotNull(result);
87 assertFalse(result.isEmpty());
88 }
89
90
91
92
93 @Test
94 void testDefaultConcat() {
95 final BeiderMorseEncoder encoder = BeiderMorseEncoder.builder().get();
96 assertTrue(encoder.isConcat());
97 }
98
99
100
101
102 @Test
103 void testDefaultEncoderEncodes() throws EncoderException {
104 final BeiderMorseEncoder encoder = BeiderMorseEncoder.builder().get();
105 final String result = encoder.encode("Smith");
106 assertNotNull(result);
107 assertFalse(result.isEmpty());
108 }
109
110
111
112
113 @Test
114 void testDefaultNameType() {
115 final BeiderMorseEncoder encoder = BeiderMorseEncoder.builder().get();
116 assertEquals(NameType.GENERIC, encoder.getNameType());
117 }
118
119
120
121
122 @Test
123 void testDefaultRuleType() {
124 final BeiderMorseEncoder encoder = BeiderMorseEncoder.builder().get();
125 assertEquals(RuleType.APPROX, encoder.getRuleType());
126 }
127
128
129
130
131 @Test
132 void testEncodeNullReturnsNull() throws EncoderException {
133 final BeiderMorseEncoder encoder = BeiderMorseEncoder.builder().get();
134 assertNotNull(encoder);
135
136 assertEquals(null, encoder.encode((String) null));
137 }
138
139
140
141
142 @Test
143 void testSetPhoneticEngineNullFallsBackToDefault() {
144 final BeiderMorseEncoder encoder = BeiderMorseEncoder.builder().setPhoneticEngine(null).get();
145 assertNotNull(encoder);
146 assertEquals(NameType.GENERIC, encoder.getNameType());
147 assertEquals(RuleType.APPROX, encoder.getRuleType());
148 assertTrue(encoder.isConcat());
149 }
150
151
152
153
154 @Test
155 void testSetPhoneticEngineReturnsBuilder() {
156 final PhoneticEngine engine = PhoneticEngine.builder().get();
157 final BeiderMorseEncoder.Builder builder = BeiderMorseEncoder.builder();
158 assertNotNull(builder.setPhoneticEngine(engine));
159 }
160
161
162
163
164 @Test
165 void testSetPhoneticEngineWithAshkenazi() {
166
167 final PhoneticEngine engine = PhoneticEngine.builder()
168 .setNameType(NameType.ASHKENAZI)
169 .setRuleType(RuleType.EXACT)
170 .get();
171
172 final BeiderMorseEncoder encoder = BeiderMorseEncoder.builder().setPhoneticEngine(engine).get();
173 assertEquals(NameType.ASHKENAZI, encoder.getNameType());
174 assertEquals(RuleType.EXACT, encoder.getRuleType());
175 }
176
177
178
179
180 @Test
181 void testSetPhoneticEngineWithSephardic() {
182 final PhoneticEngine engine = PhoneticEngine.builder().setNameType(NameType.SEPHARDIC).get();
183 final BeiderMorseEncoder encoder = BeiderMorseEncoder.builder().setPhoneticEngine(engine).get();
184 assertEquals(NameType.SEPHARDIC, encoder.getNameType());
185 }
186
187
188
189
190 @Test
191 void testTwoDefaultBuildersProduceSameEncoding() throws EncoderException {
192 final BeiderMorseEncoder enc1 = BeiderMorseEncoder.builder().get();
193 final BeiderMorseEncoder enc2 = BeiderMorseEncoder.builder().get();
194 assertEquals(enc1.encode("Levy"), enc2.encode("Levy"));
195 }
196 }