package com.bumptech.glide.tests; import static com.google.common.truth.Truth.assertThat; import com.bumptech.glide.load.Key; import com.google.common.testing.EqualsTester; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class KeyAssertions { public static void assertSame(Key first, Key second) throws NoSuchAlgorithmException { assertSameOrdered(first, second); assertSameOrdered(second, first); } private static void assertSameOrdered(Key first, Key second) throws NoSuchAlgorithmException { new EqualsTester() .addEqualityGroup(first, second) .testEquals(); assertThat(getDigest(first)).isEqualTo(getDigest(second)); } public static void assertDifferent(Key first, Key second) throws NoSuchAlgorithmException { assertDifferent(first, second, true); assertDifferent(second, first, true); } public static void assertDifferent(Key first, Key second, boolean checkDiskCacheKey) throws NoSuchAlgorithmException { new EqualsTester() .addEqualityGroup(first) .addEqualityGroup(second) .testEquals(); if (checkDiskCacheKey) { MessageDigest firstDigest = MessageDigest.getInstance("SHA-1"); first.updateDiskCacheKey(firstDigest); MessageDigest secondDigest = MessageDigest.getInstance("SHA-1"); second.updateDiskCacheKey(secondDigest); assertThat(getDigest(first)).isNotEqualTo(getDigest(second)); } } private static byte[] getDigest(Key key) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("SHA-1"); key.updateDiskCacheKey(md); return md.digest(); } }