package utest.bcb;
import java.io.File;
import java.util.Arrays;
import org.pushingpixels.flamingo.api.bcb.BreadcrumbBarModel;
import org.pushingpixels.flamingo.api.bcb.BreadcrumbItem;
import junit.framework.TestCase;
public class BreadcrumbBarModelTestCase extends TestCase {
public void testEmptyStringModel() {
BreadcrumbBarModel<String> model = new BreadcrumbBarModel<String>();
assertEquals(model.getItemCount(), 0);
assertNull(model.getItem(0));
assertEquals(model.getItems().size(), 0);
}
public void testEmptyFileModel() {
BreadcrumbBarModel<File> model = new BreadcrumbBarModel<File>();
assertEquals(model.getItemCount(), 0);
assertNull(model.getItem(0));
assertEquals(model.getItems().size(), 0);
}
public void testAddingToStringModel() {
BreadcrumbBarModel<String> model = new BreadcrumbBarModel<String>();
BreadcrumbItem<String> item1 = new BreadcrumbItem<String>("key1",
"data1");
model.addLast(item1);
assertEquals(model.getItemCount(), 1);
assertEquals(model.getItem(0), item1);
assertNull(model.getItem(-1));
assertNull(model.getItem(1));
assertEquals(model.getItems().size(), 1);
assertEquals(model.getItems().get(0), item1);
BreadcrumbItem<String> item2 = new BreadcrumbItem<String>("key2",
"data2");
model.addLast(item2);
assertEquals(model.getItemCount(), 2);
assertEquals(model.getItem(0), item1);
assertEquals(model.getItem(1), item2);
assertNull(model.getItem(-1));
assertNull(model.getItem(2));
assertEquals(model.getItems().size(), 2);
assertEquals(model.getItems().get(0), item1);
assertEquals(model.getItems().get(1), item2);
}
public void testReplacingInStringModel() {
BreadcrumbBarModel<String> model = new BreadcrumbBarModel<String>();
BreadcrumbItem<String> item1 = new BreadcrumbItem<String>("key1",
"data1");
model.addLast(item1);
BreadcrumbItem<String> item2 = new BreadcrumbItem<String>("key2",
"data2");
model.addLast(item2);
BreadcrumbItem<String> item3 = new BreadcrumbItem<String>("key3",
"data3");
model.replace(Arrays.asList(item3));
assertEquals(model.getItemCount(), 1);
assertEquals(model.getItem(0), item3);
assertNull(model.getItem(-1));
assertNull(model.getItem(1));
assertEquals(model.getItems().size(), 1);
assertEquals(model.getItems().get(0), item3);
BreadcrumbItem<String> item4 = new BreadcrumbItem<String>("key4",
"data4");
BreadcrumbItem<String> item5 = new BreadcrumbItem<String>("key5",
"data5");
model.replace(Arrays.asList(item4, item5));
assertEquals(model.getItemCount(), 2);
assertEquals(model.getItem(0), item4);
assertEquals(model.getItem(1), item5);
assertNull(model.getItem(-1));
assertNull(model.getItem(2));
assertEquals(model.getItems().size(), 2);
assertEquals(model.getItems().get(0), item4);
assertEquals(model.getItems().get(1), item5);
model.replace(Arrays.asList(item4));
assertEquals(model.getItemCount(), 1);
assertEquals(model.getItem(0), item4);
assertNull(model.getItem(-1));
assertNull(model.getItem(1));
assertEquals(model.getItems().size(), 1);
assertEquals(model.getItems().get(0), item4);
}
public void testResettingInStringModel() {
BreadcrumbBarModel<String> model = new BreadcrumbBarModel<String>();
BreadcrumbItem<String> item1 = new BreadcrumbItem<String>("key1",
"data1");
model.addLast(item1);
BreadcrumbItem<String> item2 = new BreadcrumbItem<String>("key2",
"data2");
model.addLast(item2);
model.reset();
assertEquals(model.getItemCount(), 0);
assertNull(model.getItem(0));
assertNull(model.getItem(-1));
assertNull(model.getItem(1));
assertEquals(model.getItems().size(), 0);
BreadcrumbItem<String> item3 = new BreadcrumbItem<String>("key3",
"data3");
model.replace(Arrays.asList(item3));
assertEquals(model.getItemCount(), 1);
assertEquals(model.getItem(0), item3);
assertNull(model.getItem(-1));
assertNull(model.getItem(1));
assertEquals(model.getItems().size(), 1);
assertEquals(model.getItems().get(0), item3);
model.reset();
assertEquals(model.getItemCount(), 0);
assertNull(model.getItem(0));
assertNull(model.getItem(-1));
assertNull(model.getItem(1));
assertEquals(model.getItems().size(), 0);
}
public void testRemovingFromStringModel() {
BreadcrumbBarModel<String> model = new BreadcrumbBarModel<String>();
BreadcrumbItem<String> item1 = new BreadcrumbItem<String>("key1",
"data1");
model.addLast(item1);
BreadcrumbItem<String> item2 = new BreadcrumbItem<String>("key2",
"data2");
model.addLast(item2);
model.removeLast();
assertEquals(model.getItemCount(), 1);
assertEquals(model.getItem(0), item1);
assertNull(model.getItem(-1));
assertNull(model.getItem(1));
assertEquals(model.getItems().size(), 1);
assertEquals(model.getItems().get(0), item1);
BreadcrumbItem<String> item3 = new BreadcrumbItem<String>("key3",
"data3");
model.addLast(item3);
BreadcrumbItem<String> item4 = new BreadcrumbItem<String>("key4",
"data4");
model.addLast(item4);
model.removeLast();
assertEquals(model.getItemCount(), 2);
assertEquals(model.getItem(0), item1);
assertEquals(model.getItem(1), item3);
assertNull(model.getItem(-1));
assertNull(model.getItem(2));
assertEquals(model.getItems().size(), 2);
assertEquals(model.getItems().get(0), item1);
assertEquals(model.getItems().get(1), item3);
}
public void testIndexOfStringModel() {
BreadcrumbBarModel<String> model = new BreadcrumbBarModel<String>();
BreadcrumbItem<String> item1 = new BreadcrumbItem<String>("key1",
"data1");
model.addLast(item1);
BreadcrumbItem<String> item2 = new BreadcrumbItem<String>("key2",
"data2");
model.addLast(item2);
assertEquals(model.indexOf(item1), 0);
assertEquals(model.indexOf(item2), 1);
BreadcrumbItem<String> item3 = new BreadcrumbItem<String>("key3",
"data3");
assertEquals(model.indexOf(item3), -1);
model.addLast(item3);
assertEquals(model.indexOf(item1), 0);
assertEquals(model.indexOf(item2), 1);
assertEquals(model.indexOf(item3), 2);
}
}