public async Task GetEmployeesAsync_Should_Return_Correct_Results()
        {
            // Arrange
            var employeeServiceMock    = new Mock <IEmployeeService>();
            var mappingServiceMock     = new Mock <IMappingService>();
            var calculationServiceMock = new Mock <ICalculationService>();
            var employees = new List <Employee>
            {
                new Employee(1, "Amanda Woods", "Product Owner", 60000, 1),
                new Employee(2, "Ross Green", "Software Developer", 70000, 1),
            };
            var department = new DepartmentDto()
            {
                Title       = "IT",
                Description = "The software development department for the company"
            };
            var mappedEmployees = new List <EmployeeDto>
            {
                new EmployeeDto()
                {
                    Id         = 1,
                    Fullname   = "Amanda Woods",
                    JobTitle   = "Product Owner",
                    Salary     = 60000,
                    Department = department
                },
                new EmployeeDto()
                {
                    Id         = 2,
                    Fullname   = "Ross Green",
                    JobTitle   = "Software Developer",
                    Salary     = 70000,
                    Department = department
                },
            };
            var expectedNameFirstEmployee  = "Amanda Woods";
            var expectedNameSecondEmployee = "Ross Green";
            var expectedCollectionCount    = 2;

            mappingServiceMock
            .Setup(x => x.MapEmployeeCollectionToDto(It.IsAny <IEnumerable <Employee> >()))
            .Returns(mappedEmployees);
            var service = new BonusPoolService(employeeServiceMock.Object,
                                               calculationServiceMock.Object,
                                               mappingServiceMock.Object);

            // Act
            var result = await service.GetEmployeesAsync();

            // Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(IEnumerable <EmployeeDto>));
            Assert.AreEqual(expectedCollectionCount, result.Count());
            Assert.AreEqual(mappedEmployees, result);
            Assert.AreEqual(expectedNameFirstEmployee, result.FirstOrDefault().Fullname);
            Assert.AreEqual(expectedNameSecondEmployee, result.LastOrDefault().Fullname);
        }
Beispiel #2
0
        public async Task <IActionResult> GetAll()
        {
            var bonusPoolService = new BonusPoolService();

            return(Ok(await bonusPoolService.GetEmployeesAsync()));
        }