parse(); $this->assertEquals([ ['pass' => true, 'severity' => 'success', 'message' => 'SomeTest::testAnother'], ['pass' => false, 'severity' => 'fail', 'message' => ''], ], $result); $this->assertEquals(1, $parser->getTotalFailures()); } public function testSimple2() { $content = <<parse(); $this->assertEquals([ ['pass' => true, 'severity' => 'success', 'message' => 'SomeTest::testAnother'], ['pass' => false, 'severity' => 'fail', 'message' => ''], ], $result); $this->assertEquals(1, $parser->getTotalFailures()); } /** * @expectedException \Exception * @expectedExceptionMessageRegExp /No TAP/ */ public function testNoTapData() { $content = <<parse(); } public function testTapCoverage() { $content = <<parse(); $this->assertEquals([], $result); } public function testTapCoverageXdebug() { $content = <<parse(); $this->assertEquals([], $result); } /** * @expectedException \Exception * @expectedExceptionMessageRegExp /Duplicated TAP/ */ public function testDuplicateOutput() { $content = <<parse(); } public function testSuiteAndTest() { $content = <<parse(); $this->assertEquals([ ['pass' => true, 'severity' => 'success', 'message' => 'SomeTest::testAnother',], ['pass' => false, 'severity' => 'fail', 'message' => 'Failure: SomeTest::testAnother'], ['pass' => false, 'severity' => 'error', 'message' => 'Error: SomeTest::testAnother'], ], $result); $this->assertEquals(2, $parser->getTotalFailures()); } public function testSkipped() { $content = <<parse(); $this->assertEquals([ ['pass' => true, 'severity' => 'skipped', 'message' => ''], ['pass' => true, 'severity' => 'skipped', 'message' => 'foobar'], ['pass' => true, 'severity' => 'skipped', 'message' => 'foo, skipped: bar'], ], $result); $this->assertEquals(0, $parser->getTotalFailures()); } public function testTodo() { $content = <<parse(); $this->assertEquals([ ['pass' => true, 'severity' => 'todo', 'message' => 'SomeTest::testAnother, todo: really implement this test'], ['pass' => true, 'severity' => 'todo', 'message' => 'really implement this test'], ['pass' => true, 'severity' => 'todo', 'message' => 'this is a message, todo: really implement this test'], ['pass' => true, 'severity' => 'todo', 'message' => ''], ], $result); $this->assertEquals(0, $parser->getTotalFailures()); } public function testYamlDiagnostic() { // From https://phpunit.de/manual/current/en/logging.html#logging.tap $content = <<parse(); $this->assertEquals([[ 'pass' => false, 'severity' => 'fail', 'message' => 'FOO' . PHP_EOL . 'BAR', ]], $result); $this->assertEquals(1, $parser->getTotalFailures()); } public function testFailureAndError() { // From https://phpunit.de/manual/current/en/logging.html#logging.tap $content = <<parse(); $this->assertEquals([[ 'pass' => false, 'severity' => 'fail', 'message' => 'Failure: testFailure::FailureErrorTest', ], [ 'pass' => false, 'severity' => 'error', 'message' => 'Error: testError::FailureErrorTest', ]], $result); $this->assertEquals(2, $parser->getTotalFailures()); } /** * @expectedException \Exception */ public function testGarbage() { $content = "Garbage !"; $parser = new TapParser($content); $parser->parse(); } /** * @expectedException \Exception */ public function testInvalidTestCount() { $content = <<parse(); } /** * @expectedException \Exception */ public function testEndlessYaml() { $content = <<parse(); } public function testCodeception() { $content = <<< TAP TAP version 13 ok 1 - try to access the dashboard as a guest (Auth/GuestAccessDashboardAndRedirectCept) ok 2 - see the login page (Auth/SeeLoginCept) ok 3 - click forgot password and see the email form (Auth/SeeLoginForgotPasswordCept) ok 4 - see powered by runmybusiness branding (Auth/ShouldSeePoweredByBrandingCept) ok 5 - submit invalid credentials (Auth/SubmitLoginAndFailCept) ok 6 - submit valid credentials and see the dashboard (Auth/SubmitLoginAndSucceedCept) 1..6 TAP; $parser = new TapParser($content); $result = $parser->parse(); $this->assertEquals([ ['pass' => true, 'severity' => 'success', 'message' => 'try to access the dashboard as a guest (Auth/GuestAccessDashboardAndRedirectCept)'], ['pass' => true, 'severity' => 'success', 'message' => 'see the login page (Auth/SeeLoginCept)'], ['pass' => true, 'severity' => 'success', 'message' => 'click forgot password and see the email form (Auth/SeeLoginForgotPasswordCept)'], ['pass' => true, 'severity' => 'success', 'message' => 'see powered by runmybusiness branding (Auth/ShouldSeePoweredByBrandingCept)'], ['pass' => true, 'severity' => 'success', 'message' => 'submit invalid credentials (Auth/SubmitLoginAndFailCept)'], ['pass' => true, 'severity' => 'success', 'message' => 'submit valid credentials and see the dashboard (Auth/SubmitLoginAndSucceedCept)'], ], $result); $this->assertEquals(0, $parser->getTotalFailures()); } }