/**
  * {@inheritdoc}
  */
 public function create($name, UserInterface $user, CommitInterface $commit)
 {
     $reference = new Reference();
     $reference->setHash($this->createHash($user, $name));
     $reference->setName($name);
     $reference->setUser($user);
     $reference->setCommit($commit);
     return $this->database->store($reference);
 }
 /**
  * @dataProvider dataProvider
  * @param string $name
  * @param Commit $commit
  * @param Commit $commit2
  * @param Tree $tree
  * @param UserInterface $user
  */
 public function testUpdateReference($name, Commit $commit, Commit $commit2, Tree $tree, UserInterface $user)
 {
     $hash = '123-123-123';
     $database = $this->getDatabase();
     $database->store($tree);
     $database->store($commit);
     $database->store($commit2);
     $reference = new Reference();
     $reference->setHash($hash);
     $reference->setCommit($commit);
     $reference->setUser($user);
     $reference->setName($name);
     $database->store($reference);
     $referenceManager = $this->getReferenceManager();
     $reference2 = $referenceManager->update($reference, $commit2);
     $this->assertEquals($reference2, $reference);
     /** @var ReferenceInterface $result */
     $result = $database->fetch($hash, Reference::class);
     $this->assertEquals($hash, $result->getHash());
     $this->assertEquals($name, $result->getName());
     $this->assertEquals($commit2->getHash(), $result->getCommit()->getHash());
     $this->assertEquals($user->getUsername(), $result->getUser()->getUsername());
 }