public void Add_ValidCompensation_ReturnsCompensation() { // Arrange var expectedCompensation = new Compensation { EmployeeId = "16a596ae-edd3-4847-99fe-c4518e82c86f", EffectiveDate = DateTime.Now.Date, Salary = 100000 }; Compensation persistedCompensation = null; var logger = new Mock <ILogger <ICompensationRepository> >(); var context = new Mock <IEmployeeContext>(); context.Setup(c => c.Add(It.IsAny <Compensation>())) .Callback((Compensation data) => persistedCompensation = data); context.Setup(c => c.GetByEmployeeId(expectedCompensation.EmployeeId)) .Returns(expectedCompensation); // Execute var compensation = new CompensationRepository(logger.Object, context.Object).Add(expectedCompensation); // Assert persistedCompensation.Should().NotBeNull(); persistedCompensation.EmployeeId.Should().Be(expectedCompensation.EmployeeId); persistedCompensation.EffectiveDate.Should().Be(expectedCompensation.EffectiveDate); persistedCompensation.Salary.Should().Be(expectedCompensation.Salary); compensation.Should().NotBeNull(); compensation.EmployeeId.Should().Be(expectedCompensation.EmployeeId); compensation.EffectiveDate.Should().Be(expectedCompensation.EffectiveDate); compensation.Salary.Should().Be(expectedCompensation.Salary); }
public void Create_ValidCompensation_ReturnsCompensation() { // Arrange var newCompensation = new Compensation { EmployeeId = "16a596ae-edd3-4847-99fe-c4518e82c86f", EffectiveDate = DateTime.Now.Date, Salary = 100000 }; var expectedCompensation = new Compensation { Employee = new Employee { EmployeeId = newCompensation.EmployeeId, FirstName = "John", LastName = "Lennon" }, EffectiveDate = newCompensation.EffectiveDate, Salary = newCompensation.Salary }; Compensation persistedCompensation = null; var logger = new Mock <ILogger <ICompensationService> >(); var repository = new Mock <ICompensationRepository>(); repository.Setup(c => c.Add(It.IsAny <Compensation>())) .Callback((Compensation data) => persistedCompensation = data); repository.Setup(c => c.SaveAsync()); repository.Setup(c => c.GetByEmployeeId(expectedCompensation.Employee.EmployeeId)) .Returns(expectedCompensation); // Execute var compensation = new CompensationService(logger.Object, repository.Object).Create(newCompensation); // Assert persistedCompensation.Should().NotBeNull(); persistedCompensation.EmployeeId.Should().Be(expectedCompensation.Employee.EmployeeId); persistedCompensation.EffectiveDate.Should().Be(expectedCompensation.EffectiveDate); persistedCompensation.Salary.Should().Be(expectedCompensation.Salary); compensation.Should().NotBeNull(); compensation.Employee.Should().NotBeNull(); compensation.Employee.FirstName.Should().Be(expectedCompensation.Employee.FirstName); compensation.Employee.LastName.Should().Be(expectedCompensation.Employee.LastName); compensation.EffectiveDate.Should().Be(expectedCompensation.EffectiveDate); compensation.Salary.Should().Be(expectedCompensation.Salary); }