getId()); self::assertEquals('', $commit->getMessage()); self::assertEquals([], $commit->getFiles()); self::assertInstanceOf('\phpOMS\Utils\Git\Author', $commit->getAuthor()); self::assertInstanceOf('\phpOMS\Utils\Git\Branch', $commit->getBranch()); self::assertInstanceOf('\phpOMS\Utils\Git\Tag', $commit->getTag()); self::assertInstanceOf('\phpOMS\Utils\Git\Repository', $commit->getRepository()); self::assertInstanceOf('\DateTime', $commit->getDate()); } /** * @testdox A file can be added and returned * @covers phpOMS\Utils\Git\Commit * @group framework */ public function testFileInputOutput() : void { $commit = new Commit(); self::assertTrue($commit->addFile('/some/file/path')); self::assertTrue($commit->addFile('/some/file/path2')); self::assertEquals([ '/some/file/path' => [], '/some/file/path2' => [], ], $commit->getFiles()); } /** * @testdox A file can only be added one time * @covers phpOMS\Utils\Git\Commit * @group framework */ public function testInvalidOverwrite() : void { $commit = new Commit(); self::assertTrue($commit->addFile('/some/file/path')); self::assertFalse($commit->addFile('/some/file/path')); } /** * @testdox A file can be removed * @covers phpOMS\Utils\Git\Commit * @group framework */ public function testRemoveFile() : void { $commit = new Commit(); self::assertTrue($commit->addFile('/some/file/path')); self::assertTrue($commit->addFile('/some/file/path2')); self::assertTrue($commit->removeFile('/some/file/path')); self::assertEquals([ '/some/file/path2' => [], ], $commit->getFiles()); } /** * @testdox A none-existing file cannot be removed * @covers phpOMS\Utils\Git\Commit * @group framework */ public function testInvalidRemoveFile() : void { $commit = new Commit(); self::assertFalse($commit->removeFile('/some/file/path3')); } /** * @testdox A change can be added and returned * @covers phpOMS\Utils\Git\Commit * @group framework */ public function testChangeInputOutput() : void { $commit = new Commit(); $commit->addChanges(__DIR__ . '/CommitTest.php', 1, ' [ 1 => [ 'old' => ' 'test', ], ], ], $commit->getFiles()); } /** * @testdox Adding the same change throws a Exception * @covers phpOMS\Utils\Git\Commit * @group framework */ public function testDuplicateLineChange() : void { $this->expectException(\Exception::class); $commit = new Commit(); $commit->addChanges(__DIR__ . '/CommitTest.php', 1, 'addChanges(__DIR__ . '/CommitTest.php', 1, 'setMessage('My Message'); self::assertEquals('My Message', $commit->getMessage()); } /** * @testdox The author can be set and returned * @covers phpOMS\Utils\Git\Commit * @group framework */ public function testAuthorInputOutput() : void { $commit = new Commit(); $commit->setAuthor(new Author('Orange')); self::assertEquals('Orange', $commit->getAuthor()->name); } /** * @testdox The branch can be set and returned * @covers phpOMS\Utils\Git\Commit * @group framework */ public function testBranchInputOutput() : void { $commit = new Commit(); $commit->setBranch(new Branch('develop')); self::assertEquals('develop', $commit->getBranch()->name); } /** * @testdox The tag can be set and returned * @covers phpOMS\Utils\Git\Commit * @group framework */ public function testTagInputOutput() : void { $commit = new Commit(); $commit->setTag(new Tag('1.0.0')); self::assertEquals('1.0.0', $commit->getTag()->name); } /** * @testdox The date can be set and returned * @covers phpOMS\Utils\Git\Commit * @group framework */ public function testDateInputOutput() : void { $commit = new Commit(); $commit->setDate($date = new \DateTime('now')); self::assertEquals($date->format('Y-m-d'), $commit->getDate()->format('Y-m-d')); } /** * @testdox The repository can be set and returned * @covers phpOMS\Utils\Git\Commit * @group framework */ public function testRepositoryInputOutput() : void { $commit = new Commit(); $commit->setRepository(new Repository(\realpath(__DIR__ . '/../../../'))); self::assertEquals(\realpath(__DIR__ . '/../../../'), $commit->getRepository()->getPath()); } }