package com.apress.progwt.client.util; import java.util.ArrayList; import java.util.List; import com.apress.progwt.client.domain.commands.Orderable; import junit.framework.TestCase; public class UtilitiesTest extends TestCase { private class OrderableInteger implements Orderable { private int sortOrder; private int value; public OrderableInteger(int value) { this.value = value; } public void setSortOrder(int sortOrder) { this.sortOrder = sortOrder; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + value; return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (!(obj instanceof OrderableInteger)) return false; final OrderableInteger other = (OrderableInteger) obj; if (value != other.value) return false; return true; } @Override public String toString() { return value + " order " + sortOrder; } } public void testReOrder() { List<OrderableInteger> list = new ArrayList<OrderableInteger>(); list.add(new OrderableInteger(0)); list.add(new OrderableInteger(1)); list.add(new OrderableInteger(2)); list.add(new OrderableInteger(3)); list.add(new OrderableInteger(4)); Utilities.reOrder(list, new OrderableInteger(2), 0); assertEquals(new OrderableInteger(2), list.get(0)); assertEquals(new OrderableInteger(0), list.get(1)); assertEquals(new OrderableInteger(1), list.get(2)); assertEquals(new OrderableInteger(3), list.get(3)); assertEquals(new OrderableInteger(4), list.get(4)); assertEquals(5, list.size()); Utilities.reOrder(list, new OrderableInteger(0), 2); assertEquals(new OrderableInteger(2), list.get(0)); assertEquals(new OrderableInteger(1), list.get(1)); assertEquals(new OrderableInteger(0), list.get(2)); assertEquals(new OrderableInteger(3), list.get(3)); assertEquals(new OrderableInteger(4), list.get(4)); assertEquals(5, list.size()); Utilities.reOrder(list, new OrderableInteger(2), 3); assertEquals(new OrderableInteger(1), list.get(0)); assertEquals(new OrderableInteger(0), list.get(1)); assertEquals(new OrderableInteger(3), list.get(2)); assertEquals(new OrderableInteger(2), list.get(3)); assertEquals(new OrderableInteger(4), list.get(4)); assertEquals(5, list.size()); Utilities.reOrder(list, new OrderableInteger(1), 4); assertEquals(new OrderableInteger(0), list.get(0)); assertEquals(new OrderableInteger(3), list.get(1)); assertEquals(new OrderableInteger(2), list.get(2)); assertEquals(new OrderableInteger(4), list.get(3)); assertEquals(new OrderableInteger(1), list.get(4)); assertEquals(5, list.size()); } }