/*******************************************************************************
* Copyright (c) 2006-2010 eBay Inc. All Rights Reserved.
* Licensed 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
*******************************************************************************/
package org.ebayopensource.turmeric.eclipse.utils.test.collections;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
import org.apache.commons.lang.ObjectUtils;
import org.ebayopensource.turmeric.eclipse.utils.collections.ListUtil;
import org.ebayopensource.turmeric.eclipse.utils.collections.Transformer;
import org.junit.Assert;
import org.junit.Test;
/**
* @author yayu
*
*/
public class TestListUtil {
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#transformed(org.ebayopensource.turmeric.maveneclipseapi.internal.collections.Transformer, java.util.List)}.
*/
@Test
public void testTransformedTransformerOfTListOfQ() {
List<String> collection = new ArrayList<String>();
collection.add("Arc' Terryx");
collection.add("Mountain Hardwear");
collection.add("Black Diamond");
final Transformer< String > transformer = new Transformer< String >()
{
private static final long serialVersionUID = 1631027078150099602L;
@Override
public String transform( final Object input )
{
return ObjectUtils.toString( input ).toLowerCase();
}
};
List<String> list = ListUtil.transformed(transformer, collection);
for (int i = 0; i < collection.size(); i++) {
String expected = collection.get(i);
String actual = list.get(i);
Assert.assertNotSame(expected, actual);
Assert.assertTrue(expected.equalsIgnoreCase(actual));
}
String item = "3dfx";
list.add(item);
Assert.assertTrue(list.contains(item));
list.remove(item);
Assert.assertFalse(list.contains(item));
list.add(0, item);
Assert.assertTrue(list.indexOf(item) == 0);
Assert.assertTrue(list.lastIndexOf(item) == 0);
list.remove(0);
list.set(0, item);
Assert.assertTrue(list.indexOf(item) == 0);
Collection<String> data = new ArrayList<String>(2);
data.add("Voodoo");
data.add("Radeon");
list.addAll(data);
Assert.assertTrue(list.containsAll(data));
list.removeAll(data);
Assert.assertFalse(list.containsAll(data));
list.addAll(0, data);
list.retainAll(data);
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#array(T[])}.
*/
@Test
public void testArrayTArray() {
Assert.assertNotNull(ListUtil.array());
Assert.assertTrue(ListUtil.array().isEmpty());
String[] data = {"3dfx", "Nvidia", "ATI"};
List<String> list = ListUtil.array(data);
Assert.assertArrayEquals("data not equals", data, list.toArray(new String[0]));
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#array(java.util.Collection)}.
*/
@Test
public void testArrayCollectionOfT() {
Collection<String> collection = new ArrayList<String>();
collection.add("3dfx");
collection.add("Nvidia");
collection.add("ATI");
List<String> list = ListUtil.array(collection);
Assert.assertEquals("data not equals", collection, list);
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#arrayList()}.
*/
@Test
public void testArrayList() {
Collection<String> collection = new ArrayList<String>();
collection.add("3dfx");
collection.add("Nvidia");
collection.add("ATI");
List<String> list = ListUtil.arrayList(collection);
Assert.assertEquals("data not equals", collection, list);
list = ListUtil.arrayList(collection.toArray(new String[0]));
Assert.assertEquals("data not equals", collection, list);
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#linked(T[])}.
*/
@Test
public void testLinkedTArray() {
Assert.assertNotNull(ListUtil.linked());
Assert.assertTrue(ListUtil.linked().isEmpty());
String[] data = {"3dfx", "Nvidia", "ATI"};
List<String> list = ListUtil.linked(data);
Assert.assertArrayEquals("data not equals", data, list.toArray(new String[0]));
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#linked(java.util.Collection)}.
*/
@Test
public void testLinkedCollectionOfT() {
Collection<String> collection = new ArrayList<String>();
collection.add("3dfx");
collection.add("Nvidia");
collection.add("ATI");
List<String> list = ListUtil.linked(collection);
Assert.assertEquals("data not equals", collection, list);
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#linkedList()}.
*/
@Test
public void testLinkedList() {
Collection<String> collection = new ArrayList<String>();
collection.add("3dfx");
collection.add("Nvidia");
collection.add("ATI");
List<String> list = ListUtil.linkedList(collection);
Assert.assertEquals(LinkedList.class.getName(), list.getClass().getName());
Assert.assertEquals("data not equals", collection, list);
list = ListUtil.linkedList(collection.toArray(new String[0]));
Assert.assertEquals(LinkedList.class.getName(), list.getClass().getName());
Assert.assertEquals("data not equals", collection, list);
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#newList(T[])}.
*/
@Test
public void testNewListTArray() {
Assert.assertNotNull(ListUtil.newList());
Assert.assertTrue(ListUtil.newList().isEmpty());
String[] data = {"3dfx", "Nvidia", "ATI"};
List<String> list = ListUtil.newList(data);
Assert.assertArrayEquals("data not equals", data, list.toArray(new String[0]));
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#newList(java.util.Collection)}.
*/
@Test
public void testNewListCollectionOfT() {
Collection<String> collection = new ArrayList<String>();
collection.add("3dfx");
collection.add("Nvidia");
collection.add("ATI");
List<String> list = ListUtil.newList(collection);
Assert.assertNotSame("should be new list instance", collection, list);
Assert.assertEquals("data not equals", collection, list);
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#list(T[])}.
*/
@Test
public void testListTArray() {
Assert.assertNotNull(ListUtil.list());
Assert.assertTrue(ListUtil.list().isEmpty());
String[] data = {"3dfx", "Nvidia", "ATI"};
List<String> list = ListUtil.list(data);
Assert.assertArrayEquals("data not equals", data, list.toArray(new String[0]));
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#toList(T[])}.
*/
@Test
public void testToList() {
Assert.assertNotNull(ListUtil.toList());
Assert.assertTrue(ListUtil.toList().isEmpty());
String[] data = {"3dfx", "Nvidia", "ATI"};
List<String> list = ListUtil.toList(data);
Assert.assertArrayEquals("data not equals", data, list.toArray(new String[0]));
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#list(java.util.Collection)}.
*/
@Test
public void testListCollectionOfT() {
Collection<String> collection = new ArrayList<String>();
collection.add("3dfx");
collection.add("Nvidia");
collection.add("ATI");
List<String> list = ListUtil.list(collection);
Assert.assertEquals("data not equals", collection, list);
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#add(java.util.List, T[])}.
*/
@Test
public void testAdd() {
List<String> collection = new ArrayList<String>();
collection.add("3dfx");
collection.add("Nvidia");
collection.add("ATI");
List<String> list = ListUtil.add(collection);
Assert.assertSame("data not same", collection, list);
String item = "S3";
list = ListUtil.add(collection, item);
Assert.assertTrue("data not added", list.contains(item));
item = null;
list = ListUtil.add(collection, item);
Assert.assertTrue("null is not added", list.contains(item));
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#changePosition()}.
*/
@Test
public void testChangePosition() {
List<String> collection = new ArrayList<String>();
String item = "3dfx";
collection.add(item);
collection.add("Nvidia");
collection.add("ATI");
List<String> list = ListUtil.moveOnePositionDown(collection, item);
Assert.assertTrue("moving item not succeed", list.indexOf(item) == 1);
list = ListUtil.moveOnePositionUp(collection, item);
Assert.assertTrue("moving item not succeed", list.indexOf(item) == 0);
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#addIgnoreNull(java.util.List, T[])}.
*/
@Test
public void testAddIgnoreNull() {
List<String> collection = new ArrayList<String>();
collection.add("3dfx");
collection.add("Nvidia");
collection.add("ATI");
List<String> list = ListUtil.addIgnoreNull(collection);
Assert.assertSame("data not same", collection, list);
String item = "S3";
list = ListUtil.addIgnoreNull(collection, item);
Assert.assertTrue("data not added", list.contains(item));
item = null;
list = ListUtil.addIgnoreNull(collection, item);
Assert.assertFalse("null should not be added", list.contains(item));
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#listAdd(java.util.List, T[])}.
*/
@Test
public void testListAdd() {
List<String> collection = new ArrayList<String>();
collection.add("3dfx");
collection.add("Nvidia");
collection.add("ATI");
List<String> list = ListUtil.listAdd(collection);
Assert.assertSame("data not same", collection, list);
String item = "S3";
list = ListUtil.listAdd(collection, item);
Assert.assertTrue("data not added", list.contains(item));
item = null;
list = ListUtil.listAdd(collection, item);
Assert.assertTrue("null is not added", list.contains(item));
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#remove(java.util.List, T[])}.
*/
@Test
public void testRemove() {
List<String> collection = new ArrayList<String>();
collection.add("3dfx");
collection.add("Nvidia");
collection.add("ATI");
String item = "S3";
collection.add(item);
List<String> list = ListUtil.remove(collection);
Assert.assertSame("data not same", collection, list);
list = ListUtil.remove(collection, item);
Assert.assertFalse("data not removed", list.contains(item));
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#listRemove(java.util.List, T[])}.
*/
@Test
public void testListRemove() {
List<String> collection = new ArrayList<String>();
collection.add("3dfx");
collection.add("Nvidia");
collection.add("ATI");
String item = "S3";
collection.add(item);
List<String> list = ListUtil.listRemove(collection);
Assert.assertSame("data not same", collection, list);
list = ListUtil.listRemove(collection, item);
Assert.assertFalse("data not removed", list.contains(item));
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#caseless(E[])}.
*/
@Test
public void testCaselessEArray() {
String[] data = {"S3", "Nvidia", "ATI"};
List<String> list = ListUtil.caseless(data);
//list = ListUtil.array(list);
for (int i = 0; i < data.length; i++) {
String expected = data[i];
String actual = list.get(i);
Assert.assertNotSame(expected, actual);
Assert.assertTrue(expected.equalsIgnoreCase(actual));
}
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#caseless(java.util.List)}.
*/
@Test
public void testCaselessListOfQ() {
List<String> collection = new ArrayList<String>();
collection.add("S3");
collection.add("Nvidia");
collection.add("ATI");
List<String> list = ListUtil.caseless(collection);
for (int i = 0; i < collection.size(); i++) {
String expected = collection.get(i);
String actual = list.get(i);
Assert.assertNotSame(expected, actual);
Assert.assertTrue(expected.equalsIgnoreCase(actual));
}
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#vector(T[])}.
*/
@Test
public void testVectorTArray() {
String[] data = {"3dfx", "Nvidia", "ATI"};
List<String> list = ListUtil.vector(data);
Assert.assertEquals(Vector.class.getName(), list.getClass().getName());
Assert.assertArrayEquals("data not equals", data, list.toArray(new String[0]));
}
/**
* Test method for {@link org.ebayopensource.turmeric.maveneclipseapi.internal.collections.ListUtil#vector(java.util.Collection)}.
*/
@Test
public void testVectorCollectionOfT() {
List<String> collection = new ArrayList<String>();
collection.add("3dfx");
collection.add("Nvidia");
collection.add("ATI");
List<String> list = ListUtil.vector(collection);
Assert.assertEquals(Vector.class.getName(), list.getClass().getName());
Assert.assertEquals("data not same", collection, list);
}
}