Skip to content

Instantly share code, notes, and snippets.

@alexandreaquiles
Created September 11, 2010 22:08
Show Gist options
  • Select an option

  • Save alexandreaquiles/575607 to your computer and use it in GitHub Desktop.

Select an option

Save alexandreaquiles/575607 to your computer and use it in GitHub Desktop.
public class ANewlyCreatedRpnCalculatorShould {
private RpnCalculator calculator;
@Before
public void init(){
calculator = new RpnCalculator();
}
@Test
public void Have0InItsAccumulator(){ ... }
@Test
public void AllowItsAccumulatorToBeSet(){ ... }
@Test
public void AllowMultipleValuesToBeStored(){
BigDecimal value = new BigDecimal(42);
BigDecimal value2 = new BigDecimal(2);
BigDecimal value3 = new BigDecimal(3);
calculator.setAccumulator(value);
calculator.enter();
calculator.setAccumulator(value2);
calculator.enter();
calculator.setAccumulator(value3);
assertEquals(value3, calculator.getAccumulator());
calculator.drop();
assertEquals(value2, calculator.getAccumulator());
calculator.drop();
assertEquals(value, calculator.getAccumulator());
}
}
public class ACalculatorWithThreeValuesShould{
private RpnCalculator calculator;
BigDecimal value = new BigDecimal(42);
BigDecimal value2 = new BigDecimal(2);
BigDecimal value3 = new BigDecimal(3);
@Before
public void init(){
calculator = new RpnCalculator();
calculator.setAccumulator(value);
calculator.enter();
calculator.setAccumulator(value2);
calculator.enter();
calculator.setAccumulator(value3);
}
@Test
public void HaveTheLastValueEnteredInItsAccumulator(){
assertEquals(value3, calculator.getAccumulator());
}
@Test
public void HaveTheSecondToLastValueAfterASingleDrop(){
calculator.drop();
assertEquals(value2, calculator.getAccumulator());
}
@Test
public void HaveTheFirstValueEnteredAfterTwoDrops(){
calculator.drop();
calculator.drop();
assertEquals(value, calculator.getAccumulator());
}
@Test
public void Have0AfterThreeDrops(){
calculator.drop();
calculator.drop();
calculator.drop();
assertEquals(BigDecimal.ZERO, calculator.getAccumulator());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment