public void CreateEmployee_WhenEmployeeIsValid_ReturnsTrue()
        {
            // Arrange
            var employeeRepository = new Mock <IEmployeeRepository>();

            var employeeValidationStrategies = new List <IEmployeeValidationStrategy>();
            var employeeValidationStrategy   = new Mock <IEmployeeValidationStrategy>();
            var employee = new Employee();

            employeeValidationStrategy.Setup(x => x.IsValid(employee)).Returns(true);
            employeeValidationStrategies.Add(employeeValidationStrategy.Object);

            var employeeBusinessService = new EmployeeBusinessService(employeeRepository.Object, employeeValidationStrategies);

            // Act
            var result = employeeBusinessService.CreateEmployee(employee);

            // Assert
            Assert.Equal(false, result);
            employeeValidationStrategy.Verify(x => x.IsValid(employee), Times.Once);
            employeeRepository.Verify(x => x.Create(employee), Times.Exactly(1));
        }
        public void ValidateEmployee_WhenFirstNameIsValid_ReturnsTrue()
        {
            // Arrange
            var employeeRepository = new Mock <IEmployeeRepository>();

            var employeeValidationStrategies = new List <IEmployeeValidationStrategy>();
            var firstNameValidator           = new EmployeeFirstNameValdidationStrategy();

            employeeValidationStrategies.Add(firstNameValidator);

            var employeeBusinessService = new EmployeeBusinessService(employeeRepository.Object,
                                                                      employeeValidationStrategies);

            var employee = new Employee {
                FirstName = "Test"
            };

            // Act
            var result = employeeBusinessService.Validate(employee);

            // Assert
            Assert.Equal(true, result);
        }
        public void ValidateEmployee_SalaryIsNotZero_ReturnsTrue()
        {
            // Arrange
            var employeeRepository = new Mock <IEmployeeRepository>();

            var employeeValidationStrategies = new List <IEmployeeValidationStrategy>();
            var salaryValidator = new EmployeeSalaryValidationStrategy();

            employeeValidationStrategies.Add(salaryValidator);

            var employeeBusinessService = new EmployeeBusinessService(employeeRepository.Object,
                                                                      employeeValidationStrategies);

            var employee = new Employee {
                Salary = 1000000
            };

            // Act
            var result = employeeBusinessService.Validate(employee);

            // Assert
            Assert.Equal(true, result);
        }
        public void ValidateEmployee_WhenLastNameIsNull_ReturnsFalse()
        {
            // Arrange
            var employeeRepository = new Mock <IEmployeeRepository>();

            var employeeValidationStrategies = new List <IEmployeeValidationStrategy>();
            var lastNameValidator            = new EmployeeLastNameValidationStrategy();

            employeeValidationStrategies.Add(lastNameValidator);

            var employeeBusinessService = new EmployeeBusinessService(employeeRepository.Object,
                                                                      employeeValidationStrategies);

            var employee = new Employee {
                LastName = null
            };

            // Act
            var result = employeeBusinessService.Validate(employee);

            // Assert
            Assert.Equal(false, result);
        }
コード例 #5
0
 public EmployeeBusinessServiceTests()
 {
     _employeeDataService    = new Mock <IEmployeeDataService>();
     employeeBusinessService = new EmployeeBusinessService(_employeeDataService.Object);
 }