You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2016/05/18 11:26:18 UTC

svn commit: r1744391 - /commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/digest/MessageDigestAlgorithmsTest.java

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;