Package fit.decorator

Source Code of fit.decorator.CopyAndAppendLastRowTest

package fit.decorator;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

import java.text.ParseException;

import fit.Parse;
import fit.decorator.exceptions.InvalidInputException;
import fit.decorator.util.TestCaseHelper;
import org.junit.Test;

public class CopyAndAppendLastRowTest extends FixtureDecoratorTestCase {
  private static final String FIRST_HTML_ROW = "<tr><td>" + CopyAndAppendLastRow.class.getName()
    + "</td><td>0</td><td>times</td></tr>";
  private static final int COUNTER = 5;
  private FixtureDecorator decorator = new CopyAndAppendLastRow();

  protected String geDecoratorHTMLRow() {
    return FIRST_HTML_ROW;
  }

  protected int numberOfAssertionsOnDecorator() {
    return 0;
  }

  @Test
  public void testSetupDecoratorShouldThrowInvalidInputExceptionIfCounterIsNotSpecified() throws ParseException {
    try {
      decorator.setupDecorator(new String[0]);
      fail("Should blow up");
    } catch (InvalidInputException e) {
      assertEquals("Count for number of times to add the last row must be specified", e.getMessage());
    }
  }

  @Test
  public void testSetupDecoratorShouldAddCounterToSummary() throws Exception {
    decorator.setupDecorator(new String[]
      {String.valueOf(COUNTER)});
    assertEquals(COUNTER, ((Integer) decorator.summary.get(CopyAndAppendLastRow.NUMBER_OF_TIMES)).intValue());
  }

  @Test
  public void testShouldLeaveTableAsItIsIfCounterValueIsZero() throws Exception {
    String fitPage = "<table>" + FIRST_HTML_ROW + "<tr><td>fit.decorator.TestFixture</td></tr></table>";
    decorator.doTables(new Parse(fitPage));
    TestCaseHelper.assertCounts(TestCaseHelper.counts(0, 0, 0, 0), decorator.counts);
  }

  @Test
  public void testShouldAddOneRowIfCounterValueIsOne() throws Exception {
    String fitPage = "<table><tr><td>" + CopyAndAppendLastRow.class.getName() + "</td><td>1"
      + "</td><td>times</td></tr><tr><td>eg.Division</td></tr>"
      + "<tr><td>numerator</td><td>denominator</td><td>quotient()</td></tr>"
      + "<tr><td>10</td><td>2</td><td>5</td></tr></table>";
    decorator.doTables(new Parse(fitPage));
    TestCaseHelper.assertCounts(TestCaseHelper.counts(2, 0, 0, 0), decorator.counts);
  }

  @Test
  public void testShouldLeaveTableAsItIsIfTotalRowsAreLessThanThree() throws Exception {
    String fitPage = "<table><tr><td>" + CopyAndAppendLastRow.class.getName() + "</td>"
      + "<td>0</td><td>times</td></tr><tr><td>eg.Division</td></tr>"
      + "<tr><td>numerator</td><td>denominator</td><td>quotient()</td></tr></table>";
    decorator.doTables(new Parse(fitPage));
    TestCaseHelper.assertCounts(TestCaseHelper.counts(0, 0, 0, 0), decorator.counts);
  }

  @Test
  public void testShouldAppendLastRowCounterNumberOfTimes() throws Exception {
    String fitPage = "<table><tr><td>" + CopyAndAppendLastRow.class.getName() + "</td><td>" + COUNTER
      + "</td><td>times</td></tr><tr><td>eg.Division</td></tr>"
      + "<tr><td>numerator</td><td>denominator</td><td>quotient()</td></tr>"
      + "<tr><td>10</td><td>2</td><td>5</td></tr></table>";
    decorator.doTable(new Parse(fitPage));
    TestCaseHelper.assertCounts(TestCaseHelper.counts(COUNTER + 1, 0, 0, 0), decorator.counts);
  }

  @Test
  public void testShouldAppendOnlyTheLastRowCounterNumberOfTimes() throws Exception {
    String fitPage = "<table><tr><td>" + CopyAndAppendLastRow.class.getName() + "</td><td>" + COUNTER
      + "</td><td>times</td></tr><tr><td>eg.Division</td></tr>"
      + "<tr><td>numerator</td><td>denominator</td><td>quotient()</td></tr>"
      + "<tr><td>10</td><td>2</td><td>5</td></tr><tr><td>12.6</td><td>3</td><td>4.2</td></tr>"
      + "<tr><td>100</td><td>4</td><td>25</td></tr></table>";
    decorator.doTable(new Parse(fitPage));
    TestCaseHelper.assertCounts(TestCaseHelper.counts(COUNTER + 3, 0, 0, 0), decorator.counts);
  }

}
TOP

Related Classes of fit.decorator.CopyAndAppendLastRowTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.