public void GetEmployee_RequestNotExistingEmployeeId_ThrowsException()
        {
            // arrange
            Mock<IRepository> mockedRepository = CreateMockedRepository();
            var service = new EmployeeService(mockedRepository.Object);

            // act
            service.GetEmployee(0);
        }
        public void RemoveEmployee_RequestExistingEmployeeId_RemovesEmployeeInRepository()
        {
            // arrange
            Mock<IRepository> mockedRepository = CreateMockedRepository();
            var service = new EmployeeService(mockedRepository.Object);

            // act
            service.RemoveEmployee(1);

            // assert
            mockedRepository.Verify(p => p.RemoveEmployee(1));
        }
        public void GetEmployee_RequestExistingEmployeeId_ReturnsMatchingEmployees()
        {
            // arrange
            Mock<IRepository> mockedRepository = CreateMockedRepository();
            var service = new EmployeeService(mockedRepository.Object);

            // act
            EmployeeInfo employee = service.GetEmployee(1);

            // assert
            Assert.AreEqual("Roger", employee.FirstName);
        }
        public void GetEmployees_ReturnsAllAvailableEmployees()
        {
            // arrange
            Mock<IRepository> mockedRepository = CreateMockedRepository();
            var service = new EmployeeService(mockedRepository.Object);

            // act
            EmployeeInfo[] employees = service.GetEmployees();

            // assert
            Assert.AreEqual(2, employees.Count());
        }
        public void SetEmployees_RequestNotExistingEmployees_SetsEmployeesInRepository()
        {
            // arrange
            Mock<IRepository> mockedRepository = CreateMockedRepository();
            var service = new EmployeeService(mockedRepository.Object);

            const int employeeId1 = 23;
            const int employeeId2 = 24;

            var employeeInfos = new []
            {
                new EmployeeInfo { Id = employeeId1 },
                new EmployeeInfo { Id = employeeId2 },
            };

            // act
            service.SetEmployees(employeeInfos);

            // assert
            mockedRepository.Verify(p => p.SetEmployeeBatch(It.Is<IEnumerable<Employee>>(es => es.Count() == 2)));
        }
        public void SetEmployees_EmployeesNullReference_ThrowsException()
        {
            // arrange
            Mock<IRepository> mockedRepository = CreateMockedRepository();
            var service = new EmployeeService(mockedRepository.Object);

            // act
            service.SetEmployees(null);
        }
        public void SetEmployee_RequestNotExistingEmployee_SetsEmployeeInRepository()
        {
            // arrange
            Mock<IRepository> mockedRepository = CreateMockedRepository();
            var service = new EmployeeService(mockedRepository.Object);

            const int employeeId = 23;
            var employeeInfo = new EmployeeInfo
            {
                Id = employeeId
            };

            // act
            service.SetEmployee(employeeInfo);

            // assert
            mockedRepository.Verify(p => p.SetEmployee(It.Is<Employee>(e => e.Id == employeeId)));
        }