Add Issue Tracker model and update tests

This commit is contained in:
kiswa 2016-08-25 21:19:20 +00:00
parent a6dcab34f2
commit 09dc212e46
5 changed files with 105 additions and 9 deletions

View File

@ -3,6 +3,7 @@ class IssueTracker extends BaseModel {
public $id = 0;
public $url = '';
public $regex = '';
public $board_id = 0;
public function __construct($container, $id = 0) {
parent::__construct('issue_tracker', $id, $container);
@ -52,6 +53,7 @@ class IssueTracker extends BaseModel {
$this->id = (int) $obj->id;
$this->url = $obj->url;
$this->regex = $obj->regex;
$this->board_id = (int) $obj->board_id;
} catch (Exception $ex) {
$this->is_valid = false;
}

View File

@ -88,6 +88,7 @@ class DataMock {
$board->columns[] = DataMock::getColumn();
$board->categories[] = DataMock::getCategory();
$board->auto_actions[] = DataMock::getAutoAction();
$board->issue_trackers[] = DataMock::getIssueTracker();
$user = DataMock::getUser();
$user->id = 1;
$board->users[] = $user;
@ -110,6 +111,7 @@ class DataMock {
$category = new stdClass();
$category->id = 1;
$category->name = 'cat1';
$category->default_task_color = '#ffffe0';
$category->board_id = 1;
return $category;
@ -127,6 +129,16 @@ class DataMock {
return $auto_action;
}
public static function getIssueTracker() {
$issue_tracker = new stdClass();
$issue_tracker->id = 1;
$issue_tracker->board_id = 1;
$issue_tracker->url = 'testUrl';
$issue_tracker->regex = 'testRegex';
return $issue_tracker;
}
public static function getUser() {
$user = new stdClass();
$user->id = 2;

View File

@ -25,6 +25,7 @@ class BoardTest extends PHPUnit_Framework_TestCase {
$this->bean->xownColumnList = $board->columns;
$this->bean->xownCategoryList = $board->categories;
$this->bean->xownAutoActionList = $board->auto_actions;
$this->bean->xownIssueTrackerList = $board->issue_trackers;
$this->bean->sharedUserList = $board->users;
}
@ -35,6 +36,7 @@ class BoardTest extends PHPUnit_Framework_TestCase {
$this->assertArraySubset($board->columns, []);
$this->assertArraySubset($board->categories, []);
$this->assertArraySubset($board->auto_actions, []);
$this->assertArraySubset($board->issue_trackers, []);
$this->assertArraySubset($board->users, []);
}

View File

@ -63,21 +63,25 @@ class CategoryTest extends PHPUnit_Framework_TestCase {
$category->updateBean();
$bean = $category->getBean();
$this->assertTrue($bean->id === $category->id);
$this->assertTrue($bean->name === $category->name);
$this->assertTrue($bean->board_id === $category->board_id);
$this->assertEquals($bean->id, $category->id);
$this->assertEquals($bean->name, $category->name);
$this->assertEquals($bean->default_task_color,
$category->default_task_color);
$this->assertEquals($bean->board_id, $category->board_id);
}
private function assertDefaultProperties($category) {
$this->assertTrue($category->id === 0);
$this->assertTrue($category->name === '');
$this->assertTrue($category->board_id === 0);
$this->assertEquals(0, $category->id);
$this->assertEquals('', $category->name);
$this->assertEquals('', $category->default_task_color);
$this->assertEquals(0, $category->board_id);
}
private function assertMockProperties($category) {
$this->assertTrue($category->id === 1);
$this->assertTrue($category->name === 'cat1');
$this->assertTrue($category->board_id === 1);
$this->assertEquals(1, $category->id);
$this->assertEquals('cat1', $category->name);
$this->assertEquals('#ffffe0', $category->default_task_color);
$this->assertEquals(1, $category->board_id);
}
}

View File

@ -0,0 +1,76 @@
<?php
require_once __DIR__ . '/../Mocks.php';
/**
* @group single
*/
class IssueTrackerTest extends PHPUnit_Framework_TestCase {
private $json = '';
private $bean;
public static function setupBeforeClass() {
try {
RedBeanPHP\R::setup('sqlite:tests.db');
} catch (Exception $ex) { }
}
protected function setUp() {
RedbeanPHP\R::nuke();
if ($this->json !== '') {
return;
}
$tracker = DataMock::getIssueTracker();
$this->json = json_encode($tracker);
$this->bean = $tracker;
}
public function testCreateIssueTracker() {
$tracker = new IssueTracker(new ContainerMock());
$this->assertDefaultProperties($tracker);
}
public function testSaveIssueTracker() {
$tracker = new IssueTracker(new ContainerMock());
$this->assertTrue($tracker->save());
}
public function testLoadFromBean() {
$tracker = new IssueTracker(new ContainerMock());
$tracker->loadFromBean(null);
$this->assertDefaultProperties($tracker);
$tracker->loadFromBean($this->bean);
$this->assertMockProperties($tracker);
}
public function testLoadFromJson() {
$tracker = new IssueTracker(new ContainerMock());
$tracker->loadFromJson('');
$this->assertDefaultProperties($tracker);
$tracker->loadFromJson('{"id":0}');
$this->assertDefaultProperties($tracker);
$tracker->loadFromJson($this->json);
$this->assertMockProperties($tracker);
}
private function assertDefaultProperties($tracker) {
$this->assertEquals(0, $tracker->id);
$this->assertEquals('', $tracker->url);
$this->assertEquals('', $tracker->regex);
$this->assertEquals(0, $tracker->board_id);
}
private function assertMockProperties($tracker) {
$this->assertEquals(1, $tracker->id);
$this->assertEquals('testUrl', $tracker->url);
$this->assertEquals('testRegex', $tracker->regex);
$this->assertEquals(1, $tracker->board_id);
}
}