Update Board and remove 'abstract' from implementations

This commit is contained in:
Matthew Ross 2016-04-25 21:11:10 -04:00
parent 6562a149d9
commit 99d0c272f7
8 changed files with 71 additions and 19 deletions

View File

@ -23,10 +23,10 @@ class Activity extends BaseModel {
public function updateBean() {
}
public abstract function loadFromBean($container, $bean) {
public function loadFromBean($container, $bean) {
}
public abstract function loadFromJson($container, $obj) {
public function loadFromJson($container, $obj) {
}
}

View File

@ -10,10 +10,10 @@ class Attachment extends BaseModel {
public function updateBean() {
}
public abstract function loadFromBean($container, $bean) {
public function loadFromBean($container, $bean) {
}
public abstract function loadFromJson($container, $obj) {
public function loadFromJson($container, $obj) {
}
}

View File

@ -10,10 +10,10 @@ class AutoAction extends BaseModel {
public function updateBean() {
}
public abstract function loadFromBean($container, $bean) {
public function loadFromBean($container, $bean) {
}
public abstract function loadFromJson($container, $obj) {
public function loadFromJson($container, $obj) {
}
}

View File

@ -8,8 +8,11 @@ class Board extends BaseModel {
public $auto_actions = [];
public $users = [];
private $container;
public function __construct($container, $id = 0, $internal = false) {
parent::__construct('board', $id, $container);
$this->container = $container;
if ($internal) {
return;
@ -54,6 +57,34 @@ class Board extends BaseModel {
$this->loadPropertiesFrom($obj);
if (isset($obj->columns)) {
foreach($obj->columns as $item) {
$this->columns[] = Column::fromJson($this->container,
json_encode($item));
}
}
if (isset($obj->categories)) {
foreach($obj->categories as $item) {
$this->categories[] = Category::fromJson($this->container,
json_encode($item));
}
}
if (isset($obj->auto_actions)) {
foreach($obj->auto_actions as $item) {
$this->auto_actions[] = AutoAction::fromJson($this->container,
json_encode($item));
}
}
if (isset($obj->users)) {
foreach($obj->users as $item) {
$this->users[] = User::fromJson($this->container,
json_encode($item));
}
}
$this->updateBean();
}
@ -62,11 +93,5 @@ class Board extends BaseModel {
$this->name = $obj->name;
$this->is_active = $obj->is_active;
}
private function loadColumnsFrom($cols) {
foreach($cols as $col) {
$this->columns[] = Column::fromObject($col);
}
}
}

View File

@ -1,19 +1,30 @@
<?php
class Column extends BaseModel {
public function __construct($container, $id = 0) {
public function __construct($container, $id = 0, $internal = false) {
parent::__construct('column', $id, $container);
if ($internal) {
return;
}
$this->loadFromBean($this->bean);
}
public static function fromJson($container, $json) {
$instance = new self($container, 0, true);
$instance->loadFromJson($container, $json);
return $instance;
}
public function updateBean() {
}
public abstract function loadFromBean($container, $bean) {
public function loadFromBean($container, $bean) {
}
public abstract function loadFromJson($container, $obj) {
public function loadFromJson($container, $json) {
}
}

View File

@ -10,10 +10,10 @@ class Comment extends BaseModel {
public function updateBean() {
}
public abstract function loadFromBean($container, $bean) {
public function loadFromBean($container, $bean) {
}
public abstract function loadFromJson($container, $obj) {
public function loadFromJson($container, $obj) {
}
}

View File

@ -10,10 +10,10 @@ class User extends BaseModel {
public function updateBean() {
}
public abstract function loadFromBean($container, $bean) {
public function loadFromBean($container, $bean) {
}
public abstract function loadFromJson($container, $obj) {
public function loadFromJson($container, $obj) {
}
}

View File

@ -2,6 +2,7 @@
require_once 'Mocks.php';
class BoardTest extends PHPUnit_Framework_TestCase {
private $json = '{ "id": 1, "name": "test", "is_active": true }';
public static function setupBeforeClass() {
try {
@ -33,5 +34,20 @@ class BoardTest extends PHPUnit_Framework_TestCase {
$this->assertArraySubset($board->columns, []);
}
public function testCreateFromJson() {
$board = Board::fromJson(new ContainerMock(), null);
$this->assertTrue($board->id === 0);
$this->assertTrue($board->name === '');
$this->assertTrue($board->is_active === true);
$this->assertArraySubset($board->columns, []);
$board = Board::fromJson(new ContainerMock(), $this->json);
$this->assertTrue($board->id === 1);
$this->assertTrue($board->name === 'test');
$this->assertTrue($board->is_active === true);
}
}