diff options
author | Joas Schilling <coding@schilljs.com> | 2022-07-08 13:29:56 +0300 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2022-07-08 13:29:56 +0300 |
commit | 213134f5c0187959489afe926d0bd6c3124ed1d6 (patch) | |
tree | 58a3fdc59bb0222153abea7f46bb4650c2d887d6 /tests | |
parent | 79d896a9d318222e9e1b2c464aa6d1d72b6228f3 (diff) |
Fix the UI when a tag was deleted
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/Contoller/APIControllerTest.php | 48 |
1 files changed, 30 insertions, 18 deletions
diff --git a/tests/lib/Contoller/APIControllerTest.php b/tests/lib/Contoller/APIControllerTest.php index f91f111..1833c73 100644 --- a/tests/lib/Contoller/APIControllerTest.php +++ b/tests/lib/Contoller/APIControllerTest.php @@ -30,6 +30,7 @@ use OCP\BackgroundJob\IJobList; use OCP\IDBConnection; use OCP\IRequest; use OCP\SystemTag\ISystemTagManager; +use OCP\SystemTag\TagNotFoundException; /** * Class APIControllerTest @@ -163,48 +164,59 @@ class APIControllerTest extends \Test\TestCase { ], [ [ - [1, Constants::DAY, 1, 0, null], + ['tagid' => 1, 'timeunit' => Constants::DAY, 'timeamount' => 1, 'timeafter' => 0, 'hasJob' => null], ] ], [ [ - [1, Constants::DAY, 1, 0, null], - [2, Constants::WEEK, 2, 0, null], - [3, Constants::MONTH, 3, 1, null], - [4, Constants::YEAR, 4, 1, null], + ['tagid' => 1, 'timeunit' => Constants::DAY, 'timeamount' => 1, 'timeafter' => 0, 'hasJob' => null], + ['tagid' => 2, 'timeunit' => Constants::WEEK, 'timeamount' => 2, 'timeafter' => 0, 'hasJob' => null], + ['tagid' => 3, 'timeunit' => Constants::MONTH, 'timeamount' => 3, 'timeafter' => 1, 'hasJob' => null], + ['tagid' => 4, 'timeunit' => Constants::YEAR, 'timeamount' => 4, 'timeafter' => 1, 'hasJob' => null], ] ], + [ + [ + ['tagid' => 1, 'timeunit' => Constants::DAY, 'timeamount' => 1, 'timeafter' => 0, 'hasJob' => null], + ['tagid' => 2, 'timeunit' => Constants::WEEK, 'timeamount' => 2, 'timeafter' => 0, 'hasJob' => null, 'expected' => false], + ['tagid' => 3, 'timeunit' => Constants::MONTH, 'timeamount' => 3, 'timeafter' => 1, 'hasJob' => null, 'expected' => false], + ['tagid' => 4, 'timeunit' => Constants::YEAR, 'timeamount' => 4, 'timeafter' => 1, 'hasJob' => null], + ], + ['2', '3'], + ], ]; } /** * @dataProvider dataGetRetentions * @param array $data + * @param array $missingTags */ - public function testGetRetentions($data) { + public function testGetRetentions(array $data, array $missingTags = []): void { $expected = []; foreach ($data as $d) { $qb = $this->db->getQueryBuilder(); $qb->insert('retention') - ->setValue('tag_id', $qb->createNamedParameter($d[0])) - ->setValue('time_unit', $qb->createNamedParameter($d[1])) - ->setValue('time_amount', $qb->createNamedParameter($d[2])) - ->setValue('time_after', $qb->createNamedParameter($d[3])); + ->setValue('tag_id', $qb->createNamedParameter($d['tagid'])) + ->setValue('time_unit', $qb->createNamedParameter($d['timeunit'])) + ->setValue('time_amount', $qb->createNamedParameter($d['timeamount'])) + ->setValue('time_after', $qb->createNamedParameter($d['timeafter'])); $qb->execute(); $id = $qb->getLastInsertId(); - $expected[] = [ - 'id' => $id, - 'tagid' => $d[0], - 'timeunit' => $d[1], - 'timeamount' => $d[2], - 'timeafter' => $d[3], - 'hasJob' => null, - ]; + if ($d['expected'] ?? true) { + unset($d['expected']); + $expected[] = array_merge([ + 'id' => $id, + ], $d); + } } + $this->tagManager->method('getTagsByIds') + ->willThrowException(new TagNotFoundException('', 0, null, $missingTags)); + $response = $this->api->getRetentions(); $this->assertInstanceOf(Http\JSONResponse::class, $response); |