public void GetEmployees_WhenEmployeeServiceReturnEmptyList_ReturnsEmptyEmployeeViewModelList()
        {
            //Arrange
            var employees       = SetupData();
            var employeeService = new Mock <IEmployeeService>();

            employeeService.Setup(s => s.GetEmployees()).Returns(new List <Employee>());
            var presenter = new EmployeesDataPresenter(employeeService.Object);

            //Act
            var result = presenter.GetEmployeesData();

            //Assert
            Assert.Empty(result);
        }
        public void GetEmployeesData_WhenCalled_CallsEmployeeServiceToGetData()
        {
            // Arrange
            var employees       = SetupData();
            var employeeService = new Mock <IEmployeeService>();

            employeeService.Setup(s => s.GetEmployees()).Returns(employees);
            var presenter = new EmployeesDataPresenter(employeeService.Object);

            // Act
            var result = presenter.GetEmployeesData();

            // Assert
            employeeService.Verify(m => m.GetEmployees(), Times.Once);
            Assert.IsAssignableFrom <IList <EmployeeViewModel> >(result);
        }
        public void GetEmployees_WhenEmployeeServiceReturnEmployees_ReturnsEmployeeViewModelList()
        {
            //Arrange
            var employees       = SetupData();
            var employeeService = new Mock <IEmployeeService>();

            employeeService.Setup(s => s.GetEmployees()).Returns(employees);
            var presenter = new EmployeesDataPresenter(employeeService.Object);

            //Act
            var result = presenter.GetEmployeesData();

            //Assert
            var item = result[0];

            Assert.Equal(1, item.ID);
            Assert.Equal("First Employee", item.EmployeeName);
            var totalWorkingHours = item.TotalWorkingHours;

            Assert.Equal(17, totalWorkingHours["January"]);
            Assert.Equal(9, totalWorkingHours["February"]);
        }