package org.openstack.atlas.atom.util;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import org.openstack.atlas.atomhopper.util.UUIDUtil;
import java.security.NoSuchAlgorithmException;
import java.util.Calendar;
import java.util.UUID;
@RunWith(Enclosed.class)
public class UUIDUtilTest {
public static class WhenGeneratingHashes {
String baseUUID;
Calendar timestamp;
@Before
public void standUp() {
//UUID=(Region, resourceID, tenantID, timestamp)
timestamp = Calendar.getInstance();
baseUUID = "DFW_123_23456_" + timestamp;
}
@Test
public void shouldGenerateMD5Hash() throws NoSuchAlgorithmException {
UUID uuid = UUIDUtil.genUUIDMD5Hash(baseUUID);
Assert.assertNotNull(uuid);
}
@Test
public void shouldGenerateSHA256Hash() throws NoSuchAlgorithmException {
UUID uuid = UUIDUtil.genUUIDSHA256(baseUUID);
Assert.assertNotNull(uuid);
}
@Test
public void shouldNotCreateSameSHA256HashForDifferentString() throws NoSuchAlgorithmException {
UUID uuid = UUIDUtil.genUUIDSHA256(baseUUID);
UUID uuid2 = UUIDUtil.genUUIDSHA256("ORD_123_23456_" + timestamp);
Assert.assertNotSame(uuid, uuid2);
}
@Test
public void shouldNotCreateSameMD5HashForDifferentString() throws NoSuchAlgorithmException {
UUID uuid = UUIDUtil.genUUIDMD5Hash(baseUUID);
UUID uuid2 = UUIDUtil.genUUIDMD5Hash("ORD_123_23456_" + timestamp);
Assert.assertNotSame(uuid, uuid2);
}
@Test
public void shouldCreateSameSHA256HashForDifferentString() throws NoSuchAlgorithmException {
UUID uuid = UUIDUtil.genUUIDSHA256(baseUUID);
UUID uuid2 = UUIDUtil.genUUIDSHA256(baseUUID);
Assert.assertEquals(uuid, uuid2);
}
@Test
public void shouldCreateSameMD5HashForDifferentString() throws NoSuchAlgorithmException {
UUID uuid = UUIDUtil.genUUIDMD5Hash(baseUUID);
UUID uuid2 = UUIDUtil.genUUIDMD5Hash(baseUUID);
Assert.assertEquals(uuid, uuid2);
}
}
}