/*******************************************************************************
* Copyright (c) 2002, 2007 Innoopract Informationssysteme GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Innoopract Informationssysteme GmbH - initial API and implementation
******************************************************************************/
package org.eclipse.swt.internal.widgets;
import java.util.List;
import junit.framework.TestCase;
public class SlimList_Test extends TestCase {
public void testRemove() {
List list = new SlimList();
Object object1 = new Object();
Object object2 = new Object();
Object object3 = new Object();
// Test removing an object that is not in the list
list.clear();
list.add( object1 );
boolean result = list.remove( new Object() );
assertEquals( false, result );
assertEquals( 1, list.size() );
// Test removing the sole object in the list
list.clear();
list.add( object1 );
result = list.remove( object1 );
assertEquals( true, result );
assertEquals( -1, list.indexOf( object1 ) );
assertEquals( 0, list.size() );
// List [ object1, object2 ]: test removing object2
list.clear();
list.add( object1 );
list.add( object2 );
result = list.remove( object2 );
assertEquals( true, result );
assertEquals( -1, list.indexOf( object2 ) );
assertEquals( 0, list.indexOf( object1 ) );
assertEquals( 1, list.size() );
// List [ object1, object2 ]: test removing object21
list.clear();
list.add( object1 );
list.add( object2 );
result = list.remove( object1 );
assertEquals( true, result );
assertEquals( -1, list.indexOf( object1 ) );
assertEquals( 0, list.indexOf( object2 ) );
assertEquals( 1, list.size() );
// List [ object1, object2, object3 ]: test removing object21
list.clear();
list.add( object1 );
list.add( object2 );
list.add( object3 );
result = list.remove( object2 );
assertEquals( true, result );
assertEquals( -1, list.indexOf( object2 ) );
assertEquals( 0, list.indexOf( object1 ) );
assertEquals( 1, list.indexOf( object3 ) );
assertEquals( 2, list.size() );
}
public void testInsert() {
List list = new SlimList();
list.add( "a" );
list.add( "c" );
list.add( 1, "b" );
assertEquals( "a", list.get( 0 ) );
assertEquals( "b", list.get( 1 ) );
assertEquals( "c", list.get( 2 ) );
list.clear();
list.add( "b" );
list.add( "c" );
list.add( 0, "a" );
assertEquals( "a", list.get( 0 ) );
assertEquals( "b", list.get( 1 ) );
assertEquals( "c", list.get( 2 ) );
list.clear();
list.add( "a" );
list.add( "b" );
list.add( 2, "c" );
assertEquals( "a", list.get( 0 ) );
assertEquals( "b", list.get( 1 ) );
assertEquals( "c", list.get( 2 ) );
}
public void testClear() {
List list = new SlimList();
list.clear();
assertEquals( 0, list.size() );
list.add( new Object() );
list.clear();
assertEquals( 0, list.size() );
}
}