Author: sebb Date: Wed May 18 11:26:18 2016 New Revision: 1744391 URL: http://svn.apache.org/viewvc?rev=1744391&view=rev Log: Add test for values() array
Modified: commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/MessageDigestAlgorithmsTest.java Modified: commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/MessageDigestAlgorithmsTest.java URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/MessageDigestAlgorithmsTest.java?rev=1744391&r1=1744390&r2=1744391&view=diff ============================================================================== --- commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/MessageDigestAlgorithmsTest.java (original) +++ commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/MessageDigestAlgorithmsTest.java Wed May 18 11:26:18 2016 @@ -19,13 +19,17 @@ package org.apache.commons.codec.digest; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; import java.nio.ByteBuffer; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; + import org.junit.After; import org.junit.Assert; import org.junit.Assume; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -44,6 +48,39 @@ public class MessageDigestAlgorithmsTest return MessageDigestAlgorithms.values(); } + private static boolean contains(String key) { + for(String s : MessageDigestAlgorithms.values()) { + if (s.equals(key)) { + return true; + } + } + return false; + } + + @BeforeClass + public static void checkValues() throws Exception { + Field [] fields = MessageDigestAlgorithms.class.getDeclaredFields(); + boolean ok = true; + int psf = 0; + for(Field f : fields) { + // Only interested in public fields + final int modifiers = f.getModifiers(); + if (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers) && Modifier.isFinal(modifiers)) { + psf++; + if (!contains((String) f.get(null))) { + System.out.println("Not found in MessageDigestAlgorithms.values(): "+f.getName()); + ok = false; + } + } + } + if (!ok) { + Assert.fail("One or more entries are missing from the MessageDigestAlgorithms.values() array"); + } + if (psf != MessageDigestAlgorithms.values().length) { + Assert.fail("One or more unexpected entries found in the MessageDigestAlgorithms.values() array"); + } + } + private DigestUtilsTest digestUtilsTest; private final String messageDigestAlgorithm;