package org.intracetest.gui;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.intrace.client.gui.helper.IncludeExcludeWindow.IncludeExcludeHeaders;
import junit.framework.TestCase;
public class IncludeExcludeTest extends TestCase
{
private List<String> list;
private IncludeExcludeHeaders headers;
@Override
protected void setUp() throws Exception
{
list = new ArrayList<String>();
headers = new IncludeExcludeHeaders(new IncludeExcludeHeaders.IncludeExcludeList()
{
@Override
public void remove(int xiIndex)
{
list.remove(xiIndex);
}
@Override
public String[] getItems()
{
return list.toArray(new String[0]);
}
@Override
public void add(String xiItem, int xiIndex)
{
list.add(xiIndex, xiItem);
}
@Override
public void add(String xiItem)
{
list.add(xiItem);
}
});
}
public void testIncludeExclude()
{
// Add first include item
headers.addItem(true, "Foo");
assertEquals(Arrays.asList("Include:",
" Foo"), list);
// Add second include item
headers.addItem(true, "Bar");
assertEquals(Arrays.asList("Include:",
" Foo",
" Bar"), list);
// Add first exclude item with include items
headers.addItem(false, "Goo");
assertEquals(Arrays.asList("Include:",
" Foo",
" Bar",
"",
"Exclude:",
" Goo"), list);
// Add second exclude item with include items
headers.addItem(false, "Gar");
assertEquals(Arrays.asList("Include:",
" Foo",
" Bar",
"",
"Exclude:",
" Goo",
" Gar"), list);
// Try and add a duplicate item
headers.addItem(false, "Gar");
assertEquals(Arrays.asList("Include:",
" Foo",
" Bar",
"",
"Exclude:",
" Goo",
" Gar"), list);
// Test returned patterns
{
assertEquals(Arrays.asList("Foo","Bar"),headers.getIncludePattern());
assertEquals(Arrays.asList("Goo","Gar"),headers.getExcludePattern());
}
// Try and remove headers and spacer
{
assertFalse(headers.removeIndex(0));
assertEquals(Arrays.asList("Include:",
" Foo",
" Bar",
"",
"Exclude:",
" Goo",
" Gar"), list);
assertFalse(headers.removeIndex(3));
assertEquals(Arrays.asList("Include:",
" Foo",
" Bar",
"",
"Exclude:",
" Goo",
" Gar"), list);
assertFalse(headers.removeIndex(4));
assertEquals(Arrays.asList("Include:",
" Foo",
" Bar",
"",
"Exclude:",
" Goo",
" Gar"), list);
}
// Remove top include item
assertTrue(headers.removeIndex(1));
assertEquals(Arrays.asList("Include:",
" Bar",
"",
"Exclude:",
" Goo",
" Gar"), list);
// Remove last include item
assertTrue(headers.removeIndex(1));
assertEquals(Arrays.asList("Exclude:",
" Goo",
" Gar"), list);
// Remove top exclude item
assertTrue(headers.removeIndex(1));
assertEquals(Arrays.asList("Exclude:",
" Gar"), list);
// Remove last include item
assertTrue(headers.removeIndex(1));
assertEquals(Arrays.asList(), list);
// Add back an exclude then an include item
{
headers.addItem(false, "Goo");
assertEquals(Arrays.asList("Exclude:",
" Goo"), list);
headers.addItem(true, "Foo");
assertEquals(Arrays.asList("Include:",
" Foo",
"",
"Exclude:",
" Goo"), list);
}
// Remove the last exclude item first, then the last include item
assertTrue(headers.removeIndex(4));
assertEquals(Arrays.asList("Include:",
" Foo"), list);
assertTrue(headers.removeIndex(1));
assertEquals(Arrays.asList(), list);
}
}