public function testUserWasLastToEdit()
 {
     $user1 = User::newFromName("WikiPageEntityStoreTestUserWasLastToEdit1");
     $user2 = User::newFromName("WikiPageEntityStoreTestUserWasLastToEdit2");
     // initial revision
     $item = new Item(new ItemId('Q42'));
     $item->setLabel('en', 'one');
     $rev1 = $this->repo->saveEntity($item, 'testing 1', $user1, EDIT_NEW);
     $itemId = $item->getId();
     $this->assertTrue($this->repo->userWasLastToEdit($user1, $itemId, $rev1->getRevisionId()), 'user was first and last to edit');
     $this->assertFalse($this->repo->userWasLastToEdit($user2, $itemId, $rev1->getRevisionId()), 'user has not edited yet');
     // second edit by another user
     $item = new Item(new ItemId('Q42'));
     $item->setLabel('en', 'two');
     $rev2 = $this->repo->saveEntity($item, 'testing 2', $user2, EDIT_UPDATE);
     $this->assertFalse($this->repo->userWasLastToEdit($user1, $itemId, $rev1->getRevisionId()), 'original user was no longer last to edit');
     $this->assertTrue($this->repo->userWasLastToEdit($user2, $itemId, $rev2->getRevisionId()), 'second user has just edited');
     // subsequent edit by the original user
     $item = new Item(new ItemId('Q42'));
     $item->setLabel('en', 'three');
     $rev3 = $this->repo->saveEntity($item, 'testing 3', $user1, EDIT_UPDATE);
     $this->assertFalse($this->repo->userWasLastToEdit($user1, $itemId, $rev1->getRevisionId()), 'another user had edited at some point');
     $this->assertTrue($this->repo->userWasLastToEdit($user1, $itemId, $rev3->getRevisionId()), 'original user was last to edit');
     $this->assertFalse($this->repo->userWasLastToEdit($user2, $itemId, $rev2->getRevisionId()), 'other user was no longer last to edit');
 }