(no commit message)
[utils] / support / general / src / test / java / org / wamblee / general / ThreadSpecificProxyFactoryTest.java
index 310e47a75626aaf14bcd031aefb7c16ef8466bd5..0cffd5a0d38e6a2e4668b45c188dc4b7210b0625 100644 (file)
@@ -23,6 +23,7 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.wamblee.general.ThreadSpecificProxyFactory;
+import org.wamblee.general.ThreadSpecificProxyFactory.CreationCallback;
 
 public class ThreadSpecificProxyFactoryTest {
 
@@ -58,6 +59,21 @@ public class ThreadSpecificProxyFactoryTest {
         verify(svc).execute(10);
     }
 
+    @Test
+    public void testCreationCallback() throws Exception {
+        CreationCallback callback = mock(CreationCallback.class);
+        Service initialService = mock(Service.class);
+        when(callback.create()).thenReturn(initialService);
+
+        factory = new ThreadSpecificProxyFactory<Service>(Service.class,
+            callback);
+        proxy = factory.getProxy();
+        Service svc = factory.get();
+
+        assertSame(initialService, svc);
+        verify(callback).create();
+    }
+
     @Test
     public void testInvokeThroughProxyWithException() throws Exception {
         Service svc = mock(Service.class);
@@ -102,6 +118,12 @@ public class ThreadSpecificProxyFactoryTest {
 
     @Test(expected = IllegalArgumentException.class)
     public void testNotAnInterface() {
-        ThreadSpecificProxyFactory f = new ThreadSpecificProxyFactory(String.class);
+        ThreadSpecificProxyFactory f = new ThreadSpecificProxyFactory(
+            String.class);
+    }
+
+    @Test
+    public void testProxyToStringWhileUninitialized() {
+        String val = proxy.toString();
     }
 }