parse(); $this->assertEquals(array( array('pass' => true, 'severity' => 'success', 'message' => 'SomeTest::testAnother'), array('pass' => false, 'severity' => 'fail', 'message' => ''), ), $result); $this->assertEquals(1, $parser->getTotalFailures()); } /** * @expectedException \Exception * @expectedExceptionMessageRegExp /No TAP/ */ public function testNoTapData() { $content = <<parse(); } /** * @expectedException \Exception * @expectedExceptionMessageRegExp /Duplicated TAP/ */ public function testDuplicateOutput() { $content = <<parse(); } public function testSuiteAndTest() { $content = <<parse(); $this->assertEquals(array( array('pass' => true, 'severity' => 'success', 'message' => 'SomeTest::testAnother',), array('pass' => false, 'severity' => 'fail', 'message' => 'Failure: SomeTest::testAnother'), array('pass' => false, 'severity' => 'error', 'message' => 'Error: SomeTest::testAnother'), ), $result); $this->assertEquals(2, $parser->getTotalFailures()); } public function testSkipped() { $content = <<parse(); $this->assertEquals(array( array('pass' => true, 'severity' => 'skipped', 'message' => ''), array('pass' => true, 'severity' => 'skipped', 'message' => 'foobar'), array('pass' => true, 'severity' => 'skipped', 'message' => 'foo, skipped: bar'), ), $result); $this->assertEquals(0, $parser->getTotalFailures()); } public function testTodo() { $content = <<parse(); $this->assertEquals(array( array('pass' => true, 'severity' => 'todo', 'message' => 'SomeTest::testAnother, todo: really implement this test'), array('pass' => true, 'severity' => 'todo', 'message' => 'really implement this test'), array('pass' => true, 'severity' => 'todo', 'message' => 'this is a message, todo: really implement this test'), array('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(array( array( '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(array( array( 'pass' => false, 'severity' => 'fail', 'message' => 'Failure: testFailure::FailureErrorTest', ), array( '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( array( array('pass' => true, 'severity' => 'success', 'message' => 'try to access the dashboard as a guest (Auth/GuestAccessDashboardAndRedirectCept)'), array('pass' => true, 'severity' => 'success', 'message' => 'see the login page (Auth/SeeLoginCept)'), array('pass' => true, 'severity' => 'success', 'message' => 'click forgot password and see the email form (Auth/SeeLoginForgotPasswordCept)'), array('pass' => true, 'severity' => 'success', 'message' => 'see powered by runmybusiness branding (Auth/ShouldSeePoweredByBrandingCept)'), array('pass' => true, 'severity' => 'success', 'message' => 'submit invalid credentials (Auth/SubmitLoginAndFailCept)'), array('pass' => true, 'severity' => 'success', 'message' => 'submit valid credentials and see the dashboard (Auth/SubmitLoginAndSucceedCept)'), ), $result ); $this->assertEquals(0, $parser->getTotalFailures()); } }