001    /*
002     * Copyright 2002-2007 the original author or authors.
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005     * use this file except in compliance with the License. You may obtain a copy of
006     * the License at
007     * 
008     * http://www.apache.org/licenses/LICENSE-2.0
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012     * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013     * License for the specific language governing permissions and limitations under
014     * the License.
015     */
016    package org.springframework.binding.value.support;
017    
018    import javax.swing.event.ListDataEvent;
019    
020    import org.easymock.IArgumentMatcher;
021    
022    /**
023     * Custom ArgumentMatcher for EasyMock.
024     * 
025     * @author Peter De Bruycker
026     */
027    public class ListDataEventArgumentMatcher implements IArgumentMatcher {
028    
029            private ListDataEvent expected;
030    
031            public ListDataEventArgumentMatcher(ListDataEvent expected) {
032                    this.expected = expected;
033            }
034            
035            public void appendTo(StringBuffer sb) {
036                    sb.append("javax.swing.event.ListDataEvent[");
037                    
038                    sb.append("type=").append(expected.getType()).append(", ");
039                    sb.append("index0=").append(expected.getIndex0()).append(", ");
040                    sb.append("index1=").append(expected.getIndex1()).append(", ");
041                    
042                    sb.append("]");
043            }
044    
045            public boolean matches(Object value) {
046                    if (!(value instanceof ListDataEvent)) {
047                            return false;
048                    }
049    
050                    ListDataEvent actual = (ListDataEvent) value;
051    
052                    boolean matches = true;
053                    matches = matches && actual.getSource().equals(expected.getSource());
054                    matches = matches && actual.getType() == expected.getType();
055                    matches = matches && actual.getIndex0() == expected.getIndex0();
056                    matches = matches && actual.getIndex1() == expected.getIndex1();
057    
058                    return matches;
059            }
060    
061    }