function testLoad() { $mapper1 = new MockMapper($this); $mapper1->setReturnValue('getIdentityKeyName', 'id'); $mapper2 = new MockMapper($this);//will be used by default $mapper2->setReturnValue('getIdentityKeyName', 'id'); $mapper = new EntityDataMapper(); $mapper->registerPartMapper('Part1', $mapper1); $part1 = new EntityPartStub1(); $part1->set('id', 10); $part2 = new EntityPartStub2(); $part2->set('id', 12); $entity = new Entity(); $entity->registerPart('Part1', $part1); $entity->registerPart('Part2', $part2); $object_mapper = new MockMapper($this); $this->toolkit->setReturnReference('createDataMapper', $object_mapper, array('ObjectMapper')); $this->toolkit->setReturnReference('createDataMapper', $mapper1, array('EntityPartStub1Mapper')); $this->toolkit->setReturnReference('createDataMapper', $mapper2, array('EntityPartStub2Mapper')); $record = new DataSpace(); $record->set('oid', $oid = 1000); $object_mapper->expectOnce('load', array($record, $entity)); $mapper1->expectOnce('load', array($record, $part1)); $mapper2->expectOnce('load', array($record, $part2)); $mapper->load($record, $entity); $this->assertEqual($part1->get('oid'), $oid); $this->assertEqual($part2->get('oid'), $oid); $object_mapper->tally(); $mapper1->tally(); $mapper2->tally(); $uow =& $this->toolkit->getUOW(); $this->assertTrue($uow->isExisting($part1)); $this->assertTrue($uow->isExisting($part2)); }