using Calculator.Domain; using Calculator.Domain.Extensions; using Calculator.Test.Extensions; using MbUnit.Framework; namespace Calculator.Test.domain { [TestFixture] public class StandardCalculatorTest { [SetUp] public void SetUp() {} public ICalculator CreateSUT() { return new StandardCalculator( ); } [Test] public void should_be_able_to_add_2_numbers_together() { var ten = Number( 10 ); var five = Number( 5 ); var fifteen = Number( 15 ); var calculator = CreateSUT( ); var resultOfCalculation = calculator.Number( ten ).Plus( ).Number( five ).ComputesTo( ); resultOfCalculation.ShouldBeEqualTo( fifteen ); } [Test] public void should_be_able_to_subtract_one_number_from_another() { var twenty = Number( 20 ); var three = Number( 3 ); var seventeen = Number( 17 ); var calculator = CreateSUT( ); var resultOfCalculation = calculator .Number( twenty ) .Minus( ) .Number( three ) .ComputesTo( ); resultOfCalculation.ShouldBeEqualTo( seventeen ); } [Test] public void should_be_able_to_add_two_numbers_together_then_subtract_a_number() { var calculator = CreateSUT( ); var ninetyNine = Number( 99 ); var one = Number( 1 ); var sixtyThree = Number( 63 ); var resultOfCalculation = calculator .Number( ninetyNine ) .Plus( ) .Number( one ) .Minus( ) .Number( sixtyThree ) .ComputesTo( ); resultOfCalculation.ShouldBeEqualTo( Number( 37 ) ); } private INumber Number( long number ) { return new Number( number ); } } }