MessageDigestHashFunctionTest.java revision 1d580d0f6ee4f21eb309ba7b509d2c6d671c4044
1// Copyright 2011 Google Inc. All Rights Reserved.
2
3package com.google.common.hash;
4
5import java.security.MessageDigest;
6import java.security.NoSuchAlgorithmException;
7
8import junit.framework.TestCase;
9
10/**
11 * Tests for the MessageDigestHashFunction.
12 *
13 * @author kak@google.com (Kurt Alfred Kluever)
14 */
15public class MessageDigestHashFunctionTest extends TestCase {
16  public void testMd5Hashing() throws Exception {
17    assertMessageDigestHashing(HashTestUtils.ascii(""), "MD5");
18    assertMessageDigestHashing(HashTestUtils.ascii("Z"), "MD5");
19    assertMessageDigestHashing(HashTestUtils.ascii("foobar"), "MD5");
20  }
21
22  public void testSha1Hashing() throws Exception {
23    assertMessageDigestHashing(HashTestUtils.ascii(""), "SHA1");
24    assertMessageDigestHashing(HashTestUtils.ascii("Z"), "SHA1");
25    assertMessageDigestHashing(HashTestUtils.ascii("foobar"), "SHA1");
26  }
27
28  private static void assertMessageDigestHashing(byte[] input, String algorithmName)
29      throws NoSuchAlgorithmException {
30    HashTestUtils.assertEqualHashes(
31        MessageDigest.getInstance(algorithmName).digest(input),
32        new MessageDigestHashFunction(algorithmName).hashBytes(input).asBytes());
33  }
34}
35