package com.commafeed.backend;
import java.util.Comparator;
import org.apache.commons.lang3.ObjectUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class FixedSizeSortedSetTest {
private FixedSizeSortedSet<String> set;
private static Comparator<String> COMP = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return ObjectUtils.compare(o1, o2);
}
};
@Before
public void init() {
set = new FixedSizeSortedSet<String>(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());
}
}