public function testFetch()
 {
     $username = '******';
     $commitHash = 'commit-hash';
     $referenceName = 'HEAD';
     $factory = $this->getFactory();
     $user = $this->prophesize(UserInterface::class);
     $user->getUsername()->willReturn($username);
     $commit = $this->prophesize(CommitInterface::class);
     $commit->getHash()->willReturn($commitHash);
     $reference = new Reference();
     $reference->setPolicyCollection(new PolicyCollection());
     $reference->setUser($user->reveal());
     $reference->setCommit($commit->reveal());
     $reference->setName($referenceName);
     $database = $this->prophesize(DatabaseInterface::class);
     $database->fetch($referenceName, Reference::class)->willReturn($reference);
     $commitManager = $this->prophesize(CommitManagerInterface::class);
     $commitManager->fetch($commitHash, Commit::class)->willReturn($commit->reveal());
     $manager = new ReferenceManager($database->reveal(), $this->getUserProvider(), $factory, 'http://symcloud.lo');
     $reference = $manager->fetch($referenceName);
     $this->assertEquals($user->reveal(), $reference->getUser());
     $this->assertEquals($referenceName, $reference->getName());
     $this->assertEquals($commit->reveal(), $reference->getCommit());
 }