offline building of site deploy to improve performance.
[utils] / wicket / joe / src / test / java / org / wamblee / wicket / model / DetachableEntityTest.java
index e4cf731711bc897dea589c919ae96a2ca9550ce5..218d0d6ac237a88ff7020cb639cb9f156c6e13e1 100644 (file)
@@ -20,48 +20,56 @@ import org.junit.Test;
 import org.wamblee.persistence.Detachable;
 
 import static org.mockito.Mockito.*;
-import static junit.framework.TestCase.*; 
+import static junit.framework.TestCase.*;
 
 public class DetachableEntityTest {
-    
-    public static class X { 
-        
+
+    public static class X {
+
     }
-    
+
+    private X initialValue;
     private Detachable<X> detachable;
-    private DetachableEntity<X> entity; 
-    
+    private DetachableEntity<X> entity;
+
     @Before
-    public void setUp() { 
+    public void setUp() {
+        initialValue = mock(X.class);
         detachable = mock(Detachable.class);
+        when(detachable.get()).thenReturn(initialValue);
         entity = new DetachableEntity<X>(detachable);
     }
 
     @Test
     public void testGetObject() {
-        X x = new X(); 
+        X x = new X();
+        reset(detachable);
         when(detachable.get()).thenReturn(x);
         X value = entity.getObject();
-        assertSame(x, value);
-        verify(detachable).get();
+        // we did not detach it yet so the old value should be returned.
+        assertSame(initialValue, value);
+        verifyNoMoreInteractions(detachable);
     }
 
     @Test
     public void testOnDetachReattach() {
-        X x = new X(); 
+        X x = new X();
         when(detachable.get()).thenReturn(x);
-        
-        entity.onDetach();
+
+        entity.detach();
         verify(detachable).detach();
-        
+
+        reset(detachable);
+        when(detachable.get()).thenReturn(x);
+
         X y = entity.getObject();
-        assertSame(x, y); 
+        assertSame(x, y);
         verify(detachable).get();
     }
 
     @Test(expected = UnsupportedOperationException.class)
     public void testSetObject() {
-        X x = new X(); 
+        X x = new X();
         entity.setObject(x);
     }
 }