Package javax.swing

Source Code of javax.swing.DefaultButtonModelTest$ConcreteChangeListener

/*
*  Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  See the NOTICE file distributed with
*  this work for additional information regarding copyright ownership.
*  The ASF licenses this file to You under the Apache License, Version 2.0
*  (the "License"); you may not use this file except in compliance with
*  the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
/**
* @author Alexander T. Simbirtsev
* Created on 31.01.2005

*/
package javax.swing;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.EventListener;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class DefaultButtonModelTest extends SwingTestCase {
    protected int find(final Object[] array, final Object value) {
        int found = 0;
        if (array != null) {
            for (int i = 0; i < array.length; i++) {
                if (array[i].equals(value)) {
                    found++;
                }
            }
        }
        return found;
    }

    class ConcreteActionListener implements ActionListener {
        public ActionEvent eventHappened = null;

        public void actionPerformed(final ActionEvent event) {
            eventHappened = event;
        }
    };

    class ConcreteItemListener implements ItemListener {
        public ItemEvent eventHappened = null;

        public void itemStateChanged(final ItemEvent event) {
            eventHappened = event;
        }
    };

    class ConcreteChangeListener implements ChangeListener {
        public ChangeEvent eventHappened = null;

        public void stateChanged(final ChangeEvent event) {
            eventHappened = event;
        }
    };

    protected DefaultButtonModel buttonModel;

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        buttonModel = new DefaultButtonModel();
    }

    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
        buttonModel = null;
    }

    public void testDefaultButtonModel() {
        assertEquals("default mnemonic ", 0, buttonModel.getMnemonic());
        assertNull("default action command ", buttonModel.getActionCommand());
        assertEquals("default actionListeners array ", 0,
                buttonModel.getActionListeners().length);
        assertEquals("default changeListeners array ", 0,
                buttonModel.getChangeListeners().length);
        assertEquals("default itemListeners array ", 0, buttonModel.getItemListeners().length);
        assertNull("default group ", buttonModel.getGroup());
        assertNull("default selected objects array ", buttonModel.getSelectedObjects());
        assertFalse("default armed state ", buttonModel.isArmed());
        assertTrue("default enabled state ", buttonModel.isEnabled());
        assertFalse("default pressed state ", buttonModel.isPressed());
        assertFalse("default rollover state ", buttonModel.isRollover());
        assertFalse("default selected state ", buttonModel.isSelected());
    }

    public void testGetListeners() {
        ChangeListener listener1 = new ConcreteChangeListener();
        ChangeListener listener2 = new ConcreteChangeListener();
        ChangeListener listener3 = new ConcreteChangeListener();
        ItemListener listener4 = new ConcreteItemListener();
        ItemListener listener5 = new ConcreteItemListener();
        ItemListener listener6 = new ConcreteItemListener();
        ActionListener listener7 = new ConcreteActionListener();
        ActionListener listener8 = new ConcreteActionListener();
        ActionListener listener9 = new ConcreteActionListener();
        EventListener[] listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 0);
        buttonModel.addChangeListener(listener1);
        buttonModel.addChangeListener(listener2);
        listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 2);
        assertTrue("listener's added successfully ", find(listeners, listener1) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener2) == 1);
        buttonModel.addChangeListener(listener3);
        buttonModel.addItemListener(listener5);
        buttonModel.addItemListener(listener4);
        listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 3);
        assertTrue("listener's added successfully ", find(listeners, listener1) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener2) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener3) == 1);
        listeners = buttonModel.getListeners(ItemListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 2);
        assertTrue("listener's added successfully ", find(listeners, listener4) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener5) == 1);
        buttonModel.addItemListener(listener6);
        buttonModel.addActionListener(listener7);
        buttonModel.addActionListener(listener8);
        buttonModel.addActionListener(listener9);
        listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 3);
        assertTrue("listener's added successfully ", find(listeners, listener1) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener2) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener3) == 1);
        listeners = buttonModel.getListeners(ItemListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 3);
        assertTrue("listener's added successfully ", find(listeners, listener4) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener5) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener6) == 1);
        listeners = buttonModel.getListeners(ActionListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 3);
        assertTrue("listener's added successfully ", find(listeners, listener7) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener8) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener9) == 1);
    }

    public void testRemoveChangeListener() {
        ChangeListener listener1 = new ConcreteChangeListener();
        ChangeListener listener2 = new ConcreteChangeListener();
        ChangeListener listener3 = new ConcreteChangeListener();
        buttonModel.addChangeListener(listener1);
        buttonModel.addChangeListener(listener2);
        buttonModel.addChangeListener(listener2);
        buttonModel.addChangeListener(listener3);
        EventListener[] listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 4);
        buttonModel.removeChangeListener(listener1);
        listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 3);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener2) == 2);
        buttonModel.removeChangeListener(listener2);
        listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 2);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener2) == 1);
        buttonModel.removeChangeListener(listener2);
        listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener2) == 0);
        buttonModel.removeChangeListener(listener2);
        listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener2) == 0);
        buttonModel.removeChangeListener(listener3);
        listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 0);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 0);
    }

    public void testAddChangeListener() {
        ChangeListener listener1 = new ConcreteChangeListener();
        ChangeListener listener2 = new ConcreteChangeListener();
        buttonModel.addChangeListener(listener1);
        EventListener[] listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 1);
        assertEquals("listener's added successfully ", listeners[0], listener1);
        buttonModel.addChangeListener(listener2);
        listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 2);
        assertTrue("listener's added successfully ", find(listeners, listener1) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener2) == 1);
        buttonModel.addChangeListener(listener2);
        listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 3);
        assertTrue("listener's added successfully ", find(listeners, listener1) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener2) == 2);
    }

    /**
     * this method is being tested mostly with testAddChangeListener()
     * and testRemoveChangeListener()
     */
    public void testGetChangeListeners() {
        EventListener[] listeners = buttonModel.getListeners(ChangeListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 0);
    }

    public void testSetGroup() {
        ButtonGroup group1 = new ButtonGroup();
        ButtonGroup group2 = new ButtonGroup();
        ButtonGroup group3 = new ButtonGroup();
        assertNull("default group ", buttonModel.getGroup());
        buttonModel.setGroup(group1);
        assertEquals("group ", group1, buttonModel.getGroup());
        buttonModel.setGroup(group2);
        assertEquals("group ", group2, buttonModel.getGroup());
        buttonModel.setGroup(group3);
        assertEquals("group ", group3, buttonModel.getGroup());
    }

    public void testGetGroup() {
        assertNull("default group ", buttonModel.getGroup());
    }

    public void testSetActionCommand() {
        String command1 = "command1";
        String command2 = "command2";
        String command3 = "command3";
        assertNull("default action command ", buttonModel.getActionCommand());
        buttonModel.setActionCommand(command1);
        assertEquals("action command ", command1, buttonModel.getActionCommand());
        buttonModel.setActionCommand(command2);
        assertEquals("action command ", command2, buttonModel.getActionCommand());
        buttonModel.setActionCommand(command3);
        assertEquals("action command ", command3, buttonModel.getActionCommand());
    }

    public void testGetActionCommand() {
        assertNull("default action command ", buttonModel.getActionCommand());
    }

    public void testGetSelectedObjects() {
        assertNull("selected objects ", buttonModel.getSelectedObjects());
    }

    public void testRemoveItemListener() {
        ItemListener listener1 = new ConcreteItemListener();
        ItemListener listener2 = new ConcreteItemListener();
        ItemListener listener3 = new ConcreteItemListener();
        buttonModel.addItemListener(listener1);
        buttonModel.addItemListener(listener2);
        buttonModel.addItemListener(listener2);
        buttonModel.addItemListener(listener3);
        EventListener[] listeners = buttonModel.getListeners(ItemListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 4);
        buttonModel.removeItemListener(listener1);
        listeners = buttonModel.getListeners(ItemListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 3);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener2) == 2);
        buttonModel.removeItemListener(listener2);
        listeners = buttonModel.getListeners(ItemListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 2);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener2) == 1);
        buttonModel.removeItemListener(listener2);
        listeners = buttonModel.getListeners(ItemListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener2) == 0);
        buttonModel.removeItemListener(listener2);
        listeners = buttonModel.getListeners(ItemListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener2) == 0);
        buttonModel.removeItemListener(listener3);
        listeners = buttonModel.getListeners(ItemListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 0);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 0);
    }

    public void testAddItemListener() {
        ItemListener listener1 = new ConcreteItemListener();
        ItemListener listener2 = new ConcreteItemListener();
        buttonModel.addItemListener(listener1);
        EventListener[] listeners = buttonModel.getListeners(ItemListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 1);
        assertEquals("listener's added successfully ", listeners[0], listener1);
        buttonModel.addItemListener(listener2);
        listeners = buttonModel.getListeners(ItemListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 2);
        assertTrue("listener's added successfully ", find(listeners, listener1) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener2) == 1);
        buttonModel.addItemListener(listener2);
        listeners = buttonModel.getListeners(ItemListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 3);
        assertTrue("listener's added successfully ", find(listeners, listener1) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener2) == 2);
    }

    /**
     * this method is being tested mostly with testAddItemListener()
     * and testRemoveItemListener()
     */
    public void testGetItemListeners() {
        EventListener[] listeners = buttonModel.getListeners(ItemListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 0);
    }

    public void testFireItemStateChanged() {
        Object item1 = "item1";
        Object item2 = "item2";
        ItemEvent event1 = new ItemEvent(buttonModel, 11, item1, 2);
        ItemEvent event2 = new ItemEvent(buttonModel, 111, item2, 1);
        ConcreteItemListener listener1 = new ConcreteItemListener();
        ConcreteItemListener listener2 = new ConcreteItemListener();
        buttonModel.addItemListener(listener1);
        buttonModel.addItemListener(listener2);
        buttonModel.fireItemStateChanged(event1);
        assertEquals("event fired ", event1, listener1.eventHappened);
        assertEquals("event fired ", event1, listener2.eventHappened);
        buttonModel.fireItemStateChanged(event2);
        assertEquals("event fired ", event2, listener1.eventHappened);
        assertEquals("event fired ", event2, listener2.eventHappened);
        buttonModel.fireItemStateChanged(null);
        assertNull("event fired ", listener1.eventHappened);
        assertNull("event fired ", listener2.eventHappened);
    }

    public void testFireActionPerformed1() {
        String command1 = "command1";
        String command2 = "command2";
        ActionEvent event1 = new ActionEvent(buttonModel, 11, command1, 2);
        ActionEvent event2 = new ActionEvent(buttonModel, 111, command2, 1);
        ConcreteActionListener listener1 = new ConcreteActionListener();
        ConcreteActionListener listener2 = new ConcreteActionListener();
        buttonModel.addActionListener(listener1);
        buttonModel.addActionListener(listener2);
        buttonModel.fireActionPerformed(event1);
        assertEquals("event fired ", event1, listener1.eventHappened);
        assertEquals("event fired ", event1, listener2.eventHappened);
        buttonModel.fireActionPerformed(event2);
        assertEquals("event fired ", event2, listener1.eventHappened);
        assertEquals("event fired ", event2, listener2.eventHappened);
        buttonModel.fireActionPerformed(null);
        assertNull("event fired ", listener1.eventHappened);
        assertNull("event fired ", listener2.eventHappened);
    }

    public void testFireActionPerformed2() {
        ConcreteActionListener listener1 = new ConcreteActionListener();
        ConcreteActionListener listener2 = new ConcreteActionListener();
        buttonModel.addActionListener(listener1);
        buttonModel.addActionListener(listener2);
        buttonModel.setPressed(true);
        buttonModel.setArmed(true);
        assertNull("actionListeners aren't triggered", listener1.eventHappened);
        assertNull("actionListeners aren't triggered", listener1.eventHappened);
        buttonModel.setPressed(false);
        assertTrue("actionListeners are triggered", listener1.eventHappened != null);
        assertTrue("actionListeners are triggered", listener2.eventHappened != null);
    }

    public void testFireStateChanged() {
        ChangeEvent event1 = null;
        ChangeEvent event2 = null;
        ConcreteChangeListener listener1 = new ConcreteChangeListener();
        ConcreteChangeListener listener2 = new ConcreteChangeListener();
        buttonModel.addChangeListener(listener1);
        buttonModel.addChangeListener(listener2);
        buttonModel.fireStateChanged();
        event1 = listener1.eventHappened;
        assertTrue("event fired ", listener1.eventHappened != null);
        assertTrue("event fired ", listener2.eventHappened != null);
        assertTrue("one event fired ", listener1.eventHappened == listener2.eventHappened);
        assertEquals("event fired properly ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired properly ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        assertEquals("event fired properly ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired properly ", buttonModel, listener2.eventHappened.getSource());
        buttonModel.fireStateChanged();
        event2 = listener1.eventHappened;
        assertTrue("event fired ", listener1.eventHappened != null);
        assertTrue("event fired ", listener2.eventHappened != null);
        assertTrue("one event fired ", listener1.eventHappened == listener2.eventHappened);
        assertEquals("event fired properly ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired properly ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        assertEquals("event fired properly ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired properly ", buttonModel, listener2.eventHappened.getSource());
        assertTrue("the same event is fired always ", event1 == event2);
    }

    public void testRemoveActionListener() {
        ActionListener listener1 = new ConcreteActionListener();
        ActionListener listener2 = new ConcreteActionListener();
        ActionListener listener3 = new ConcreteActionListener();
        buttonModel.addActionListener(listener1);
        buttonModel.addActionListener(listener2);
        buttonModel.addActionListener(listener2);
        buttonModel.addActionListener(listener3);
        EventListener[] listeners = buttonModel.getListeners(ActionListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 4);
        buttonModel.removeActionListener(listener1);
        listeners = buttonModel.getListeners(ActionListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 3);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener2) == 2);
        buttonModel.removeActionListener(listener2);
        listeners = buttonModel.getListeners(ActionListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 2);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener2) == 1);
        buttonModel.removeActionListener(listener2);
        listeners = buttonModel.getListeners(ActionListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener2) == 0);
        buttonModel.removeActionListener(listener2);
        listeners = buttonModel.getListeners(ActionListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 1);
        assertTrue("listener's removed successfully ", find(listeners, listener2) == 0);
        buttonModel.removeActionListener(listener3);
        listeners = buttonModel.getListeners(ActionListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 0);
        assertTrue("listener's removed successfully ", find(listeners, listener3) == 0);
    }

    public void testAddActionListener() {
        ActionListener listener1 = new ConcreteActionListener();
        ActionListener listener2 = new ConcreteActionListener();
        buttonModel.addActionListener(listener1);
        EventListener[] listeners = buttonModel.getListeners(ActionListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 1);
        assertEquals("listener's added successfully ", listeners[0], listener1);
        buttonModel.addActionListener(listener2);
        listeners = buttonModel.getListeners(ActionListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 2);
        assertTrue("listener's added successfully ", find(listeners, listener1) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener2) == 1);
        buttonModel.addActionListener(listener2);
        listeners = buttonModel.getListeners(ActionListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 3);
        assertTrue("listener's added successfully ", find(listeners, listener1) == 1);
        assertTrue("listener's added successfully ", find(listeners, listener2) == 2);
    }

    /**
     * this method is being tested mostly with testAddActionListener()
     * and testRemoveActionListener()
     */
    public void testGetActionListeners() {
        EventListener[] listeners = buttonModel.getListeners(ActionListener.class);
        assertTrue("listener's array has the proper size ", listeners != null
                && listeners.length == 0);
    }

    public void testSetSelected() {
        boolean value1 = true;
        boolean value2 = false;
        ConcreteChangeListener listener1 = new ConcreteChangeListener();
        ConcreteChangeListener listener2 = new ConcreteChangeListener();
        ConcreteItemListener listener3 = new ConcreteItemListener();
        ConcreteItemListener listener4 = new ConcreteItemListener();
        buttonModel.addChangeListener(listener1);
        buttonModel.addChangeListener(listener2);
        buttonModel.addItemListener(listener3);
        buttonModel.addItemListener(listener4);
        buttonModel.setSelected(value1);
        assertEquals("Selected ", value1, buttonModel.isSelected());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener3.eventHappened.getItem());
        assertEquals("event fired value ", 1, listener3.eventHappened.getStateChange());
        assertEquals("event fired source ", buttonModel, listener4.eventHappened.getItem());
        assertEquals("event fired value ", 1, listener4.eventHappened.getStateChange());
        buttonModel.setSelected(value2);
        assertEquals("Selected ", value2, buttonModel.isSelected());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener3.eventHappened.getItem());
        assertEquals("event fired value ", 2, listener3.eventHappened.getStateChange());
        assertEquals("event fired source ", buttonModel, listener4.eventHappened.getItem());
        assertEquals("event fired value ", 2, listener4.eventHappened.getStateChange());
        buttonModel.setSelected(value1);
        assertEquals("Selected ", value1, buttonModel.isSelected());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener3.eventHappened.getItem());
        assertEquals("event fired value ", 1, listener3.eventHappened.getStateChange());
        assertEquals("event fired source ", buttonModel, listener4.eventHappened.getItem());
        assertEquals("event fired value ", 1, listener4.eventHappened.getStateChange());
        buttonModel.setSelected(value2);
        assertEquals("Selected ", value2, buttonModel.isSelected());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener3.eventHappened.getItem());
        assertEquals("event fired value ", 2, listener3.eventHappened.getStateChange());
        assertEquals("event fired source ", buttonModel, listener4.eventHappened.getItem());
        assertEquals("event fired value ", 2, listener4.eventHappened.getStateChange());
        listener1.eventHappened = null;
        listener2.eventHappened = null;
        listener3.eventHappened = null;
        listener4.eventHappened = null;
        buttonModel.setSelected(value2);
        assertEquals("Selected  ", value2, buttonModel.isSelected());
        assertNull("event wasn't fired ", listener1.eventHappened);
        assertNull("event wasn't fired ", listener2.eventHappened);
        assertNull("event wasn't fired ", listener3.eventHappened);
        assertNull("event wasn't fired ", listener4.eventHappened);
        buttonModel.setEnabled(true);
        buttonModel.setSelected(false);
        buttonModel.setEnabled(false);
        buttonModel.setSelected(true);
        assertTrue(buttonModel.isSelected());
    }

    public void testSetRollover() {
        boolean value1 = true;
        boolean value2 = false;
        ConcreteChangeListener listener1 = new ConcreteChangeListener();
        ConcreteChangeListener listener2 = new ConcreteChangeListener();
        buttonModel.addChangeListener(listener1);
        buttonModel.addChangeListener(listener2);
        buttonModel.setRollover(value1);
        assertEquals("Rollover ", value1, buttonModel.isRollover());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        buttonModel.setRollover(value2);
        assertEquals("Rollover ", value2, buttonModel.isRollover());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        listener1.eventHappened = null;
        listener2.eventHappened = null;
        buttonModel.setRollover(value2);
        assertEquals("Rollover ", value2, buttonModel.isRollover());
        assertNull("event wasn't fired ", listener1.eventHappened);
        assertNull("event wasn't fired ", listener2.eventHappened);
        buttonModel.setEnabled(true);
        buttonModel.setRollover(false);
        buttonModel.setEnabled(false);
        buttonModel.setRollover(true);
        assertFalse(buttonModel.isRollover());
    }

    public void testSetPressed() {
        boolean value1 = true;
        boolean value2 = false;
        ConcreteChangeListener listener1 = new ConcreteChangeListener();
        ConcreteChangeListener listener2 = new ConcreteChangeListener();
        ConcreteActionListener listener3 = new ConcreteActionListener();
        buttonModel.addChangeListener(listener1);
        buttonModel.addChangeListener(listener2);
        buttonModel.addActionListener(listener3);
        buttonModel.setPressed(value1);
        assertEquals("Pressed ", value1, buttonModel.isPressed());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        buttonModel.setPressed(value2);
        assertEquals("Pressed ", value2, buttonModel.isPressed());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        listener1.eventHappened = null;
        listener2.eventHappened = null;
        buttonModel.setPressed(value2);
        assertEquals("Pressed ", value2, buttonModel.isPressed());
        assertNull("event wasn't fired ", listener1.eventHappened);
        assertNull("event wasn't fired ", listener2.eventHappened);
        buttonModel.setArmed(true);
        buttonModel.setPressed(true);
        listener3.eventHappened = null;
        buttonModel.setPressed(false);
        assertNotNull(listener3.eventHappened);
        buttonModel.setEnabled(true);
        buttonModel.setPressed(false);
        buttonModel.setEnabled(false);
        buttonModel.setPressed(true);
        assertFalse(buttonModel.isPressed());
    }

    public void testSetEnabled1() {
        boolean value1 = false;
        boolean value2 = true;
        ConcreteChangeListener listener1 = new ConcreteChangeListener();
        ConcreteChangeListener listener2 = new ConcreteChangeListener();
        buttonModel.addChangeListener(listener1);
        buttonModel.addChangeListener(listener2);
        buttonModel.setEnabled(value1);
        assertEquals("Enabled ", value1, buttonModel.isEnabled());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        buttonModel.setEnabled(value2);
        assertEquals("Enabled ", value2, buttonModel.isEnabled());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        listener1.eventHappened = null;
        listener2.eventHappened = null;
        buttonModel.setEnabled(value2);
        assertEquals("Enabled ", value2, buttonModel.isEnabled());
        assertNull("event wasn't fired ", listener1.eventHappened);
        assertNull("event wasn't fired ", listener2.eventHappened);
        buttonModel.setEnabled(true);
    }

    public void testSetEnabled2() {
        buttonModel.setEnabled(true);
        buttonModel.setPressed(true);
        buttonModel.setRollover(true);
        buttonModel.setSelected(true);
        buttonModel.setArmed(true);
        buttonModel.setEnabled(false);
        assertFalse(buttonModel.isArmed());
        assertFalse(buttonModel.isPressed());
        assertTrue(buttonModel.isSelected());
        if (isHarmony()) {
            assertFalse(buttonModel.isRollover());
        } else {
            assertTrue(buttonModel.isRollover());
        }
    }

    public void testSetArmed() {
        boolean value1 = true;
        boolean value2 = false;
        ConcreteChangeListener listener1 = new ConcreteChangeListener();
        ConcreteChangeListener listener2 = new ConcreteChangeListener();
        buttonModel.addChangeListener(listener1);
        buttonModel.addChangeListener(listener2);
        buttonModel.setArmed(value1);
        assertEquals("Armed ", value1, buttonModel.isArmed());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        buttonModel.setArmed(value2);
        assertEquals("Armed ", value2, buttonModel.isArmed());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        listener1.eventHappened = null;
        listener2.eventHappened = null;
        buttonModel.setArmed(value2);
        assertEquals("Armed ", value2, buttonModel.isArmed());
        assertNull("event wasn't fired ", listener1.eventHappened);
        assertNull("event wasn't fired ", listener2.eventHappened);
        buttonModel.setEnabled(true);
        buttonModel.setArmed(false);
        buttonModel.setEnabled(false);
        buttonModel.setArmed(true);
        assertFalse(buttonModel.isArmed());
    }

    public void testSetMnemonic() {
        int value1 = 123;
        int value2 = 234;
        ConcreteChangeListener listener1 = new ConcreteChangeListener();
        ConcreteChangeListener listener2 = new ConcreteChangeListener();
        buttonModel.addChangeListener(listener1);
        buttonModel.addChangeListener(listener2);
        buttonModel.setMnemonic(value1);
        assertEquals("mnemonic ", value1, buttonModel.getMnemonic());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        buttonModel.setMnemonic(value2);
        assertEquals("mnemonic ", value2, buttonModel.getMnemonic());
        assertEquals("event fired source ", buttonModel, listener1.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                .getClass());
        assertEquals("event fired source ", buttonModel, listener2.eventHappened.getSource());
        assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                .getClass());
        listener1.eventHappened = null;
        listener2.eventHappened = null;
        buttonModel.setMnemonic(value2);
        assertEquals("mnemonic ", value2, buttonModel.getMnemonic());
        if (!isHarmony()) {
            assertEquals("event fired source ", buttonModel, listener1.eventHappened
                    .getSource());
            assertEquals("event fired class ", ChangeEvent.class, listener1.eventHappened
                    .getClass());
            assertEquals("event fired source ", buttonModel, listener2.eventHappened
                    .getSource());
            assertEquals("event fired class ", ChangeEvent.class, listener2.eventHappened
                    .getClass());
        } else {
            assertNull("event hasn't fired", listener1.eventHappened);
            assertNull("event hasn't fired", listener2.eventHappened);
        }
    }

    public void testIsSelected() {
        assertFalse("default selected state ", buttonModel.isSelected());
    }

    public void testIsRollover() {
        assertFalse("default rollover state ", buttonModel.isRollover());
    }

    public void testIsPressed() {
        assertFalse("default pressed state ", buttonModel.isPressed());
    }

    public void testIsEnabled() {
        assertTrue("default enabled state ", buttonModel.isEnabled());
    }

    public void testIsArmed() {
        assertFalse("default armed state ", buttonModel.isArmed());
    }

    public void testGetMnemonic() {
        assertEquals("default mnemonic ", 0, buttonModel.getMnemonic());
    }

    public void testWriteObject() throws Exception {
        ByteArrayOutputStream fo = new ByteArrayOutputStream();
        ObjectOutputStream so = new ObjectOutputStream(fo);
        so.writeObject(buttonModel);
        so.flush();
    }

    public void testReadObject() throws Exception {
        ByteArrayOutputStream fo = new ByteArrayOutputStream();
        ObjectOutputStream so = new ObjectOutputStream(fo);
        so.writeObject(buttonModel);
        so.flush();
        InputStream fi = new ByteArrayInputStream(fo.toByteArray());
        ObjectInputStream si = new ObjectInputStream(fi);
        DefaultButtonModel ressurectedButtonModel = (DefaultButtonModel) si.readObject();
        assertNotNull(ressurectedButtonModel);
    }
}
TOP

Related Classes of javax.swing.DefaultButtonModelTest$ConcreteChangeListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.