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);
        }
Пример #2
0
        /// <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);
        }