UnidirTop unidir = newUnidir(unidirLevel);
String expectedStr = unidir.getStr();
String expectedName = unidir.getName();
HasOneToManyListLongPk parent = new HasOneToManyListLongPk();
parent.addBidirChild(bidirChild);
bidirChild.setParent(parent);
parent.addUnidirChild(unidir);
parent.setVal("yar");
startEnd.start();
pm.makePersistent(parent);
startEnd.end();
assertNotNull(bidirChild.getId());
assertNotNull(unidir.getId());
Entity bidirChildEntity = ds.get(KeyFactory.stringToKey(bidirChild.getId()));
assertNotNull(bidirChildEntity);
assertEquals(getEntityKind(BidirTopLongPk.class), bidirChildEntity.getKind());
assertEquals(bidirChild.getClass().getName(), bidirChildEntity.getProperty("DISCRIMINATOR"));
assertEquals("yam", bidirChildEntity.getProperty("childVal"));
assertEquals(KeyFactory.stringToKey(bidirChild.getId()), bidirChildEntity.getKey());
PolymorphicTestUtils.assertKeyParentEquals(parent.getClass(), parent.getId(), bidirChildEntity, bidirChild.getId());
if (isIndexed() && hasIndexPropertyInChild(pm)) {
assertEquals(0L, bidirChildEntity.getProperty("bidirChildren_INTEGER_IDX"));
}
Entity unidirChildEntity = ds.get(KeyFactory.stringToKey(unidir.getId()));
assertNotNull(unidirChildEntity);
assertEquals(getEntityKind(UnidirTop.class), unidirChildEntity.getKind());
int numProps = unidir.getPropertyCount();
if (hasIndexPropertyInChild(pm)) {
numProps += getIndexPropertyCount();
}
assertEquals(numProps, unidirChildEntity.getProperties().size());
assertEquals(unidirLevel.discriminator, unidirChildEntity.getProperty("TYPE"));
assertEquals(expectedStr, unidirChildEntity.getProperty("str"));
assertEquals(expectedName, unidirChildEntity.getProperty("name"));
assertEquals(KeyFactory.stringToKey(unidir.getId()), unidirChildEntity.getKey());
PolymorphicTestUtils.assertKeyParentEquals(parent.getClass(), parent.getId(), unidirChildEntity, unidir.getId());
if (isIndexed() && hasIndexPropertyInChild(pm)) {
assertEquals(0L, unidirChildEntity.getProperty("unidirChildren_INTEGER_IDX_longpk"));
}
Entity parentEntity = ds.get(KeyFactory.createKey(getEntityKind(parent.getClass()), parent.getId()));
assertNotNull(parentEntity);
assertEquals(3, parentEntity.getProperties().size());
assertEquals("yar", parentEntity.getProperty("val"));
assertEquals(Lists.newArrayList(bidirChildEntity.getKey()), parentEntity.getProperty("bidirChildren"));
assertEquals(Lists.newArrayList(unidirChildEntity.getKey()), parentEntity.getProperty("unidirChildren"));