public void testListenerMismatch() { TestModel testModel = new TestModel(7); Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); // build a PROPERTY change listener and hack it so we // can add it as a STATE change listener Object listener = ReflectiveChangeListener.buildPropertyChangeListener( target, "propertyChangedSingleArgument"); testModel.addStateChangeListener((StateChangeListener) listener); boolean exCaught = false; try { testModel.setValue(99); fail("listener mismatch: " + listener); } catch (IllegalArgumentException ex) { exCaught = true; } assertTrue(exCaught); }