From ba134cf33788a53847633ae82a22af7b14e30d3a Mon Sep 17 00:00:00 2001 From: sinkcup Date: Sat, 18 Dec 2021 19:04:03 +0800 Subject: [PATCH] feat: #16 delete issue --- .git-pre-commit | 2 +- .github/workflows/ci.yml | 2 +- src/Issue.php | 10 ++++++++++ tests/Unit/IssueTest.php | 19 +++++++++++++++++++ tests/data/DeleteIssueResponse.json | 5 +++++ 5 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 tests/data/DeleteIssueResponse.json diff --git a/.git-pre-commit b/.git-pre-commit index f1038e6..8c3ac2d 100755 --- a/.git-pre-commit +++ b/.git-pre-commit @@ -6,4 +6,4 @@ for file in $FILES; do ./vendor/bin/phpcs --extensions=php --standard=PSR12 "$file" ./vendor/bin/phpmd "$file" text phpmd.xml done -XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-text --coverage-filter=src/ tests/ +XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-text --coverage-filter=src/ tests/Unit/ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bd3cde1..0d913e3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: run: ./vendor/bin/phpmd . text phpmd.xml --exclude vendor - name: Test - run: XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-clover coverage.xml --coverage-filter src/ tests/ + run: XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-clover coverage.xml --coverage-filter src/ tests/Unit - name: codecov uses: codecov/codecov-action@v2 diff --git a/src/Issue.php b/src/Issue.php index 95ff8df..3b64585 100644 --- a/src/Issue.php +++ b/src/Issue.php @@ -61,4 +61,14 @@ public function create(array $data) $response = $this->core->request('CreateIssue', $data); return $response['Issue']; } + + public function delete(array $data) + { + $this->validate($data, [ + 'ProjectName' => 'string|required', + 'IssueCode' => 'integer|required', + ]); + $this->core->request('DeleteIssue', $data); + return true; + } } diff --git a/tests/Unit/IssueTest.php b/tests/Unit/IssueTest.php index 53b28d1..da3bbad 100644 --- a/tests/Unit/IssueTest.php +++ b/tests/Unit/IssueTest.php @@ -90,4 +90,23 @@ public function testCreateSuccessWithAllParams() $result = $issue->create($data); $this->assertEquals($response['Issue'], $result); } + + public function testDelete() + { + $response = json_decode( + file_get_contents($this->dataPath('DeleteIssueResponse.json')), + true + )['Response']; + $data = [ + 'ProjectName' => $this->projectName, + 'IssueCode' => $this->faker->randomNumber(), + ]; + $this->coreMock->shouldReceive('request')->times(1)->withArgs([ + 'DeleteIssue', + $data + ])->andReturn($response); + + $issue = new Issue($this->token, $this->coreMock); + $this->assertTrue($issue->delete($data)); + } } diff --git a/tests/data/DeleteIssueResponse.json b/tests/data/DeleteIssueResponse.json new file mode 100644 index 0000000..eecbf66 --- /dev/null +++ b/tests/data/DeleteIssueResponse.json @@ -0,0 +1,5 @@ +{ + "Response": { + "RequestId": "135f80f0-0577-6421-293e-ec231ff3b337" + } +}