![JAR search and dependency download from the Maven repository](/logo.png)
org.eclipse.sisu.inject.RankedSequenceTest Maven / Gradle / Ivy
The newest version!
/*******************************************************************************
* Copyright (c) 2010, 2013 Sonatype, Inc.
* 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:
* Stuart McCulloch (Sonatype, Inc.) - initial API and implementation
*******************************************************************************/
package org.eclipse.sisu.inject;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Random;
import java.util.concurrent.atomic.AtomicBoolean;
import junit.framework.TestCase;
public class RankedSequenceTest
extends TestCase
{
static final AtomicBoolean active = new AtomicBoolean( true );
static final List errors = Collections.synchronizedList( new ArrayList() );
static final Random random = new Random( System.currentTimeMillis() );
static final int CONCURRENCY = 8;
static final RankedSequence rankedList = new RankedSequence();
public void testOrdering()
{
final RankedSequence list = new RankedSequence();
list.insert( "A1", Integer.MAX_VALUE );
list.insert( "F", Integer.MIN_VALUE + 1 );
list.insert( "E", -1 );
list.insert( "G1", Integer.MIN_VALUE );
list.insert( "D", 0 );
list.insert( "B", Integer.MAX_VALUE - 1 );
list.insert( "C", 1 );
list.insert( "G2", Integer.MIN_VALUE );
list.insert( "D", 0 );
list.insert( "A2", Integer.MAX_VALUE );
assertEquals( 10, list.size() );
Iterator itr = list.iterator();
assertTrue( itr.hasNext() );
assertTrue( itr.hasNext() );
assertTrue( itr.hasNext() );
assertEquals( "A1", itr.next() );
assertTrue( itr.hasNext() );
assertEquals( "A2", itr.next() );
assertTrue( itr.hasNext() );
assertEquals( "B", itr.next() );
assertTrue( itr.hasNext() );
assertEquals( "C", itr.next() );
assertTrue( itr.hasNext() );
assertEquals( "D", itr.next() );
assertTrue( itr.hasNext() );
assertEquals( "D", itr.next() );
assertTrue( itr.hasNext() );
assertEquals( "E", itr.next() );
assertTrue( itr.hasNext() );
assertEquals( "F", itr.next() );
assertTrue( itr.hasNext() );
assertEquals( "G1", itr.next() );
assertTrue( itr.hasNext() );
assertEquals( "G2", itr.next() );
assertFalse( itr.hasNext() );
assertFalse( itr.hasNext() );
assertFalse( itr.hasNext() );
itr = list.iterator();
assertEquals( "A1", itr.next() );
assertEquals( "A2", itr.next() );
assertEquals( "B", itr.next() );
assertEquals( "C", itr.next() );
assertEquals( "D", itr.next() );
assertEquals( "D", itr.next() );
assertEquals( "E", itr.next() );
assertEquals( "F", itr.next() );
assertEquals( "G1", itr.next() );
assertEquals( "G2", itr.next() );
itr = list.iterator();
list.remove( "D" );
list.insert( "D-", 0 );
list.remove( "D" );
assertEquals( "A1", itr.next() );
assertEquals( "A2", itr.next() );
assertTrue( itr.hasNext() );
list.remove( "B" );
list.insert( "512", 512 );
assertEquals( "B", itr.next() );
assertTrue( itr.hasNext() );
list.insert( "1024", 1024 );
assertEquals( "512", itr.next() );
assertEquals( "C", itr.next() );
assertEquals( "D-", itr.next() );
assertEquals( "E", itr.next() );
assertEquals( "F", itr.next() );
assertEquals( "G1", itr.next() );
assertEquals( "G2", itr.next() );
}
public void testEmptyList()
{
final Iterator
© 2015 - 2025 Weber Informatics LLC | Privacy Policy