diff --git a/src/test/java/com/avaje/ebean/TestPropertyChangeListener.java b/src/test/java/com/avaje/ebean/TestPropertyChangeListener.java new file mode 100644 index 000000000..7ec35207f --- /dev/null +++ b/src/test/java/com/avaje/ebean/TestPropertyChangeListener.java @@ -0,0 +1,50 @@ +package com.avaje.ebean; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.util.ArrayList; +import java.util.List; + +import org.junit.Assert; +import org.junit.Test; + +import com.avaje.tests.model.basic.Customer; +import com.avaje.tests.model.basic.ResetBasicData; + +public class TestPropertyChangeListener extends BaseTestCase { + + @Test + public void test() { + + ResetBasicData.reset(); + + List list = Ebean.find(Customer.class).findList(); + + Listener listener = new Listener(); + + Customer customer = list.get(0); + Ebean.getBeanState(customer).addPropertyChangeListener(listener); + + customer.setName("modName"); + customer.setSmallnote("modSmallNote"); + + Assert.assertEquals(2, listener.events.size()); + Assert.assertEquals("modName", listener.events.get(0).getNewValue()); + Assert.assertEquals("name", listener.events.get(0).getPropertyName()); + Assert.assertEquals("modSmallNote", listener.events.get(1).getNewValue()); + Assert.assertEquals("smallnote", listener.events.get(1).getPropertyName()); + + } + + class Listener implements PropertyChangeListener { + + List events = new ArrayList(); + + @Override + public void propertyChange(PropertyChangeEvent evt) { + events.add(evt); + } + + } + +}