public function testAuthor()
{
$expectedName = 'Author Name';
$expectedEmail = '*****@*****.**';
$gitRoot = $this->shmock('\\Bart\\Git\\GitRoot', function ($root) use($expectedName, $expectedEmail) {
$nameResultStub = new StubbedCommandResult([$expectedName], 0);
$emailResultStub = new StubbedCommandResult([$expectedEmail], 0);
$root->order_matters();
$root->getCommandResult("show -s --no-color --format='%%aN' HEAD")->once()->return_value($nameResultStub);
$root->getCommandResult("show -s --no-color --format='%%aE' HEAD")->once()->return_value($emailResultStub);
});
$commit = new Commit($gitRoot, 'HEAD');
$person = $commit->author();
$actualName = $person->getName();
$actualEmail = $person->getEmail();
$this->assertSame($expectedName, $actualName);
$this->assertSame($expectedEmail, $actualEmail);
}