registry = new DefaultDataBindingExtensionPoint();
}
@SuppressWarnings("unchecked")
public void testRegistry() {
DataBinding db1 = createMock(DataBinding.class);
expect(db1.getAliases()).andReturn(new String[] {"db1"}).anyTimes();
expect(db1.getName()).andReturn(ContentHandler.class.getName()).anyTimes();
DataType<Class> dataType1 = new DataTypeImpl<Class>(ContentHandler.class, ContentHandler.class);
expect(db1.introspect(dataType1, null)).andReturn(true);
expect(db1.introspect(EasyMock.not(EasyMock.same(dataType1)), (Annotation[])EasyMock.isNull()))
.andReturn(false).anyTimes();
replay(db1);
registry.addDataBinding(db1);
DataBinding db2 = createMock(DataBinding.class);
expect(db2.getAliases()).andReturn(new String[] {"db2"}).anyTimes();
expect(db2.getName()).andReturn(XMLStreamReader.class.getName()).anyTimes();
DataType<Class> dataType2 = new DataTypeImpl<Class>(XMLStreamReader.class, XMLStreamReader.class);
expect(db2.introspect(dataType2, null)).andReturn(true);
expect(db2.introspect(EasyMock.not(EasyMock.same(dataType2)), (Annotation[])EasyMock.isNull()))
.andReturn(false).anyTimes();
replay(db2);
registry.addDataBinding(db2);
// Lookup by name
String name = db1.getName();
DataBinding db3 = registry.getDataBinding(name);
assertSame(db1, db3);
// Look up by alias
DataBinding db5 = registry.getDataBinding("db1");
assertSame(db1, db5);
DataType dt = new DataTypeImpl<Class>(ContentHandler.class, null);
registry.introspectType(dt, null);
assertEquals(dataType1.getLogical(), ContentHandler.class);
assertTrue(dt.getDataBinding().equalsIgnoreCase("java.lang.Object"));
registry.removeDataBinding(name);
DataBinding db4 = registry.getDataBinding(name);
assertNull(db4);
dt = new DataTypeImpl<Class>(null, String.class, null);
registry.introspectType(dt, null);
assertEquals("java.lang.Object", dt.getDataBinding());