From 2372312e1aa97f76e395d4d0cd08273a621592b0 Mon Sep 17 00:00:00 2001 From: lebaongan Date: Mon, 17 Aug 2020 12:09:50 +0700 Subject: [PATCH] Issue #4 Test C1 --- tests/C1/DumpExampleTest.php | 29 ++++++++++++ tests/C1/ProcessRunnerTest.php | 65 +++++++++++++++++++++++++++ tests/C1/UsernameValidationTest.php | 68 +++++++++++++++++++++++++++++ 3 files changed, 162 insertions(+) create mode 100644 tests/C1/DumpExampleTest.php create mode 100644 tests/C1/ProcessRunnerTest.php create mode 100644 tests/C1/UsernameValidationTest.php diff --git a/tests/C1/DumpExampleTest.php b/tests/C1/DumpExampleTest.php new file mode 100644 index 0000000..3dcc87b --- /dev/null +++ b/tests/C1/DumpExampleTest.php @@ -0,0 +1,29 @@ +examine(true); + + $expectedResult = 1; + $this->assertEquals($expectedResult, $actualResult); + } + + public function test_return_0_when_input_false() + { + $sut = new DumpExample; + + // Cause by division 0 + $this->expectError(); + + $sut->examine(false); + } +} diff --git a/tests/C1/ProcessRunnerTest.php b/tests/C1/ProcessRunnerTest.php new file mode 100644 index 0000000..406de78 --- /dev/null +++ b/tests/C1/ProcessRunnerTest.php @@ -0,0 +1,65 @@ +run(12, 1); + + $expectedResult = 2; + $this->assertEquals($expectedResult, $actualResult); + $this->assertTrue($sut->wasProcess1Called()); + $this->assertFalse($sut->wasProcess2Called()); + $this->assertTrue($sut->wasProcess3Called()); + $this->assertFalse($sut->wasProcess4Called()); + } + + public function test_return_2_when_pass_case_1_case_4() + { + $sut = new ProcessRunner; + + $actualResult = $sut->run(13, 1); + + $expectedResult = 2; + $this->assertEquals($expectedResult, $actualResult); + $this->assertTrue($sut->wasProcess1Called()); + $this->assertFalse($sut->wasProcess2Called()); + $this->assertFalse($sut->wasProcess3Called()); + $this->assertTrue($sut->wasProcess4Called()); + } + + public function test_return_2_when_pass_case_2_case_3() + { + $sut = new ProcessRunner; + + $actualResult = $sut->run(7, 6); + + $expectedResult = 2; + $this->assertEquals($expectedResult, $actualResult); + $this->assertFalse($sut->wasProcess1Called()); + $this->assertTrue($sut->wasProcess2Called()); + $this->assertTrue($sut->wasProcess3Called()); + $this->assertFalse($sut->wasProcess4Called()); + } + + public function test_return_2_WHEN_pass_case_2_case_4() + { + $sut = new ProcessRunner; + + $actualResult = $sut->run(1, 1); + + $expectedResult = 2; + $this->assertEquals($expectedResult, $actualResult); + $this->assertFalse($sut->wasProcess1Called()); + $this->assertTrue($sut->wasProcess2Called()); + $this->assertFalse($sut->wasProcess3Called()); + $this->assertTrue($sut->wasProcess4Called()); + } +} diff --git a/tests/C1/UsernameValidationTest.php b/tests/C1/UsernameValidationTest.php new file mode 100644 index 0000000..d445d22 --- /dev/null +++ b/tests/C1/UsernameValidationTest.php @@ -0,0 +1,68 @@ +isValid(''); + + $this->assertFalse($actualResult); + $this->assertEquals('Minimum length is 1', $sut->getMessage()); + } + + public function test_return_false_when_user_name_gt_max_length() + { + $sut = new UsernameValidation; + + $actualResult = $sut->isValid('012345678901234567890'); + + $this->assertFalse($actualResult); + $this->assertEquals('Maximum length is 20', $sut->getMessage()); + } + + public function test_return_false_when_user_name_not_allow_dash_begin_or_end() + { + $sut = new UsernameValidation; + + $actualResult = $sut->isValid('-1234'); + + $this->assertFalse($actualResult); + $this->assertEquals('- cannot appear at begin or end of name', $sut->getMessage()); + } + + public function test_return_false_when_user_name_not_allow_double_dash() + { + $sut = new UsernameValidation; + + $actualResult = $sut->isValid('1--2'); + + $this->assertFalse($actualResult); + $this->assertEquals('Only single - is allowed', $sut->getMessage()); + } + + public function test_return_false_when_user_name_not_allow_invalid_character() + { + $sut = new UsernameValidation; + + $actualResult = $sut->isValid('@'); + + $this->assertFalse($actualResult); + $this->assertEquals('Invalid character. Use only letters, digits and -', $sut->getMessage()); + } + + public function test_return_true_when_user_name_valid() + { + $sut = new UsernameValidation; + + $actualResult = $sut->isValid('lethibaongan'); + + $this->assertTrue($actualResult); + } +}