/* * The MIT License * * Copyright (c) 2010 tap4j team (see AUTHORS) * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package org.tap4j.consumer; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import org.junit.Test; import org.tap4j.BaseTapTest; import org.tap4j.model.Footer; import org.tap4j.model.SkipPlan; import org.tap4j.model.TestSet; import org.tap4j.parser.ParserException; /** * Tests for a TAP 13 parser. Without YAML or subtests. * @since 1.0 */ public class TestTap13Consumer extends BaseTapTest {// NOPMD // comment_planskipall.tap @Test public void testConsumerPlanskipall() { final TestSet testSet = getTestSet("/org/tap4j/consumer/comment_planskipall.tap"); assertTrue(testSet.getNumberOfTestResults() == 0); final Footer footer = testSet.getFooter(); assertNull(footer); final SkipPlan skip = testSet.getPlan().getSkip(); assertNotNull(skip); assertTrue(skip.getReason().equals("Not implemented yet.")); } // header_plan_tr_footer.tap @Test public void testConsumerHeaderPlanTrFooter() { final TestSet testSet = getTestSet("/org/tap4j/consumer/header_plan_tr_footer.tap"); assertNotNull(testSet.getHeader()); assertNotNull(testSet.getPlan()); assertTrue(testSet.getNumberOfTestResults() == 2); assertTrue(testSet.getTestResults().get(0).getDescription() .equals("Test 1")); assertNotNull(testSet.getFooter()); assertNotNull(testSet.getFooter().getComment()); } // header_plan_tr.tap @Test public void testConsumerHeaderPlanTr() { final TestSet testSet = getTestSet("/org/tap4j/consumer/header_plan_tr.tap"); assertNotNull(testSet.getHeader()); assertNotNull(testSet.getPlan()); assertTrue(testSet.getNumberOfTestResults() == 2); assertTrue(testSet.getTestResults().get(0).getDescription() .equals("Test 1")); assertNull(testSet.getFooter()); } // header_plan.tap @Test public void testConsumerHeaderPlan() { final TestSet testSet = getTestSet("/org/tap4j/consumer/header_plan.tap"); assertNotNull(testSet.getHeader()); assertNotNull(testSet.getPlan()); assertTrue(testSet.getNumberOfTestResults() == 0); assertNull(testSet.getFooter()); } // header_planskipall.tap @Test public void testConsumerHeaderPlanskipall() { final TestSet testSet = getTestSet("/org/tap4j/consumer/header_planskipall.tap"); assertNotNull(testSet.getHeader()); assertNotNull(testSet.getPlan()); assertTrue(testSet.getPlan().isSkip()); assertNotNull(testSet.getPlan().getSkip()); assertTrue(testSet.getNumberOfTestResults() == 0); assertNull(testSet.getFooter()); } // header_tr_plan.tap @Test public void testConsumerHeaderTrPlan() { final TestSet testSet = getTestSet("/org/tap4j/consumer/header_tr_plan.tap"); assertTrue(testSet.getTestResults().size() == 2); assertNotNull(testSet.getPlan()); // assertFalse( // ((Tap13YamlParser)consumer).isPlanBeforeTestResult() ); } // plan_comment_tr_footer.tap @Test public void testConsumerPlanCommentTrFooter() { final TestSet testSet = getTestSet("/org/tap4j/consumer/plan_comment_tr_footer.tap"); assertNull(testSet.getHeader()); assertTrue(testSet.getTestResults().size() == 3); assertNotNull(testSet.getPlan()); // assertTrue( // ((TapConsumerImpl)consumer).isPlanBeforeTestResult() ); assertTrue(testSet.getTestResults().size() == testSet.getPlan() .getLastTestNumber()); assertNotNull(testSet.getFooter()); } // plan_tr.tap @Test public void testConsumerPlanTr() { final TestSet testSet = getTestSet("/org/tap4j/consumer/plan_tr.tap"); assertNull(testSet.getHeader()); assertTrue(testSet.getTestResults().size() == 2); assertNotNull(testSet.getPlan()); // assertTrue( // ((TapConsumerImpl)consumer).isPlanBeforeTestResult() ); assertTrue(testSet.getTestResults().size() == testSet.getPlan() .getLastTestNumber()); assertNull(testSet.getFooter()); } // invalid_comment_tr_bailout_header.tap @Test(expected = TapConsumerException.class) public void testConsumerInvalidCommentTrBailoutHeader() { getTestSet("/org/tap4j/consumer/invalid_comment_tr_bailout_header.tap"); fail("Not supposed to get here"); } // invalid_header_tr.tap @Test(expected = TapConsumerException.class) public void testConsumerInvalidHeaderTr() { getTestSet("/org/tap4j/consumer/invalid_header_tr.tap"); fail("Not supposed to get here"); } // invalid_plan_header_plan.tap @Test(expected = TapConsumerException.class) public void testConsumerInvalidPlanHeaderPlan() { getConsumer().load("/org/tap4j/consumer/invalid_plan_header_plan.tap"); fail("Not supposed to get here"); } // invalid_plan_tr_header.tap @Test(expected = TapConsumerException.class) public void testConsumerInvalidPlanTrHeader() { getTestSet("/org/tap4j/consumer/invalid_plan_tr_header.tap"); fail("Not supposed to get here"); } // invalid_tr_footer.tap @Test(expected = TapConsumerException.class) public void testConsumerInvalidTrFooter() { getTestSet("/org/tap4j/consumer/invalid_tr_footer.tap"); fail("Not supposed to get here"); } // invalid_tr_header_header_tr.tap @Test(expected = TapConsumerException.class) public void testConsumerInvalidTrHeaderHeaderTr() { getTestSet("/org/tap4j/consumer/invalid_tr_header_header_tr.tap"); fail("Not supposed to get here"); } // invalid_tr_plan_header.tap @Test(expected = TapConsumerException.class) public void testConsumerInvalidTrPlanHeader() { getTestSet("/org/tap4j/consumer/invalid_tr_plan_header.tap"); fail("Not supposed to get here"); } // invalid_tr.tap @Test(expected = TapConsumerException.class) public void testConsumerInvalidTr() { getTestSet("/org/tap4j/consumer/invalid_tr.tap"); fail("Not supposed to get here"); } @Test public void testConsumerTapStream1AndPrintDetails() { final StringBuilder tapStream = new StringBuilder(); tapStream.append("TAP version 13 # the header\n"); tapStream.append("1..1\n"); tapStream.append("ok 1\n"); tapStream .append("Bail out! Out of memory exception # Contact admin! 9988\n"); final TestSet testSet = getConsumer().load(tapStream.toString()); assertTrue(testSet.getPlan().getLastTestNumber() == 1); assertNotNull(testSet.getHeader()); assertNotNull(testSet.getHeader().getComment()); assertEquals(testSet.getBailOuts().get(0).getReason(), "Out of memory exception "); assertEquals(testSet.getBailOuts().get(0).getComment() .getText(), "Contact admin! 9988"); } /** * Tests a TapConsumer reading an invalid TAP Stream. */ @Test public void testTapConsumerInvalidToken() { final TapConsumer tapConsumer = TapConsumerFactory.makeTap13YamlConsumer(); TestSet testSet = null; String invalidTapStream = "a..2\nok 1\n ---\n name:Bruno\n ---ok2"; try { testSet = tapConsumer.load(invalidTapStream); fail("Not supposed to get here"); } catch (TapConsumerException tapConsumerException) { assertTrue(tapConsumerException.getCause() instanceof ParserException); } assertNull(testSet); } /** * Tests a TapConsumer with a single Test Result. */ @Test public void testWithSingleTestResult() { final TestSet testSet = getTestSet("/org/tap4j/consumer/single_tr.tap"); assertNotNull(testSet); assertTrue(testSet.getNumberOfTestResults() == 1); } /** * A Tap Consumer cannot save its state. */ @Test public void testStateOfConsumer() { TestSet testSet = getTestSet("/org/tap4j/consumer/single_tr.tap"); assertNotNull(testSet); assertTrue(testSet.getNumberOfTestResults() == 1); testSet = getTestSet("/org/tap4j/consumer/two_tr.tap"); } }