public void ReturnViewResult_WhenIdIsCorrect() { // Arrange var mapService = new Mock <IMapService>(); var employeeService = new Mock <IEmployeeService>(); var paycheckService = new Mock <IEmployeePaycheckService>(); var payrollCalculations = new Mock <Payroll>(); var id = 5; EmployeePaycheck laborContractModel = new FakeEmployeePaycheck() { Id = id, GrossSalary = 1000, GrossFixedBonus = 100, GrossNonFixedBonus = 10, SocialSecurityIncome = 1110, PersonalInsurance = 50, }; paycheckService.Setup(x => x.GetById(id)).Returns(laborContractModel).Verifiable(); // Act var laborController = new LaborContractController(mapService.Object, employeeService.Object, paycheckService.Object, payrollCalculations.Object); // Assert Assert.IsInstanceOf <ViewResult>(laborController.Delete(id, laborContractModel)); }
public void HttpPost_ReturnRedirectToRouteResult_WhenModelStateIsValid() { // Arrange var mapService = new Mock <IMapService>(); var employeePaycheckService = new Mock <IEmployeePaycheckService>(); var pagerFactory = new Mock <IPagerFactory>(); var id = 20; var paycheckModel = new Mock <PaycheckViewModel>(); paycheckModel.SetupProperty(x => x.Id, id); EmployeePaycheck mockedPaycheck = new FakeEmployeePaycheck() { Id = id, }; employeePaycheckService.Setup(x => x.GetById(id)).Returns(mockedPaycheck).Verifiable(); mapService.Setup(x => x.Map <EmployeePaycheck>(paycheckModel.Object)).Returns(mockedPaycheck).Verifiable(); // Act PaychecksController paycheckController = new PaychecksController(mapService.Object, pagerFactory.Object, employeePaycheckService.Object); // Assert Assert.IsInstanceOf <RedirectToRouteResult>(paycheckController.Edit(paycheckModel.Object)); }
public void HttpGet_ReturnEmployeesViewModel_WhenActionIsCalled() { // Arrange var mapService = new Mock <IMapService>(); var employeePaycheckService = new Mock <IEmployeePaycheckService>(); var pagerFactory = new Mock <IPagerFactory>(); var id = 10; var paycheckModel = new Mock <PaycheckViewModel>(); paycheckModel.Setup(x => x.Id).Returns(id).Verifiable(); EmployeePaycheck mockedPaycheck = new FakeEmployeePaycheck() { Id = id, }; employeePaycheckService.Setup(x => x.GetById(id)).Returns(mockedPaycheck).Verifiable(); mapService.Setup(x => x.Map <PaycheckViewModel>(mockedPaycheck)).Returns(paycheckModel.Object).Verifiable(); // Act PaychecksController paycheckController = new PaychecksController(mapService.Object, pagerFactory.Object, employeePaycheckService.Object); var result = paycheckController.Edit(id, paycheckModel.Object) as ViewResult; // Assert Assert.IsInstanceOf <PaycheckViewModel>(result.Model); }
public void GetTop_ShouldReturnInstanceOfIQueryable() { // Arrange var mockedRepository = new Mock <IRepository <EmployeePaycheck> >(); var paycheckService = new EmployeePaycheckService(mockedRepository.Object); var employee = new FakeEmployeePaycheck() { Id = 5 }; var employee2 = new FakeEmployeePaycheck() { Id = 6 }; var employee3 = new FakeEmployeePaycheck() { Id = 7 }; // Act paycheckService.Create(employee); paycheckService.Create(employee2); paycheckService.Create(employee3); var query = paycheckService.GetTop(3); // Assert Assert.IsInstanceOf <IQueryable <EmployeePaycheck> >(query); }
public void GetTop_ShouldInvokeOnlyOnce() { // Arrange var mockedRepository = new Mock <IRepository <EmployeePaycheck> >(); var paycheckService = new EmployeePaycheckService(mockedRepository.Object); var employee = new FakeEmployeePaycheck() { Id = 1 }; var employee2 = new FakeEmployeePaycheck() { Id = 2 }; var employee3 = new FakeEmployeePaycheck() { Id = 3 }; // Act paycheckService.Create(employee); paycheckService.Create(employee2); paycheckService.Create(employee3); paycheckService.GetTop(3); // Assert mockedRepository.Verify(r => r.All, Times.Once); }
public void Create_ShouldInvokeOnce_WhenParameterIsCorrect() { // Arrange var mockedRepository = new Mock <IRepository <EmployeePaycheck> >(); var paycheckService = new EmployeePaycheckService(mockedRepository.Object); var paycheck = new FakeEmployeePaycheck(); // Act paycheckService.Create(paycheck); // Assert mockedRepository.Verify(r => r.Add(paycheck), Times.Once); }
public void HttpGet_ReturnPreviewEmployeePaycheckViewModel_WhenPaycheckIsNotNull() { // Arrange var mapService = new Mock <IMapService>(); var employeeService = new Mock <IEmployeeService>(); var paycheckService = new Mock <IEmployeePaycheckService>(); var payrollCalculations = new Mock <Payroll>(); var id = 5; var laborContractModel = new Mock <PreviewEmployeePaycheckViewModel>(); var employeeId = 10; Employee mockedEmployee = new FakeEmployee() { Id = employeeId, FirstName = "Georgi", MiddleName = "Georgiev", LastName = "Georgiev", PersonalId = "8010104050" }; EmployeePaycheck mockedPaycheck = new FakeEmployeePaycheck() { Id = id, GrossSalary = 1000, GrossFixedBonus = 100, GrossNonFixedBonus = 20, SocialSecurityIncome = 670, PersonalInsurance = 125, IncomeTax = 90, NetWage = 750, Employee = mockedEmployee, EmployeeId = mockedEmployee.Id }; employeeService.Setup(x => x.GetById(10)).Returns(mockedEmployee).Verifiable(); paycheckService.Setup(x => x.GetById(id)).Returns(mockedPaycheck).Verifiable(); mapService.Setup(x => x.Map <PreviewEmployeePaycheckViewModel>(mockedPaycheck)).Returns(new PreviewEmployeePaycheckViewModel() { Id = id, EmployeeId = employeeId }).Verifiable(); // Act var laborController = new LaborContractController(mapService.Object, employeeService.Object, paycheckService.Object, payrollCalculations.Object); var result = laborController.Edit(id, mockedPaycheck) as ViewResult; // Assert Assert.IsInstanceOf <PreviewEmployeePaycheckViewModel>(result.Model); }
public void Delete_ShouldInvokeOnce_WhenValidId_IsPassedCorrectly() { // Arrange var mockedRepository = new Mock <IRepository <EmployeePaycheck> >(); var paycheckService = new EmployeePaycheckService(mockedRepository.Object); EmployeePaycheck employee = new FakeEmployeePaycheck(); employee.Id = 2; // Act paycheckService.Create(employee); paycheckService.DeleteById(2); // Assert mockedRepository.Verify(r => r.Delete(It.IsAny <int>()), Times.Once); }
public void ReturnCreateEmployeePaycheckViewModel_WhenActionIsCalled() { // Arrange var mapService = new Mock <IMapService>(); var employeeService = new Mock <IEmployeeService>(); var paycheckService = new Mock <IEmployeePaycheckService>(); var payrollCalculations = new Mock <Payroll>(); var id = 5; Employee mockedEmployee = new FakeEmployee() { Id = id, FirstName = "Alexander", MiddleName = "Petrov", LastName = "Vasilev", PersonalId = "8010107070" }; EmployeePaycheck mockedPaycheck = new FakeEmployeePaycheck() { Id = 1, EmployeeId = id, Employee = mockedEmployee }; employeeService.Setup(x => x.GetById(id)).Returns(mockedEmployee).Verifiable(); var laborContractModel = new CreateEmployeePaycheckViewModel(); mapService.Setup(x => x.Map <CreateEmployeePaycheckViewModel>(mockedPaycheck)).Returns(laborContractModel).Verifiable(); // Act LaborContractController laborController = new LaborContractController(mapService.Object, employeeService.Object, paycheckService.Object, payrollCalculations.Object); laborController.ModelState.AddModelError("invalid", "Invalid"); var result = laborController.CreateLaborContract(id, mockedPaycheck) as ViewResult; // Assert Assert.IsInstanceOf <ViewResult>(result); Assert.AreEqual(laborContractModel, result.Model); }
public void Update_ShouldUpdateEmployeeCorrectly() { // Arrange var mockedRepository = new Mock <IRepository <EmployeePaycheck> >(); var emplPaycheckService = new EmployeePaycheckService(mockedRepository.Object); EmployeePaycheck paycheck = new FakeEmployeePaycheck(); paycheck.Id = 2; // Act emplPaycheckService.Create(paycheck); emplPaycheckService.UpdateById(2, paycheck); // Assert mockedRepository.Verify(x => x.Update(paycheck), Times.Once); }
public void GetById_ShouldInvokeOnlyOnce() { // Arrange var mockedRepository = new Mock <IRepository <EmployeePaycheck> >(); var paycheckService = new EmployeePaycheckService(mockedRepository.Object); var paycheck = new FakeEmployeePaycheck(); paycheck.Id = 2; // Act paycheckService.Create(paycheck); paycheckService.GetById(paycheck.Id); // Assert mockedRepository.Verify(r => r.GetById(paycheck.Id), Times.Once); }