Flight f = newFlight();
HasKeyPkJDO hasKeyPk = new HasKeyPkJDO();
hasKeyPk.setStr("yag");
HasOneToManyStringPkListJDO parent = new HasOneToManyStringPkListJDO();
parent.setId("yar");
parent.addBidirChild(bidirChild);
bidirChild.setParent(parent);
parent.addFlight(f);
parent.addHasKeyPk(hasKeyPk);
parent.setVal("yar");
startEnd.start();
pm.makePersistent(parent);
startEnd.end();
assertNotNull(bidirChild.getId());
assertNotNull(f.getId());
assertNotNull(hasKeyPk.getKey());
Entity bidirChildEntity = ds.get(KeyFactory.stringToKey(bidirChild.getId()));
assertNotNull(bidirChildEntity);
assertEquals("yam", bidirChildEntity.getProperty("childVal"));
assertEquals(KeyFactory.stringToKey(bidirChild.getId()), bidirChildEntity.getKey());
assertKeyParentEquals(parent.getClass(), parent.getId(), bidirChildEntity, bidirChild.getId());
// TODO This is only for older storage versions; check owner relation List positions for current
if (isIndexed() &&
getStorageVersion(pm).ordinal() < StorageVersion.READ_OWNED_CHILD_KEYS_FROM_PARENTS.ordinal()) {
assertEquals(0L, bidirChildEntity.getProperty("bidirChildren_INTEGER_IDX"));
}
Entity flightEntity = ds.get(KeyFactory.stringToKey(f.getId()));
assertNotNull(flightEntity);
assertEquals("bos", flightEntity.getProperty("origin"));
assertEquals("mia", flightEntity.getProperty("dest"));
assertEquals("jimmy", flightEntity.getProperty("name"));
assertEquals(KeyFactory.stringToKey(f.getId()), flightEntity.getKey());
assertKeyParentEquals(parent.getClass(), parent.getId(), flightEntity, f.getId());
if (isIndexed() &&
getStorageVersion(pm).ordinal() < StorageVersion.READ_OWNED_CHILD_KEYS_FROM_PARENTS.ordinal()) {
assertEquals(0L, flightEntity.getProperty("flights_INTEGER_IDX"));
}
Entity hasKeyPkEntity = ds.get(hasKeyPk.getKey());
assertNotNull(hasKeyPkEntity);
assertEquals("yag", hasKeyPkEntity.getProperty("str"));
assertEquals(hasKeyPk.getKey(), hasKeyPkEntity.getKey());
assertKeyParentEquals(parent.getClass(), parent.getId(), hasKeyPkEntity, hasKeyPk.getKey());
if (isIndexed() &&
getStorageVersion(pm).ordinal() < StorageVersion.READ_OWNED_CHILD_KEYS_FROM_PARENTS.ordinal()) {
assertEquals(0L, hasKeyPkEntity.getProperty("hasKeyPks_INTEGER_IDX"));
}
Entity parentEntity = ds.get(TestUtils.createKey(parent, parent.getId()));
assertNotNull(parentEntity);
assertEquals(4, parentEntity.getProperties().size());
assertEquals("yar", parentEntity.getProperty("val"));
assertEquals(Lists.newArrayList(bidirChildEntity.getKey()), parentEntity.getProperty("bidirChildren"));
assertEquals(Lists.newArrayList(flightEntity.getKey()), parentEntity.getProperty("flights"));