public void Test_CalculateExpression_NoBrackets_OneOperation()
        {
            var mockP = new Mock <IParser>();

            mockP.Setup(p => p.Parse("5*2")).Returns(new List <string>()
            {
                "5", "*", "2"
            });
            IParser mockParser = mockP.Object;

            var mockRPR = new Mock <IReversePolishRecord>();

            mockRPR.Setup(p => p.Code(new List <string>()
            {
                "5", "*", "2"
            })).Returns(new List <string>()
            {
                "5", "2", "*"
            });
            mockRPR.Setup(p => p.Decode(new List <string>()
            {
                "5", "2", "*"
            })).Returns(10);
            IReversePolishRecord mockReversePolishRecor = mockRPR.Object;

            double resultExpected = 10;
            double resultActual   = new ExpressionCalculator(mockParser, mockReversePolishRecor).Calculate("5*2");

            Assert.AreEqual(resultExpected, resultActual);
        }
 public ExpressionCalculator(IParser parser, IReversePolishRecord rpr)
 {
     Parser = parser;
     ReversePolishRecord = rpr;
 }
 public ExpressionCalculator()
 {
     Parser = new ExpressionParser();
     ReversePolishRecord = new ReversePolishRecord();
 }