@Test public void testSetLatestModificationTime() { holder.addPropertyChangeListener(listener); holder.setLatestModificationTime(TIMESTAMP1); holder.setLatestModificationTime(TIMESTAMP2); final InOrder inOrder = inOrder(listener); inOrder.verify(listener).propertyChange(refEq(new MyPropertyChangeEvent(holder, "latestModificationTime", null, TIMESTAMP1))); inOrder.verify(listener).propertyChange(refEq(new MyPropertyChangeEvent(holder, "latestModificationTime", TIMESTAMP1, TIMESTAMP2))); verifyNoMoreInteractions(listener); }
@Test public void testAddPropertyChangeListener() { final PropertyChangeSupport pcs = spy(holder.pcs); holder.addPropertyChangeListener(listener); assertEquals(new PropertyChangeListener[] { listener }, holder.pcs.getPropertyChangeListeners()); assertEquals(new PropertyChangeListener[] { listener }, holder.getPropertyChangeListeners()); // verify(pcs).addPropertyChangeListener(listener); // verifyNoMoreInteractions(pcs); }
@Test public void testBeanIsAvailableChange() { stub(bean.isAvailable()).toReturn(false); holder.addPropertyChangeListener(listener); final TimestampProviderMock timestampProvider = (TimestampProviderMock)TimestampProvider.Locator.findTimestampProvider(); // Test a bean property change that makes bean.isAvailable() to transition from false to true timestampProvider.setTimestamp(TIMESTAMP1); assertFalse(bean.isAvailable()); stub(bean.isAvailable()).toReturn(true); holder.propertyChangeListener.propertyChange(new MyPropertyChangeEvent(bean, "stringProperty", null, "newValue")); // Test a bean property change that makes bean.isAvailable() to transition from true to false timestampProvider.setTimestamp(TIMESTAMP2); assertTrue(bean.isAvailable()); stub(bean.isAvailable()).toReturn(false); holder.propertyChangeListener.propertyChange(new MyPropertyChangeEvent(bean, "stringProperty", "newValue", null)); // Test a bean property change that makes bean.isAvailable() to stay false timestampProvider.setTimestamp(TIMESTAMP3); assertFalse(bean.isAvailable()); holder.propertyChangeListener.propertyChange(new MyPropertyChangeEvent(bean, "stringProperty", null, null)); final InOrder inOrder = inOrder(listener); inOrder.verify(listener).propertyChange(refEq(new MyPropertyChangeEvent(holder, "latestModificationTime", null, TIMESTAMP1))); inOrder.verify(listener).propertyChange(refEq(new MyPropertyChangeEvent(holder, "available", false, true))); inOrder.verify(listener).propertyChange(refEq(new MyPropertyChangeEvent(holder, "latestModificationTime", TIMESTAMP1, TIMESTAMP2))); inOrder.verify(listener).propertyChange(refEq(new MyPropertyChangeEvent(holder, "available", true, false))); inOrder.verify(listener).propertyChange(refEq(new MyPropertyChangeEvent(holder, "latestModificationTime", TIMESTAMP2, TIMESTAMP3))); verifyNoMoreInteractions(listener); } }
@Test public void testRemovePropertyChangeListener() { final PropertyChangeSupport pcs = spy(holder.pcs); holder.addPropertyChangeListener(listener); assertEquals(new PropertyChangeListener[] { listener }, holder.pcs.getPropertyChangeListeners()); assertEquals(new PropertyChangeListener[] { listener }, holder.getPropertyChangeListeners()); holder.removePropertyChangeListener(listener); assertEquals(new PropertyChangeListener[0], holder.pcs.getPropertyChangeListeners()); assertEquals(new PropertyChangeListener[0], holder.getPropertyChangeListeners()); // verify(pcs).removePropertyChangeListener(listener); // verifyNoMoreInteractions(pcs); }