samples/messagedigest/src-test/test/NewAPIToOldAPITest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 30 Oct 2014 21:30:10 +0100
changeset 409 40cabcdcd2be
parent 44 716af5f2ebd1
permissions -rw-r--r--
Updating to NBMs from NetBeans 8.0.1 as some of them are required to run on JDK8
     1 package test;
     2 
     3 import java.nio.ByteBuffer;
     4 import java.security.MessageDigest;
     5 import java.util.Arrays;
     6 import java.util.Random;
     7 import org.apidesign.api.security.Digest;
     8 import org.junit.After;
     9 import org.junit.BeforeClass;
    10 import org.junit.Test;
    11 import static org.junit.Assert.*;
    12 
    13 /** Compares that the MessageDigest and Digest yield the same results for
    14  * default provider.
    15  *
    16  * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
    17  */
    18 public class NewAPIToOldAPITest {
    19     private static byte[] arr;
    20     private static long time;
    21     private static byte[] resOld;
    22     private static byte[] resNew;
    23 
    24     public NewAPIToOldAPITest() {
    25     }
    26 
    27     @BeforeClass
    28     public static void setUp() {
    29         time = System.currentTimeMillis();
    30         Random r = new Random(time);
    31         arr = new byte[r.nextInt(1024)];
    32         r.nextBytes(arr);
    33     }
    34 
    35     @After
    36     public void tearDown() {
    37     }
    38 
    39     @Test
    40     public void generateHashUsingMessageDigest() throws Exception {
    41         MessageDigest md = MessageDigest.getInstance("MD5");
    42         byte[] res = md.digest(arr);
    43         resOld = res;
    44     }
    45 
    46     @Test
    47     public void generateHashUsingNewDigest() throws Exception {
    48         if (Boolean.getBoolean("no.failures") && Boolean.getBoolean("no.md5")) return;
    49         Digest d = Digest.getInstance("MD5");
    50         ByteBuffer bb = ByteBuffer.wrap(arr);
    51         byte[] res = d.digest(bb);
    52         resNew = res;
    53     }
    54     
    55     @Test
    56     public void compareTheHashes() throws Exception {
    57         if (Boolean.getBoolean("no.failures") && Boolean.getBoolean("no.md5")) return;
    58         if (!Arrays.equals(resOld, resNew)) {
    59             fail("Arrays are different:\n" + Arrays.toString(resOld) + "\n" + Arrays.toString(resNew));
    60         }
    61     }
    62 }