package net.sourceforge.mayfly.datastore;
import junit.framework.TestCase;
import net.sourceforge.mayfly.MayflyException;
import net.sourceforge.mayfly.util.ImmutableList;
public class IndexesTest extends TestCase {
public void testRejectDuplicatesInListConstructor() throws Exception {
Index one = new Index("foo", null);
Index two = new Index("foo", null);
try {
new Indexes(ImmutableList.fromElements(one, two));
fail();
}
catch (MayflyException e) {
assertEquals("duplicate index foo", e.getMessage());
}
}
public void testRejectDuplicatesInWith() throws Exception {
Index one = new Index("foo", null);
Index two = new Index("foo", null);
try {
new Indexes().with(one).with(two);
fail();
}
catch (MayflyException e) {
assertEquals("duplicate index foo", e.getMessage());
}
}
public void testCaseInsensitive() throws Exception {
Index one = new Index("foo", null);
Index two = new Index("FOO", null);
try {
new Indexes().with(one).with(two);
fail();
}
catch (MayflyException e) {
assertEquals("duplicate index FOO", e.getMessage());
}
}
public void testJustOne() throws Exception {
Index one = new Index("foo", null);
new Indexes().with(one);
}
public void testNoName() throws Exception {
Index nameless = new Index(null, null);
Index nameless2 = new Index(null, null);
new Indexes().with(nameless).with(nameless2);
}
public void testWithout() throws Exception {
Index one = new Index("foo", null);
Index two = new Index("BAR", null);
Index nameless = new Index(null, null);
Indexes before = new Indexes().with(one).with(two).with(nameless);
assertEquals(3, before.indexCount());
Indexes after = before.without("bar");
assertEquals(2, after.indexCount());
try {
before.without("baz");
fail();
}
catch (MayflyException e) {
assertEquals("no index baz", e.getMessage());
}
}
}