package org.jacorb.test.notification.util;
import junit.framework.TestCase;
import org.jacorb.notification.util.WildcardMap;
/**
* @author Alphonse Bendt
*/
public abstract class AbstractWildcardMapTestCase extends TestCase
{
protected WildcardMap objectUnderTest_;
////////////////////////////////////////
public void setUp() throws Exception
{
objectUnderTest_ = newWildcardMap();
}
abstract WildcardMap newWildcardMap();
public void testToString()
{
assertNotNull(objectUnderTest_.toString());
}
public void testBugInsertAfterSplit() throws Exception
{
objectUnderTest_.put("abcd", "ABCD");
objectUnderTest_.put("abef", "ABEF");
objectUnderTest_.put("ab", "AB");
assertEquals("ABCD", (objectUnderTest_.getWithExpansion("abcd"))[0]);
assertEquals("AB", (objectUnderTest_.getWithExpansion("ab"))[0]);
assertEquals("ABEF", (objectUnderTest_.getWithExpansion("abef"))[0]);
}
public void testRemove() throws Exception
{
objectUnderTest_.put("hallo", "Hallo");
objectUnderTest_.put("hallo2", "Hallo2");
objectUnderTest_.put("hallo3", "Hallo3");
objectUnderTest_.put("hallo4", "Hallo4");
Object _removed = objectUnderTest_.remove("hallo2");
assertEquals("Hallo2", _removed);
Object[] _result = objectUnderTest_.getWithExpansion("hallo2");
assertEquals(0, _result.length);
}
public void testClear() throws Exception
{
assertEquals(0, objectUnderTest_.getWithExpansion("hallo").length);
objectUnderTest_.put("hallo", "Hallo");
objectUnderTest_.put("hallo*", "Hallo2");
assertEquals(2, objectUnderTest_.getWithExpansion("hallo").length);
objectUnderTest_.clear();
assertEquals(0, objectUnderTest_.getWithExpansion("hallo").length);
}
public void testAddStar1() throws Exception
{
objectUnderTest_.put("ha*o", "default");
Object[] _result = objectUnderTest_.getWithExpansion("hallo");
assertTrue(_result.length == 1);
_result = objectUnderTest_.getWithExpansion("hall");
assertTrue(_result.length == 0);
_result = objectUnderTest_.getWithExpansion("hao");
assertTrue(_result.length == 1);
_result = objectUnderTest_.getWithExpansion("hadddddo");
assertTrue(_result.length == 1);
}
public void testAddStar2() throws Exception
{
objectUnderTest_.put("*abc*de", "value");
Object[] _result = objectUnderTest_.getWithExpansion("abcde");
assertTrue(_result.length == 1);
_result = objectUnderTest_.getWithExpansion("halloabcde");
assertTrue(_result.length == 1);
_result = objectUnderTest_.getWithExpansion("abcbla bla blade");
assertTrue(_result.length == 1);
_result = objectUnderTest_.getWithExpansion("abcde");
assertTrue(_result.length == 1);
_result = objectUnderTest_.getWithExpansion("ab cde");
assertEquals(0, _result.length);
}
public void testAddStar() throws Exception
{
objectUnderTest_.put("abc*", "value1");
objectUnderTest_.put("abcd", "value2");
Object[] _result = objectUnderTest_.getWithExpansion("abc");
assertEquals(1, _result.length);
assertEquals("value1", _result[0]);
_result = objectUnderTest_.getWithExpansion("abcd");
assertEquals(2, _result.length);
assertTrue("value1".equals(_result[0]) || "value1".equals(_result[1]));
assertTrue("value2".equals(_result[0]) || "value2".equals(_result[1]));
}
public void testSplitAfterStar() throws Exception
{
objectUnderTest_.put("abc*def", "value1");
objectUnderTest_.put("abc*ef", "value2");
objectUnderTest_.put("abc", "value3");
Object[] _result = objectUnderTest_.getWithExpansion("abcxyzdef");
assertEquals(2, _result.length);
_result = objectUnderTest_.getWithExpansion("abcxyzef");
assertEquals(1, _result.length);
_result = objectUnderTest_.getWithExpansion("abc");
assertEquals(1, _result.length);
}
public void testExactGet() throws Exception
{
objectUnderTest_.put("name1", "value1");
objectUnderTest_.put("name2", "value2");
objectUnderTest_.put("nane1", "value3");
objectUnderTest_.put("nane2", "value4");
objectUnderTest_.put("na*", "value5");
objectUnderTest_.put("na*e1", "value6");
assertEquals("value1", objectUnderTest_.getNoExpansion("name1"));
assertEquals("value2", objectUnderTest_.getNoExpansion("name2"));
assertEquals("value3", objectUnderTest_.getNoExpansion("nane1"));
assertEquals("value4", objectUnderTest_.getNoExpansion("nane2"));
assertEquals("value5", objectUnderTest_.getNoExpansion("na*"));
assertEquals("value6", objectUnderTest_.getNoExpansion("na*e1"));
}
public void testAdd() throws Exception
{
objectUnderTest_.put("name", "wert");
objectUnderTest_.put("java", "Programming Language");
Object _oldValue = objectUnderTest_.put("name", "neuer wert");
assertEquals("wert", _oldValue);
Object[] _value1 = objectUnderTest_.getWithExpansion("name");
Object[] _value2 = objectUnderTest_.getWithExpansion("java");
assertEquals(1, _value1.length);
assertEquals("neuer wert", _value1[0]);
assertEquals(1, _value2.length);
assertEquals("Programming Language", _value2[0]);
}
}