Skip to content

Commit 4a6c364

Browse files
committed
Add test for values() array
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/codec/trunk@1744391 13f79535-47bb-0310-9956-ffa450edef68
1 parent ee7ee35 commit 4a6c364

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

src/test/java/org/apache/commons/codec/digest/MessageDigestAlgorithmsTest.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,17 @@
1919
import java.io.ByteArrayInputStream;
2020
import java.io.File;
2121
import java.io.IOException;
22+
import java.lang.reflect.Field;
23+
import java.lang.reflect.Modifier;
2224
import java.nio.ByteBuffer;
2325
import java.security.MessageDigest;
2426
import java.security.NoSuchAlgorithmException;
27+
2528
import org.junit.After;
2629
import org.junit.Assert;
2730
import org.junit.Assume;
2831
import org.junit.Before;
32+
import org.junit.BeforeClass;
2933
import org.junit.Test;
3034
import org.junit.runner.RunWith;
3135
import org.junit.runners.Parameterized;
@@ -44,6 +48,39 @@ public static Object[] data() {
4448
return MessageDigestAlgorithms.values();
4549
}
4650

51+
private static boolean contains(String key) {
52+
for(String s : MessageDigestAlgorithms.values()) {
53+
if (s.equals(key)) {
54+
return true;
55+
}
56+
}
57+
return false;
58+
}
59+
60+
@BeforeClass
61+
public static void checkValues() throws Exception {
62+
Field [] fields = MessageDigestAlgorithms.class.getDeclaredFields();
63+
boolean ok = true;
64+
int psf = 0;
65+
for(Field f : fields) {
66+
// Only interested in public fields
67+
final int modifiers = f.getModifiers();
68+
if (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers) && Modifier.isFinal(modifiers)) {
69+
psf++;
70+
if (!contains((String) f.get(null))) {
71+
System.out.println("Not found in MessageDigestAlgorithms.values(): "+f.getName());
72+
ok = false;
73+
}
74+
}
75+
}
76+
if (!ok) {
77+
Assert.fail("One or more entries are missing from the MessageDigestAlgorithms.values() array");
78+
}
79+
if (psf != MessageDigestAlgorithms.values().length) {
80+
Assert.fail("One or more unexpected entries found in the MessageDigestAlgorithms.values() array");
81+
}
82+
}
83+
4784
private DigestUtilsTest digestUtilsTest;
4885

4986
private final String messageDigestAlgorithm;

0 commit comments

Comments
 (0)