Add Issue Tracker model and update tests
This commit is contained in:
parent
a6dcab34f2
commit
09dc212e46
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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, []);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
76
test/api/models/IssueTrackerTest.php
Normal file
76
test/api/models/IssueTrackerTest.php
Normal 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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user