private static void assertRevisions( final DataSetModel model, long r0, long r1, Runnable runnable) { PropertyChangeListener listener = EasyMock.createStrictMock(PropertyChangeListener.class); for (long r = r0; r < r1; ++r) { listener.propertyChange( JUnitUtil.eqPropertyChangeEvent( new PropertyChangeEvent(model, DataSetModel.PROPERTY_REVISION, r, r + 1))); } EasyMock.replay(listener); model.addPropertyChangeListener(listener); runnable.run(); EasyMock.verify(listener); model.removePropertyChangeListener(listener); }
@Test public void testRevision() { final DataSetModel model = new DataSetModel(); assertRevisions( model, 0L, 1L, new Runnable() { public void run() { model.getNetwork().setType(DataType.CONTINUOUS); } }); assertRevisions( model, 1L, 2L, new Runnable() { public void run() { model.getNetwork().setDescription("Ace of Spades"); } }); final Treatment t1 = new Treatment(); final Treatment t2 = new Treatment("X2", "Ble"); assertRevisions( model, 2L, 5L, new Runnable() { public void run() { model.getTreatments().add(t1); t1.setId("X1"); t1.setDescription("Bla"); } }); model.getTreatments().add(t2); final Study s = new Study(); assertRevisions( model, 6L, 10L, new Runnable() { public void run() { model.getStudies().add(s); s.setId("AAA"); s.getMeasurements().add(new Measurement(t1)); s.getMeasurements().add(new Measurement(t2)); } }); assertRevisions( model, 10L, 12L, new Runnable() { public void run() { model.getMeasurementTableModel().setValueAt(1.5, 1, 1); // mean model.getMeasurementTableModel().setValueAt(105, 1, 3); // sample size } }); }