Ejemplo n.º 1
0
        public void TestProcessRequest2()
        {
            //Arrange
            Stack <double> myStack = new Stack <double>();

            myStack.Push(1);
            myStack.Push(2);
            myStack.Push(3);


            var data     = A.Fake <IDataHolder <double> >();
            var calc     = A.Fake <CalculatorFunctionsImpl>(option => option.CallsBaseMethods());
            var callback = A.Fake <ICallback>();

            A.CallTo(() => data.GetData()).Returns(myStack);
            A.CallTo(() => data.GetSize()).ReturnsLazily(() => myStack.Count);
            A.CallTo(() => data.InsertElement(A <double> .Ignored)).Invokes((double x) => myStack.Push(x));
            A.CallTo(() => data.SetData(A <Stack <double> > .Ignored)).Invokes((Stack <double> s) => myStack = new Stack <double>(s));
            A.CallTo(() => data.RemoveElement()).ReturnsLazily(() => myStack.Pop());

            string[] request = { "+", "*", "+" };

            IWCFCalculator service = new WCFCalculatorImpl(data, calc);



            //Act
            service.ProcessRequest(new List <string>(request));

            //Assert
            Assert.AreEqual(3, myStack.Count);
            Assert.AreEqual(3, myStack.Peek());
        }