package org.scribe.utils; import static org.junit.Assert.*; import java.util.*; import org.junit.*; public class MapUtilsTest { private Map unsorted; @Before public void setup() { unsorted = new LinkedHashMap(); unsorted.put("d", "fourth"); unsorted.put("a", "first"); unsorted.put("c", "third"); unsorted.put("b", "second"); } @Test public void shouldSortMap() { Map sorted = MapUtils.sort(unsorted); List values = new ArrayList(sorted.values()); assertEquals("first", values.get(0)); assertEquals("second", values.get(1)); assertEquals("third", values.get(2)); assertEquals("fourth", values.get(3)); } @Test public void shouldNotModifyTheOriginalMap() { Map sorted = MapUtils.sort(unsorted); assertNotSame(sorted, unsorted); List values = new ArrayList(unsorted.values()); assertEquals("fourth", values.get(0)); assertEquals("first", values.get(1)); assertEquals("third", values.get(2)); assertEquals("second", values.get(3)); } @Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionForNullMap() { MapUtils.sort(null); } }