API endpoint for Timesheet entries (#332)

This commit is contained in:
Kevin Papst
2018-11-18 19:43:58 +01:00
committed by GitHub
parent 8cb52e22b1
commit b1c06eed7b
35 changed files with 1073 additions and 118 deletions

View File

@@ -35,7 +35,7 @@ class ProjectControllerTest extends APIControllerBaseTest
$this->assertInternalType('array', $result);
$this->assertNotEmpty($result);
$this->assertEquals(1, count($result));
$this->assertStructure($result[0]);
$this->assertStructure($result[0], false);
}
protected function loadProjectTestData(Client $client)
@@ -87,8 +87,8 @@ class ProjectControllerTest extends APIControllerBaseTest
for ($i = 0; $i < count($expected); $i++) {
$project = $result[$i];
$compare = $expected[$i];
$this->assertStructure($project, $compare[0]);
$this->assertEquals($compare[1], $project['customer_id']);
$this->assertStructure($project, false);
$this->assertEquals($compare[1], $project['customer']);
}
}
@@ -119,21 +119,22 @@ class ProjectControllerTest extends APIControllerBaseTest
$this->assertEntityNotFound(User::ROLE_USER, '/api/projects/2');
}
protected function assertStructure(array $result, $complete = true)
protected function assertStructure(array $result, $full = true)
{
$expectedKeys = [
'id', 'name', 'comment', 'visible', 'budget', 'order_number', 'customer_id'
'id', 'name', 'comment', 'visible', 'budget', 'order_number', 'customer'
];
if (!$complete) {
if (!$full) {
$expectedKeys = [
'id', 'name', 'visible', 'budget', 'customer_id'
'id', 'name', 'visible', 'customer'
];
}
$actual = array_keys($result);
sort($actual);
sort($expectedKeys);
$this->assertEquals(count($expectedKeys), count($actual), 'Project entity has different amount of keys');
$this->assertEquals($expectedKeys, $actual, 'Project structure does not match');
}
}