@Test public void testRegisteringUserTypes() { BasicTypeRegistry registry = new BasicTypeRegistry(); registry.register(new TotallyIrrelevantUserType(), new String[] {"key"}); BasicType type = registry.getRegisteredType("key"); assertNotNull(type); assertEquals(CustomType.class, type.getClass()); assertEquals(TotallyIrrelevantUserType.class, ((CustomType) type).getUserType().getClass()); registry.register(new TotallyIrrelevantCompositeUserType(), new String[] {"key"}); type = registry.getRegisteredType("key"); assertNotNull(type); assertEquals(CompositeCustomType.class, type.getClass()); assertEquals( TotallyIrrelevantCompositeUserType.class, ((CompositeCustomType) type).getUserType().getClass()); type = registry.getRegisteredType(UUID.class.getName()); assertSame(UUIDBinaryType.INSTANCE, type); registry.register(new TotallyIrrelevantUserType(), new String[] {UUID.class.getName()}); type = registry.getRegisteredType(UUID.class.getName()); assertNotSame(UUIDBinaryType.INSTANCE, type); assertEquals(CustomType.class, type.getClass()); }
@Test public void testExpanding() { BasicTypeRegistry registry = new BasicTypeRegistry(); BasicType type = registry.getRegisteredType(SomeNoopType.INSTANCE.getName()); assertNull(type); registry.register(SomeNoopType.INSTANCE); type = registry.getRegisteredType(SomeNoopType.INSTANCE.getName()); assertNotNull(type); assertSame(SomeNoopType.INSTANCE, type); }
@Test public void testOverriding() { BasicTypeRegistry registry = new BasicTypeRegistry(); BasicType type = registry.getRegisteredType("uuid-binary"); assertSame(UUIDBinaryType.INSTANCE, type); type = registry.getRegisteredType(UUID.class.getName()); assertSame(UUIDBinaryType.INSTANCE, type); BasicType override = new UUIDCharType() { @Override protected boolean registerUnderJavaType() { return true; } }; registry.register(override); type = registry.getRegisteredType(UUID.class.getName()); assertNotSame(UUIDBinaryType.INSTANCE, type); assertSame(override, type); }