BoardApiController wrote update tests

Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
This commit is contained in:
Ryan Fletcher
2018-07-14 23:21:53 -04:00
committed by Julius Härtl
parent 1fe70568cb
commit 8dd732631a
2 changed files with 71 additions and 7 deletions

View File

@@ -132,7 +132,7 @@ class BoardApiController extends ApiController {
*/ */
public function update($title, $color, $archived = false) { public function update($title, $color, $archived = false) {
if (is_numeric($this->request->params['boardId']) === false) { if (is_numeric($this->request->getParam('boardId')) === false) {
return new DataResponse('board id must be a number', HTTP::STATUS_BAD_REQUEST); return new DataResponse('board id must be a number', HTTP::STATUS_BAD_REQUEST);
} }
@@ -140,15 +140,15 @@ class BoardApiController extends ApiController {
return new DataResponse('archived must be a boolean', HTTP::STATUS_BAD_REQUEST); return new DataResponse('archived must be a boolean', HTTP::STATUS_BAD_REQUEST);
} }
if ($title === false) { if ($title === false || $title === null) {
return new DataResponse('title must be provided', HTTP::STATUS_BAD_REQUEST); return new DataResponse('title must be provided', HTTP::STATUS_BAD_REQUEST);
} }
if ($color === false) { if ($color === false || $color === null) {
return new DataResponse('color must be provided', HTTP::STATUS_BAD_REQUEST); return new DataResponse('color must be provided', HTTP::STATUS_BAD_REQUEST);
} }
$board = $this->service->update($this->request->params['boardId'], $title, $color, $archived); $board = $this->service->update($this->request->getParam('boardId'), $title, $color, $archived);
if ($board === false || $board === null) { if ($board === false || $board === null) {
return new DataResponse('Board not found', HTTP::STATUS_NOT_FOUND); return new DataResponse('Board not found', HTTP::STATUS_NOT_FOUND);

View File

@@ -140,9 +140,73 @@ class BoardApiControllerTest extends \Test\TestCase {
$this->assertEquals($expected, $actual); $this->assertEquals($expected, $actual);
} }
// TODO: Write testUpdate()
public function testUpdate() { public function testUpdate() {
$this->assertEquals(false, true); $board = new Board();
$board->setId($this->exampleBoard['id']);
$board->setTitle($this->exampleBoard['title']);
$board->setColor($this->exampleBoard['color']);
$this->boardService->expects($this->once())
->method('update')
->willReturn($board);
$this->request->expects($this->any())
->method('getParam')
->with('boardId')
->will($this->returnValue($this->exampleBoard['id']));
$expected = new DataResponse($board, HTTP::STATUS_OK);
$actual = $this->controller->update($this->exampleBoard['title'], $this->exampleBoard['color']);
$this->assertEquals($expected, $actual);
}
public function testUpdateBadId() {
$expected = new DataResponse('board id must be a number', HTTP::STATUS_BAD_REQUEST);
$actual = $this->controller->update($this->exampleBoard['title'], $this->exampleBoard['color']);
$this->assertEquals($expected, $actual);
}
public function testUpdateBadArchived() {
$this->request->expects($this->any())
->method('getParam')
->with('boardId')
->will($this->returnValue($this->exampleBoard['id']));
$expected = new DataResponse('archived must be a boolean', HTTP::STATUS_BAD_REQUEST);
$actual = $this->controller->update($this->exampleBoard['title'], $this->exampleBoard['color'], 'Not a boolean value');
$this->assertEquals($expected, $actual);
}
public function testUpdateBadTitle() {
$this->request->expects($this->any())
->method('getParam')
->with('boardId')
->will($this->returnValue($this->exampleBoard['id']));
$expected = new DataResponse('title must be provided', HTTP::STATUS_BAD_REQUEST);
$actual = $this->controller->update(null, $this->exampleBoard['color']);
$this->assertEquals($expected, $actual);
}
public function testUpdateBadColor() {
$this->request->expects($this->any())
->method('getParam')
->with('boardId')
->will($this->returnValue($this->exampleBoard['id']));
$expected = new DataResponse('color must be provided', HTTP::STATUS_BAD_REQUEST);
$actual = $this->controller->update($this->exampleBoard['title'], null);
$this->assertEquals($expected, $actual);
}
public function testUpdateBoardNotFound() {
$this->request->expects($this->any())
->method('getParam')
->with('boardId')
->will($this->returnValue($this->exampleBoard['id']));
$expected = new DataResponse('Board not found', HTTP::STATUS_NOT_FOUND);
$actual = $this->controller->update($this->exampleBoard['title'], $this->exampleBoard['color']);
$this->assertEquals($expected, $actual);
} }
// TODO: Write testDelete() // TODO: Write testDelete()