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); }
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); }
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); }