Ejemplo n.º 1
0
        public void AutomaticallyCreateSubstitutes()
        {
            // just create factory sub
            factory = Substitute.For <INumberParserFactory>();

            // chain set up, as factory creates parser, nice!
            factory.Create(',').Parse("an expression").Returns(new[] { 1, 2, 3 });

            Assert.AreEqual(
                factory.Create(',').Parse("an expression"),
                new[] { 1, 2, 3 });
        }
Ejemplo n.º 2
0
        public void ManuallyCreateSubstitutes()
        {
            // create both subs
            factory = Substitute.For <INumberParserFactory>();
            parser  = Substitute.For <INumberParser>();

            // now set up both separately
            factory.Create(',').Returns(parser);
            parser.Parse("an expression").Returns(new[] { 1, 2, 3 });

            Assert.AreEqual(
                factory.Create(',').Parse("an expression"),
                new[] { 1, 2, 3 });
        }
Ejemplo n.º 3
0
        public void RecursivelySubbedMethodCalledMultipleTimes()
        {
            factory = Substitute.For <INumberParserFactory>();

            // subsequent calls with same args return same sub
            var firstCall  = factory.Create(',');
            var secondCall = factory.Create(',');

            // subsequent call with different args return different sub
            var thirdCallWithDiffArg = factory.Create('x');

            // prove this via assertions
            Assert.AreSame(firstCall, secondCall);
            Assert.AreNotSame(firstCall, thirdCallWithDiffArg);
        }
 public CalculatorExpressionParser(IExpressionPartsParser expressionPartsParser, INumberParserFactory numberParserFactory)
 {
     _expressionPartsParser = expressionPartsParser;
     _numberParserFactory = numberParserFactory;
 }