package com.google.code.ssm.aop.support;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.security.InvalidParameterException;
import org.apache.commons.lang.RandomStringUtils;
import org.junit.BeforeClass;
import org.junit.Test;
import com.google.code.ssm.aop.support.AnnotationData;
import com.google.code.ssm.aop.support.CacheKeyBuilderImpl;
public class CacheKeyBuilderImplTest {
private static CacheKeyBuilderImpl cacheKeyBuilder;
@BeforeClass
public static void beforeClass() {
cacheKeyBuilder = new CacheKeyBuilderImpl();
}
@Test
public void getAssignCacheKey() {
AnnotationData data = new AnnotationData();
try {
data.setAssignedKey(null);
data.setNamespace(null);
cacheKeyBuilder.getAssignCacheKey(data);
fail("Expected exception.");
} catch (InvalidParameterException ex) {
assertTrue(ex.getMessage().indexOf("at least 1 character") != -1);
System.out.println(ex.getMessage());
}
try {
data.setAssignedKey("");
cacheKeyBuilder.getAssignCacheKey(data);
fail("Expected exception.");
} catch (InvalidParameterException ex) {
assertTrue(ex.getMessage().indexOf("at least 1 character") != -1);
System.out.println(ex.getMessage());
}
final String objectId = RandomStringUtils.randomAlphanumeric(20);
final String namespace = RandomStringUtils.randomAlphanumeric(12);
data.setAssignedKey(objectId);
data.setNamespace(namespace);
final String result = cacheKeyBuilder.getAssignCacheKey(data);
assertTrue(result.indexOf(objectId) != -1);
assertTrue(result.indexOf(namespace) != -1);
}
}