/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package de.cismet.commons.gui.equalizer; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.lang.reflect.Field; import java.util.Set; import static org.testng.Assert.*; /** * DOCUMENT ME! * * @author mscholl * @version $Revision$, $Date$ */ public class AbstractEqualizerModelNGTest { //~ Instance fields -------------------------------------------------------- private EqualizerModelListenerImpl eqL1; private EqualizerModelListenerImpl eqL2; private EqualizerModelListenerImpl eqL3; //~ Methods ---------------------------------------------------------------- /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @BeforeMethod public void setUpMethod() throws Exception { eqL1 = new EqualizerModelListenerImpl(); eqL2 = new EqualizerModelListenerImpl(); eqL3 = new EqualizerModelListenerImpl(); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @AfterMethod public void tearDonwMethod() throws Exception { eqL1 = null; eqL2 = null; eqL3 = null; } /** * Test of fireEqualizerModelEvent method, of class AbstractEqualizerModel. */ @Test public void testFireEqualizerModelEvent() { final AbstractEqualizerModelImpl model = new AbstractEqualizerModelImpl(); final EqualizerModelEvent event = new EqualizerModelEvent(model); model.addEqualizerModelListener(eqL1); model.fireEqualizerModelEvent(event); assertEquals(eqL1.event, event); eqL1.event = null; model.addEqualizerModelListener(eqL2); model.addEqualizerModelListener(eqL3); model.fireEqualizerModelEvent(event); assertEquals(eqL1.event, event); assertEquals(eqL2.event, event); assertEquals(eqL3.event, event); } /** * DOCUMENT ME! */ @Test(expectedExceptions = { IllegalArgumentException.class }) public void testFireEqualizerModelEvent_nullEvent() { final AbstractEqualizerModelImpl model = new AbstractEqualizerModelImpl(); model.fireEqualizerModelEvent(null); } /** * Test of addEqualizerModelListener method, of class AbstractEqualizerModel. * * @throws Exception DOCUMENT ME! */ @Test public void testAddEqualizerModelListener() throws Exception { final AbstractEqualizerModelImpl model = new AbstractEqualizerModelImpl(); assertEquals(model.getListenerCount(), 0); model.addEqualizerModelListener(eqL1); assertEquals(model.getListenerCount(), 1); model.addEqualizerModelListener(eqL2); model.addEqualizerModelListener(eqL3); assertEquals(model.getListenerCount(), 3); model.addEqualizerModelListener(eqL1); assertEquals(model.getListenerCount(), 3); model.addEqualizerModelListener(eqL2); model.addEqualizerModelListener(eqL3); assertEquals(model.getListenerCount(), 3); model.addEqualizerModelListener(eqL1); assertEquals(model.getListenerCount(), 3); model.addEqualizerModelListener(eqL2); model.addEqualizerModelListener(eqL3); assertEquals(model.getListenerCount(), 3); model.addEqualizerModelListener(null); assertEquals(model.getListenerCount(), 3); } /** * Test of removeEqualizerModelListener method, of class AbstractEqualizerModel. * * @throws Exception DOCUMENT ME! */ @Test(dependsOnMethods = { "testAddEqualizerModelListener" }) public void testRemoveEqualizerModelListener() throws Exception { final AbstractEqualizerModelImpl model = new AbstractEqualizerModelImpl(); model.addEqualizerModelListener(eqL1); model.addEqualizerModelListener(eqL2); model.addEqualizerModelListener(eqL3); model.removeEqualizerModelListener(null); assertEquals(model.getListenerCount(), 3); model.removeEqualizerModelListener(eqL1); assertEquals(model.getListenerCount(), 2); model.removeEqualizerModelListener(eqL1); assertEquals(model.getListenerCount(), 2); model.removeEqualizerModelListener(eqL2); model.removeEqualizerModelListener(eqL3); assertEquals(model.getListenerCount(), 0); model.removeEqualizerModelListener(eqL1); model.removeEqualizerModelListener(eqL2); model.removeEqualizerModelListener(eqL3); assertEquals(model.getListenerCount(), 0); } //~ Inner Classes ---------------------------------------------------------- /** * DOCUMENT ME! * * @version $Revision$, $Date$ */ private static final class EqualizerModelListenerImpl implements EqualizerModelListener { //~ Instance fields ---------------------------------------------------- EqualizerModelEvent event = null; //~ Methods ------------------------------------------------------------ @Override public void equalizerChanged(final EqualizerModelEvent event) { this.event = event; } } /** * DOCUMENT ME! * * @version $Revision$, $Date$ */ private static final class AbstractEqualizerModelImpl extends AbstractEqualizerModel { //~ Methods ------------------------------------------------------------ /** * DOCUMENT ME! * * @return DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ int getListenerCount() throws Exception { final Field field = AbstractEqualizerModel.class.getDeclaredField("listeners"); field.setAccessible(true); return ((Set)field.get(this)).size(); } @Override public Range getRange() { throw new UnsupportedOperationException("Not supported yet."); // To change body of generated methods, // choose Tools | Templates. } @Override public String getEqualizerCategory(final int index) { throw new UnsupportedOperationException("Not supported yet."); // To change body of generated methods, // choose Tools | Templates. } @Override public int getEqualizerCategoryCount() { throw new UnsupportedOperationException("Not supported yet."); // To change body of generated methods, // choose Tools | Templates. } @Override public int getValueAt(final int index) { throw new UnsupportedOperationException("Not supported yet."); // To change body of generated methods, // choose Tools | Templates. } @Override public void setValueAt(final int index, final int value) { throw new UnsupportedOperationException("Not supported yet."); // To change body of generated methods, // choose Tools | Templates. } } }