From ec03ca89226d8daa960910a07d62398f64556689 Mon Sep 17 00:00:00 2001 From: Michal Svec Date: Wed, 19 Feb 2014 14:34:28 +0100 Subject: [PATCH] Updated phpunit path and fixed upper/lowecase. Added exception for not-implemented sorter --- components/LogGenerator/LogGenerator.php | 17 ++- .../LogGenerator/Tests/LogGeneratorTest.php | 133 ++++++++++++++++++ .../LogGenerator/tests/LogGeneratorTest.php | 1 - phpunit.xml | 2 +- 4 files changed, 148 insertions(+), 5 deletions(-) create mode 100644 components/LogGenerator/Tests/LogGeneratorTest.php diff --git a/components/LogGenerator/LogGenerator.php b/components/LogGenerator/LogGenerator.php index dd3a27c..45ac048 100644 --- a/components/LogGenerator/LogGenerator.php +++ b/components/LogGenerator/LogGenerator.php @@ -95,16 +95,27 @@ protected function getTicketInformation($logList) return $ticketLog; } - + /** + * Orders that RFCs are 1st, bugfixes 2nd, support 3rd and the rest below + * + * @param array $issues + * @return array + */ private function orderByIssueType($issues) { - //trigger_error("Sorting not implemented!", E_USER_NOTICE); + trigger_error("Sorting not implemented!", E_USER_NOTICE); return $issues; } + /** + * P1 at the top, then P2, ..... + * + * @param $issues + * @return mixed + */ private function orderByPriority($issues) { - //trigger_error("Sorting not implemented!", E_USER_NOTICE); + trigger_error("Sorting not implemented!", E_USER_NOTICE); return $issues; } diff --git a/components/LogGenerator/Tests/LogGeneratorTest.php b/components/LogGenerator/Tests/LogGeneratorTest.php new file mode 100644 index 0000000..6fbf747 --- /dev/null +++ b/components/LogGenerator/Tests/LogGeneratorTest.php @@ -0,0 +1,133 @@ +getMockBuilder('JiraWrapper') + ->disableOriginalConstructor() + ->getMock(); + + $mock->expects($this->any()) + ->method('getTicketInfo') + ->will($this->returnValue($returnValue)); + + return $mock; + } + + /** + * @param int $count + * @return array + */ + private function getTicketData($count = 3) + { + $ticketData = array( + 1 => array( + 'revision' => 1, + 'author' => "user01", + 'date' => "2014-02-07T07:32:03.065437Z", + 'msg' => "[XXX-73] message" + ), + 2 => array( + 'revision' => 2, + 'author' => "user01", + 'date' => "2014-02-06T17:30:08.106324Z", + 'msg' => "Without ticket" + ), + 3 => array( + 'revision' => 3, + 'author' => "user01", + 'date' => "2014-02-06T17:30:08.106324Z", + 'msg' => "Without ticket 2" + ) + ); + + return array_slice($ticketData, 0, $count); + } + + public function testParseRevisionMessage_correctMessage() + { + $generator = new LogGenerator($this->getJiraMock()); + + $result = $generator->parseRevisionMessage("[TEST-12] testing\n- lorem ipsum"); + $this->assertEquals('TEST-12', $result['ticket']); + } + + public function testParseRevisionMessage_wrongMessage() + { + $generator = new LogGenerator($this->getJiraMock()); + + $result = $generator->parseRevisionMessage("testing\n- lorem ipsum"); + $this->assertEquals('', $result['ticket']); + + } + + public function testGenerateTicketLog_correctData() + { + $generator = new LogGenerator($this->getJiraMock()); + $ticketLog = $generator->generateTicketLog($this->getTicketData(3)); + + $this->assertArrayHasKey('ALL', $ticketLog); + $this->assertArrayHasKey('OTHER', $ticketLog); + $this->assertArrayHasKey('XXX-73', $ticketLog['OTHER']); + $this->assertCount(2, $ticketLog); + $this->assertCount(3, $ticketLog['ALL']); + $this->assertCount(3, $ticketLog['OTHER']); + } + + + public function testGenerateTicketLog_issueType_RFC() + { + $ticketInfo = array( + 'key' => 'XXX-73', + 'typeName' => 'RFC', + ); + + $generator = new LogGenerator($this->getJiraMock($ticketInfo)); + $ticketLog = $generator->generateTicketLog($this->getTicketData(1)); // temporary @ till sorting will be implemented + + $this->assertArrayHasKey('ALL', $ticketLog); + $this->assertArrayHasKey('RFC', $ticketLog); + $this->assertArrayHasKey('XXX-73', $ticketLog['RFC']); + $this->assertCount(2, $ticketLog); + $this->assertCount(1, $ticketLog['RFC']); + } + + public function testGenerateTicketLog_issueType_Bug() + { + $ticketInfo = array( + 'key' => 'XXX-73', + 'typeName' => 'Technical task', + ); + + $generator = new LogGenerator($this->getJiraMock($ticketInfo)); + $ticketLog = $generator->generateTicketLog($this->getTicketData(1)); // temporary @ till sorting will be implemented + + $this->assertArrayHasKey('ALL', $ticketLog); + $this->assertArrayHasKey('RFC', $ticketLog); + $this->assertArrayHasKey('XXX-73', $ticketLog['RFC']); + $this->assertCount(2, $ticketLog); + $this->assertCount(1, $ticketLog['RFC']); + } + + public function testGenerateTicketLog_issueType_Support() + { + $ticketInfo = array( + 'key' => 'XXX-73', + 'typeName' => 'Support Request', + ); + + $generator = new LogGenerator($this->getJiraMock($ticketInfo)); + $ticketLog = $generator->generateTicketLog($this->getTicketData(1)); // temporary @ till sorting will be implemented + + $this->assertArrayHasKey('ALL', $ticketLog); + $this->assertArrayHasKey('SUPPORT', $ticketLog); + $this->assertArrayHasKey('XXX-73', $ticketLog['SUPPORT']); + $this->assertCount(2, $ticketLog); + $this->assertCount(1, $ticketLog['SUPPORT']); + } +} \ No newline at end of file diff --git a/components/LogGenerator/tests/LogGeneratorTest.php b/components/LogGenerator/tests/LogGeneratorTest.php index f5d93b1..6fbf747 100644 --- a/components/LogGenerator/tests/LogGeneratorTest.php +++ b/components/LogGenerator/tests/LogGeneratorTest.php @@ -114,7 +114,6 @@ public function testGenerateTicketLog_issueType_Bug() $this->assertCount(1, $ticketLog['RFC']); } - public function testGenerateTicketLog_issueType_Support() { $ticketInfo = array( diff --git a/phpunit.xml b/phpunit.xml index 3a48f9b..c0bbcee 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -10,7 +10,7 @@ > - components/*/Tests/ + ./components/* \ No newline at end of file