public EntityManagerImpl(Keyspace keyspace, EntityManagerFactory emf, Class<?>... classes) { this(keyspace, null, null, null); for (Class<?> clazz : classes) { cacheMgr.initializeCacheForClass(clazz); } this.emf = emf; }
private void initializeClasspath(AnnotationScanner scanner, String classpathPrefix) { Set<Class<?>> classSet = scanner.scan(classpathPrefix, Entity.class); for (Class<?> clazz : classSet) { cacheMgr.initializeCacheForClass(clazz); } }
@Before public void setupTest() { cacheMgr.initializeCacheForClass(MyTestBean.class); cacheMgr.initializeCacheForClass(MyCustomIdBean.class); cacheMgr.initializeCacheForClass(MyComplexEntity.class); cacheMgr.initializeCacheForClass(MyCompositeEntity.class); cacheMgr.initializeCacheForClass(MyConvertedCollectionBean.class); cacheMgr.initializeCacheForClass(AnonymousWithLongSerializer.class); }
@Test(expected = HectorObjectMapperException.class) public void testDupeEntityColumnFamilyMapping() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); cacheMgr.initializeCacheForClass(MyDupeCF1.class); cacheMgr.initializeCacheForClass(MyDupeCF2.class); }
@Test(expected = HectorObjectMapperException.class) public void testGetColFamMapDefByClassAnonymousSubclassNotOK() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); cacheMgr.initializeCacheForClass(MyTestBean.class); assertTrue(tmplMap.get(2L).getClass().isAnonymousClass()); cacheMgr.getCfMapDef(tmplMap.get(2L).getClass(), true); }
@Test(expected = HectorObjectMapperException.class) public void testBadIdGetterSetter() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); cacheMgr.initializeCacheForClass(MyMissingIdSetterBean.class); }
@Test(expected = HectorObjectMapperException.class) public void testBadPojo() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); cacheMgr.initializeCacheForClass(MyBadTestBean.class); }
@Test(expected = HectorObjectMapperException.class) public void testParsingComplexIdFieldMissing() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); cacheMgr.initializeCacheForClass(MyComplexEntityMissingIdField.class); }
@Test(expected = HectorObjectMapperException.class) public void testParsingComplexIdFieldWrong() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); cacheMgr.initializeCacheForClass(MyComplexEntityWrongIdField.class); }
@Test public void testGetColFamMapDefByClassAnonymousClassOK() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); cacheMgr.initializeCacheForClass(tmplMap.get(1L).getClass()); assertTrue(tmplMap.get(1L).getClass().isAnonymousClass()); CFMappingDef<?> cfMapDef = cacheMgr.getCfMapDef(tmplMap.get(1L).getClass(), false); assertNotNull(cfMapDef); assertEquals(MyTestBean.class, cfMapDef.getEffectiveClass()); }
@Test(expected = HectorObjectMapperException.class) public void testGetColFamMapDefByClassSubclassNotOK() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); cacheMgr.initializeCacheForClass(MyTestBean.class); NewBean obj = new NewBean(); assertFalse(obj.getClass().isAnonymousClass()); cacheMgr.getCfMapDef(obj.getClass(), true); }
@Test @Ignore("looks as if this isn't finished - investigate") public void testInheritanceOfEntityWithNoProperties() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); cacheMgr.initializeCacheForClass(MyBlueTestBean.class); }
@Ignore("Cannot enable until method annotations are supported by ClassCacheMgr") @Test(expected = HectorObjectMapperException.class) public void testMissingIdAnno() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); cacheMgr.initializeCacheForClass(MyMissingIdAnno.class); }
@Test public void testParsingComplexEntity() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); CFMappingDef<MyComplexEntity> cfMapDef = cacheMgr.initializeCacheForClass(MyComplexEntity.class); KeyDefinition keyDef = cfMapDef.getKeyDef(); assertEquals(MyCompositePK.class, keyDef.getPkClazz()); assertEquals(2, keyDef.getIdPropertyMap().size()); assertEquals(keyDef.getIdPropertyMap().size(), keyDef.getPropertyDescriptorMap().size()); }
@Test public void testInheritanceOfNonEntity() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); CFMappingDef<MyPurpleTestBean> cfMapDef = cacheMgr.initializeCacheForClass(MyPurpleTestBean.class); assertEquals(2, cfMapDef.getAllProperties().size()); assertNull(cfMapDef.getCfBaseMapDef()); assertEquals(MyPurpleTestBean.class, cfMapDef.getEffectiveClass()); }
@Test public void testGetColFamMapDefByClass() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); cacheMgr.initializeCacheForClass(MyTestBean.class); CFMappingDef<?> cfMapDef = cacheMgr.getCfMapDef(MyTestBean.class, false); assertNotNull(cfMapDef); assertEquals( "TestBeanColumnFamily", cfMapDef.getColFamName()); assertNotNull( "Column family not registered properly", cacheMgr.getCfMapDef("TestBeanColumnFamily", false)); assertEquals(MyTestBean.class, cfMapDef.getEffectiveClass()); assertEquals("did not find @Id properly", "baseId", cfMapDef.getKeyDef().getIdPropertyMap() .values().iterator().next() .getPropDesc().getName()); assertEquals("did not setup properties properly", ColorConverter.class, cfMapDef.getPropMapByColumnName("color").getConverter().getClass()); }
@Test public void testParsingInheritedEntityWithoutAnonymousAddHandler() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); CFMappingDef<Chair> cfMapDef = cacheMgr.initializeCacheForClass(Chair.class); assertFalse("mapping should not indicate there is an anonymous handler", cfMapDef.isAnonymousHandlerAvailable()); assertFalse( "should not be using column slice because of inheritance", cfMapDef.isColumnSliceRequired()); assertNull("should not have set the slice column array because of inheritance", cfMapDef.getSliceColumnNameArr()); }
@Test public void testCollectionWithCustomConverterPropertyHandling() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); CFMappingDef<CustomConvertedCollectionBean> cfMapDef = cacheMgr.initializeCacheForClass(CustomConvertedCollectionBean.class); PropertyMappingDefinition md = cfMapDef.getPropMapByPropName("mySet"); assertEquals( null, md.getCollectionType() ); assertEquals( "mySet", md.getColName()); assertNotNull( "should be using slice query with custom converted collection", cfMapDef.getSliceColumnNameArr()); } }
@Test public void testCollectionPropertyHandling() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); CFMappingDef<CollectionBean> cfMapDef = cacheMgr.initializeCacheForClass(CollectionBean.class); PropertyMappingDefinition md = cfMapDef.getPropMapByPropName("mySet"); assertEquals( Set.class, md.getCollectionType() ); assertEquals( "mySet", md.getColName()); assertNull( "should not be using slice query with List collection", cfMapDef.getSliceColumnNameArr()); }
@Test public void testParsingEntityWithoutAnonymousAddHandler() { ClassCacheMgr cacheMgr = new ClassCacheMgr(); CFMappingDef<MyTestBeanNoAnonymous> cfMapDef = cacheMgr.initializeCacheForClass(MyTestBeanNoAnonymous.class); assertFalse("mapping should not indicate there is an anonymous handler", cfMapDef.isAnonymousHandlerAvailable()); assertNotNull("should have set the slice column array", cfMapDef.getSliceColumnNameArr()); assertEquals(1, cfMapDef.getSliceColumnNameArr().length); assertEquals("lp1", cfMapDef.getSliceColumnNameArr()[0]); }