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));
  }