Example #1
0
        static void Main(string[] args)
        {
            // first arg is the input file name
            var commands = File.ReadAllLines(args[0]);

            //TODO: IOC framework is a bit overboard for a demo.
            var commandReader = new AtmCommandReader(x => new Atm(x));

            var result = commandReader.Read(commands);

            Console.WriteLine(result);
        }
Example #2
0
        public void Read_ValidInput_AtmInitialized()
        {
            var mockAtm        = new Mock <IAtm>();
            var mockAtmFactory = new Mock <Func <int, IAtm> >();

            mockAtmFactory.Setup(x => x(It.IsAny <int>())).Returns(mockAtm.Object);

            var reader = new AtmCommandReader(mockAtmFactory.Object);

            reader.Read(validInputSingleSessionBalanceEnquiry);

            mockAtmFactory.Verify(x => x(initialBalance), Times.Once);
        }
Example #3
0
        public void Read_ValidInput_MultipleSessionsOutput()
        {
            var mockAtm = new Mock <IAtm>();
            var bal     = "BALANCE";
            var wid     = "WITHDRAWAL";

            mockAtm.Setup(atm => atm.WithdrawCash(It.IsAny <int>())).Returns(wid);
            mockAtm.Setup(atm => atm.GetBalance()).Returns(bal);

            var reader = new AtmCommandReader((x) => mockAtm.Object);
            var output = reader.Read(validInputMultipleSessions);

            Assert.AreEqual("BALANCE\r\nWITHDRAWAL\r\nWITHDRAWAL\r\nBALANCE", output);
        }