import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
+import java.io.Serializable;
+
import javax.naming.InitialContext;
import org.junit.After;
assertEquals(NAA_NA_NA_NAA_NA, e.getMessage());
}
}
+
+ private static final class MyLookup implements Lookup {
+
+ @Override
+ public Object lookup() throws Exception {
+ return new MyInterface() {
+
+ @Override
+ public int execute() {
+ return 10;
+ }
+ };
+ }
+ }
+
+ @Test
+ public void testProxyMustBerializable() throws Exception {
+ lookup = new MyLookup();
+ LookupProxyFactory<MyInterface> factory = new LookupProxyFactory<MyInterface>(
+ MyInterface.class, lookup);
+ proxy = factory.getProxy();
+
+ assertEquals(10, proxy.execute());
+
+ assertTrue(proxy instanceof Serializable);
+
+ proxy = ObjectSerializationUtils.deserialize(ObjectSerializationUtils.serialize(proxy),
+ MyInterface.class);
+
+ // and it should still work
+ assertEquals(10, proxy.execute());
+ }
+
}