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); + } +}