From ce7a6f9efd2e9a4f2121a48b4e1b771e2f0b6ba8 Mon Sep 17 00:00:00 2001 From: emkael Date: Thu, 14 May 2020 17:40:39 +0200 Subject: Test code refactor + BridgeNET test cases --- test/ApiTest.php | 35 +++++++++++++++++++++++++++-------- test/bridgenet.txt | 26 ++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 8 deletions(-) create mode 100644 test/bridgenet.txt diff --git a/test/ApiTest.php b/test/ApiTest.php index 158c9dc..0a8290c 100644 --- a/test/ApiTest.php +++ b/test/ApiTest.php @@ -4,10 +4,7 @@ use PHPUnit\Framework\TestCase; class ApiTest extends TestCase { - /** - * @dataProvider generatedDataProvider - */ - public function testRandomResults($input, $expected) { + private function _doTest($input, $expected) { require_once(dirname(__FILE__) . '/../http/api-inc.php'); if (is_string($expected)) { $this->expectException(ParametersException::class); @@ -18,18 +15,32 @@ class ApiTest extends TestCase { } } + /** + * @dataProvider generatedDataProvider + */ + public function testRandomResults($input, $expected) { + $this->_doTest($input, $expected); + } + /** * @dataProvider generatedDataProvider */ public function testBoardCounts($input, $expected) { $input['boards'] = strval($input['over39_boards'] ? rand(40, 60) : rand(1, 39)); unset($input['over39_boards']); - $this->testRandomResults($input, $expected); + $this->_doTest($input, $expected); } - public function generatedDataProvider() { - $contents = file(dirname(__FILE__) . '/tests.txt'); - $count = count($contents) / 2; + /** + * @dataProvider bridgenetDataProvider + */ + public function testBridgenet($input, $expected) { + $this->_doTest($input, $expected); + } + + private function _fileDataProvider($file) { + $contents = file(dirname(__FILE__) . '/' . $file); + $count = count($contents); for ($i = 0; $i < $count; $i += 2) { $input = []; parse_str(http_build_query(json_decode($contents[$i], TRUE)), $input); @@ -37,6 +48,14 @@ class ApiTest extends TestCase { } } + public function generatedDataProvider() { + yield from $this->_fileDataProvider('tests.txt'); + } + + public function bridgenetDataProvider() { + yield from $this->_fileDataProvider('bridgenet.txt'); + } + } ?> diff --git a/test/bridgenet.txt b/test/bridgenet.txt new file mode 100644 index 0000000..58c92bc --- /dev/null +++ b/test/bridgenet.txt @@ -0,0 +1,26 @@ +{"tournament_rank": 102, "contestants": 35, "over39_boards": 0, "title_sum": 400, "type": 2} +"Missing parameter: boards" +{"tournament_rank": 102, "contestants": 35, "boards": -1, "title_sum": 400, "type": 2} +"Parameter: boards has incorrect value (-1)" +{"tournament_rank": 102, "contestants": 35, "boards": 100, "title_sum": 400, "type": 4} +"Parameter: type has incorrect value (4) for BridgeNET tournament" +{"tournament_rank": 102, "contestants": 35, "boards": 27, "title_sum": 100, "type": 2} +{"sum": 74, "points": {"1": 5, "2": 5, "3": 4, "4": 4, "5": 3, "6": 3, "7": 2, "8": 1, "9": 1, "10": 1, "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1}} +{"tournament_rank": 102, "contestants": 35, "boards": 47, "title_sum": 100, "type": 2} +{"sum": 74, "points": {"1": 5, "2": 5, "3": 4, "4": 4, "5": 3, "6": 3, "7": 2, "8": 1, "9": 1, "10": 1, "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1}} +{"tournament_rank": 102, "contestants": 35, "boards": 0, "title_sum": 100, "type": 2} +{"sum": 0, "points": {}} +{"tournament_rank": 102, "contestants": 35, "boards": 1, "title_sum": 100, "type": 2} +{"sum": 36, "points": {"1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1}} +{"tournament_rank": 102, "contestants": 35, "boards": 20, "title_sum": 100, "type": 2} +{"sum": 62, "points": {"1": 4, "2": 4, "3": 3, "4": 3, "5": 2, "6": 2, "7": 2, "8": 1, "9": 1, "10": 1, "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1}} +{"tournament_rank": 102, "contestants": 20, "boards": 27, "title_sum": 50, "type": 1} +{"sum": 19, "points": {"1": 4, "2": 4, "3": 3, "4": 2, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1}} +{"tournament_rank": 102, "contestants": 20, "boards": 47, "title_sum": 50, "type": 1} +{"sum": 19, "points": {"1": 4, "2": 4, "3": 3, "4": 2, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1}} +{"tournament_rank": 102, "contestants": 20, "boards": 0, "title_sum": 50, "type": 1} +{"sum": 0, "points": {}} +{"tournament_rank": 102, "contestants": 20, "boards": 1, "title_sum": 50, "type": 1} +{"sum": 10, "points": {"1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1}} +{"tournament_rank": 102, "contestants": 20, "boards": 20, "title_sum": 50, "type": 1} +{"sum": 16, "points": {"1": 3, "2": 3, "3": 2, "4": 2, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1}} -- cgit v1.2.3