package org.apache.commons.collections4.bidimap;
import org.apache.commons.collections4.OrderedBidiMap;
import java.util.SortedMap;
import java.util.TreeMap;
/**
* Test class for AbstractOrderedBidiMapDecorator.
*
* @version $Id$
*/
public class AbstractOrderedBidiMapDecoratorTest<K, V> extends AbstractOrderedBidiMapTest<K, V> {
public AbstractOrderedBidiMapDecoratorTest(final String testName) {
super(testName);
}
/**
* {@inheritDoc}
*/
@Override
public OrderedBidiMap<K, V> makeObject() {
return new TestOrderedBidiMap<K, V>();
}
@Override
public SortedMap<K, V> makeConfirmedMap() {
return new TreeMap<K, V>();
}
@Override
public boolean isAllowNullKey() {
return false;
}
@Override
public boolean isAllowNullValue() {
return false;
}
@Override
public boolean isSetValueSupported() {
return true;
}
/**
* Simple class to actually test.
*/
private static final class TestOrderedBidiMap<K, V> extends AbstractOrderedBidiMapDecorator<K, V> {
private TestOrderedBidiMap<V, K> inverse = null;
public TestOrderedBidiMap() {
super(new org.apache.commons.collections4.bidimap.DualTreeBidiMap<K, V>());
}
public TestOrderedBidiMap(final OrderedBidiMap<K, V> map) {
super(map);
}
@Override
public OrderedBidiMap<V, K> inverseBidiMap() {
if ((inverse) == null) {
inverse = new TestOrderedBidiMap<V, K>(decorated().inverseBidiMap());
inverse.inverse = this;
}
return inverse;
}
}
}