diff --git a/src/test/java/com/commafeed/backend/FixedSizeSortedSetTest.java b/src/test/java/com/commafeed/backend/FixedSizeSortedSetTest.java new file mode 100644 index 00000000..5a81d395 --- /dev/null +++ b/src/test/java/com/commafeed/backend/FixedSizeSortedSetTest.java @@ -0,0 +1,94 @@ +package com.commafeed.backend; + +import java.util.Comparator; + +import org.apache.commons.lang.ObjectUtils; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class FixedSizeSortedSetTest { + + private FixedSizeSortedSet set; + private static Comparator COMP = new Comparator() { + @Override + public int compare(String o1, String o2) { + return ObjectUtils.compare(o1, o2); + } + }; + + @Before + public void init() { + set = new FixedSizeSortedSet(3, COMP); + } + + @Test + public void testSimpleAdd() { + set.add("0"); + set.add("1"); + set.add("2"); + + Assert.assertEquals("0", set.asList().get(0)); + Assert.assertEquals("1", set.asList().get(1)); + Assert.assertEquals("2", set.asList().get(2)); + } + + @Test + public void testIsFull() { + set.add("0"); + set.add("1"); + + Assert.assertFalse(set.isFull()); + set.add("2"); + Assert.assertTrue(set.isFull()); + } + + @Test + public void testOrder() { + set.add("2"); + set.add("1"); + set.add("0"); + + Assert.assertEquals("0", set.asList().get(0)); + Assert.assertEquals("1", set.asList().get(1)); + Assert.assertEquals("2", set.asList().get(2)); + } + + @Test + public void testEviction() { + set.add("7"); + set.add("8"); + set.add("9"); + + set.add("0"); + set.add("1"); + set.add("2"); + + Assert.assertEquals("0", set.asList().get(0)); + Assert.assertEquals("1", set.asList().get(1)); + Assert.assertEquals("2", set.asList().get(2)); + } + + @Test + public void testCapacity() { + set.add("0"); + set.add("1"); + set.add("2"); + set.add("3"); + + Assert.assertEquals(3, set.asList().size()); + } + + @Test + public void testLast() { + set.add("0"); + set.add("1"); + set.add("2"); + + Assert.assertEquals("2", set.last()); + + set.add("3"); + + Assert.assertEquals("2", set.last()); + } +}