public void Execute_WhenInvokes_RetunrPayment() { //Arrange string formatedData = "data"; var mockEmployeeFactory = new Mock <IEmployeeFactory>(); var mockEmployee = new Mock <IEmployee>(); mockEmployeeFactory.Setup(p => p.Create(formatedData)).Returns(mockEmployee.Object); mockEmployee.Setup(p => p.Name).Returns("Carlos"); var mockScheduleFactory = new Mock <IScheduleFactory>(); var mockSchedule = new Mock <ISchedule>(); mockScheduleFactory.Setup(p => p.Create()).Returns(mockSchedule.Object); mockSchedule.Setup(p => p.CalculatePayment(mockEmployee.Object)).Returns(10); IGetPaymentForEmployeeQuery getPaymentForEmployeeQuery = new GetPaymentForEmployeeQuery(mockEmployeeFactory.Object, mockScheduleFactory.Object); PaymentModel payment; //Act payment = getPaymentForEmployeeQuery.Execute(formatedData); //Assert Assert.IsNotNull(payment); Assert.AreEqual("Carlos", payment.Name); Assert.AreEqual(10, payment.Payment); }
/// <summary> /// Main entry for the program. /// </summary> /// <param name="args">Args to send (name of the file en the same directory)</param> static void Main(string[] args) { IEmployeeFactory employeeFactory = new EmployeeFactory(); IScheduleFactory scheduleFactory = new ScheduleFactory(); IGetPaymentForEmployeeQuery getPaymentForEmployeeQuery = new GetPaymentForEmployeeQuery(employeeFactory, scheduleFactory); Client client = new Client(getPaymentForEmployeeQuery); client.PrintCalculatedPayment(args[0]); Console.ReadLine(); }
public void Execute_WhenInvokes_ExecuteCalculatePayment() { //Arrange string formatedData = "data"; var mockEmployeeFactory = new Mock <IEmployeeFactory>(); var mockEmployee = new Mock <IEmployee>(); mockEmployeeFactory.Setup(p => p.Create(formatedData)).Returns(mockEmployee.Object); var mockScheduleFactory = new Mock <IScheduleFactory>(); var mockSchedule = new Mock <ISchedule>(); mockScheduleFactory.Setup(p => p.Create()).Returns(mockSchedule.Object); mockSchedule.Setup(p => p.CalculatePayment(mockEmployee.Object)).Returns(10); IGetPaymentForEmployeeQuery getPaymentForEmployeeQuery = new GetPaymentForEmployeeQuery(mockEmployeeFactory.Object, mockScheduleFactory.Object); //Act getPaymentForEmployeeQuery.Execute(formatedData); //Assert mockSchedule .Verify(p => p.CalculatePayment(mockEmployee.Object), Times.Once); }