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));
        }
示例#2
0
        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));
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }
示例#7
0
        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);
        }
示例#8
0
        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);
        }
示例#10
0
        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);
        }
示例#11
0
        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);
        }