package org.yajul.util;
import junit.framework.TestCase;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Low level ObjectProvider tests.
* <br>
* User: josh
* Date: 6/28/11
* Time: 12:00 PM
*/
public class ObjectProviderTest extends TestCase {
public void testInstanceProvider() {
ObjectProvider<String> p = new InstanceProvider<String>("this is it");
assertEquals("this is it",p.getObject());
}
public void testCachedObjectProvider() {
final AtomicInteger counter = new AtomicInteger();
ObjectProvider<String> d = new ObjectProvider<String>() {
public String getObject() {
counter.incrementAndGet();
return "hey";
}
};
assertEquals(0,counter.get());
ObjectProvider<String> p = new CachedObjectProvider<String>(d);
final String a = p.getObject();
assertEquals("hey", a);
assertEquals(1,counter.get());
final String b = p.getObject();
assertSame(a,b);
assertEquals(1,counter.get());
}
}