Skip to content

Commit 43f0bf5

Browse files
committed
Bullet-proofing: Tests we do not blow up for any char input.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/codec/trunk@1154276 13f79535-47bb-0310-9956-ffa450edef68
1 parent 6e2c9e1 commit 43f0bf5

1 file changed

Lines changed: 26 additions & 18 deletions

File tree

src/test/org/apache/commons/codec/language/bm/BeiderMorseEncoderTest.java

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,34 @@ private void assertNotEmpty(BeiderMorseEncoder bmpm, final String value) throws
3838
Assert.assertFalse(value, bmpm.encode(value).equals(""));
3939
}
4040

41+
private BeiderMorseEncoder createGenericApproxEncoder() {
42+
BeiderMorseEncoder encoder = new BeiderMorseEncoder();
43+
encoder.setNameType(NameType.GENERIC);
44+
encoder.setRuleType(RuleType.APPROX);
45+
return encoder;
46+
}
47+
4148
@Override
4249
protected StringEncoder createStringEncoder() {
4350
return new BeiderMorseEncoder();
4451
}
4552

53+
/**
54+
* Tests we do not blow up.
55+
*
56+
* @throws EncoderException
57+
*/
58+
@Test
59+
public void testAllChars() throws EncoderException {
60+
BeiderMorseEncoder bmpm = createGenericApproxEncoder();
61+
for (char c = Character.MIN_VALUE; c < Character.MAX_VALUE; c++) {
62+
bmpm.encode("" + c);
63+
}
64+
}
65+
4666
@Test
4767
public void testAsciiEncodeNotEmpty1Letter() throws EncoderException {
48-
BeiderMorseEncoder bmpm = new BeiderMorseEncoder();
49-
bmpm.setNameType(NameType.GENERIC);
50-
bmpm.setRuleType(RuleType.APPROX);
68+
BeiderMorseEncoder bmpm = createGenericApproxEncoder();
5169
for (char c = 'a'; c <= 'z'; c++) {
5270
final String value = "" + c;
5371
final String valueU = value.toUpperCase();
@@ -58,9 +76,7 @@ public void testAsciiEncodeNotEmpty1Letter() throws EncoderException {
5876

5977
@Test
6078
public void testAsciiEncodeNotEmpty2Letters() throws EncoderException {
61-
BeiderMorseEncoder bmpm = new BeiderMorseEncoder();
62-
bmpm.setNameType(NameType.GENERIC);
63-
bmpm.setRuleType(RuleType.APPROX);
79+
BeiderMorseEncoder bmpm = createGenericApproxEncoder();
6480
for (char c1 = 'a'; c1 <= 'z'; c1++) {
6581
for (char c2 = 'a'; c2 <= 'z'; c2++) {
6682
final String value = new String(new char[] { c1, c2 });
@@ -73,9 +89,7 @@ public void testAsciiEncodeNotEmpty2Letters() throws EncoderException {
7389

7490
@Test
7591
public void testEncodeAtzNotEmpty() throws EncoderException {
76-
BeiderMorseEncoder bmpm = new BeiderMorseEncoder();
77-
bmpm.setNameType(NameType.GENERIC);
78-
bmpm.setRuleType(RuleType.APPROX);
92+
BeiderMorseEncoder bmpm = createGenericApproxEncoder();
7993
String[] names = { "ácz", "átz", "Ignácz", "Ignátz", "Ignác" };
8094
for (String name : names) {
8195
assertNotEmpty(bmpm, name);
@@ -90,9 +104,7 @@ public void testEncodeAtzNotEmpty() throws EncoderException {
90104
*/
91105
@Test
92106
public void testEncodeGna() throws EncoderException {
93-
BeiderMorseEncoder bmpm = new BeiderMorseEncoder();
94-
bmpm.setNameType(NameType.GENERIC);
95-
bmpm.setRuleType(RuleType.APPROX);
107+
BeiderMorseEncoder bmpm = createGenericApproxEncoder();
96108
bmpm.encode("gna");
97109
}
98110

@@ -113,9 +125,7 @@ public void testInvalidLanguageIllegalArgumentException() {
113125

114126
@Test(timeout = 10000L)
115127
public void testLongestEnglishSurname() throws EncoderException {
116-
BeiderMorseEncoder bmpm = new BeiderMorseEncoder();
117-
bmpm.setNameType(NameType.GENERIC);
118-
bmpm.setRuleType(RuleType.APPROX);
128+
BeiderMorseEncoder bmpm = createGenericApproxEncoder();
119129
bmpm.encode("MacGhilleseatheanaich");
120130
}
121131

@@ -155,9 +165,7 @@ public void testSetRuleTypeToRulesIllegalArgumentException() {
155165
@Test(timeout = 20000L)
156166
public void testSpeedCheck() throws EncoderException {
157167
char[] chars = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'o', 'u' };
158-
BeiderMorseEncoder bmpm = new BeiderMorseEncoder();
159-
bmpm.setNameType(NameType.GENERIC);
160-
bmpm.setRuleType(RuleType.APPROX);
168+
BeiderMorseEncoder bmpm = createGenericApproxEncoder();
161169
StringBuffer stringBuffer = new StringBuffer();
162170
Random rand = new Random();
163171
stringBuffer.append(chars[rand.nextInt(chars.length)]);

0 commit comments

Comments
 (0)