public void PositiveTest_GetPayslip_ByCorrectId_CorrectTaxCalculation_4() { var employeeMock1 = new Mock <Employee>().As <ITaxableEmployee>(); employeeMock1.Setup(emp => emp.FirstName).Returns("FirstName"); employeeMock1.Setup(emp => emp.LastName).Returns("LastName"); employeeMock1.Setup(emp => emp.PaymentStartDate).Returns(new DateTime(2018, 03, 01)); employeeMock1.Setup(emp => emp.AnualSalary).Returns(200000); employeeMock1.Setup(emp => emp.SuperRate).Returns(11); List <ITaxableEmployee> taxableEmployees = new List <ITaxableEmployee> { employeeMock1.Object }; var mockRepo = new Mock <IProxyRepo <ITaxableEmployee> >(); mockRepo.Setup(x => x.Entities).Returns(taxableEmployees); var SUT = new PayslipController(mockRepo.Object); var getResponse = SUT.Get(0); var paySlip = (getResponse as System.Web.Http.Results.JsonResult <IPayslip>).Content; Assert.IsNotNull(paySlip); Assert.AreEqual(16667, paySlip.GrossIncome); Assert.AreEqual(5269, paySlip.IncomeTax); Assert.AreEqual(11398, paySlip.NetIncome); Assert.AreEqual(1833, paySlip.SuperAmount); }
public void PositiveTest_GetPayslip_WithNoId_APIReferenceStringReturned() { var SUT = new PayslipController(); var getResponse = SUT.Get(); Assert.AreEqual("user api/Payslip/id to get payslip of Employee", (getResponse as System.Web.Http.Results.JsonResult <EmptyResult>).Content.Message); }
public void Test_GetPayslip_3() { var payslipController = new PayslipController(); payslipController.Request = new HttpRequestMessage(); payslipController.Configuration = new HttpConfiguration(); var employee = new Employee() { FirstName = "Uvika", LastName = "Khatri", AnnualSalary = 10000, StartDate = new DateTime(2018, 06, 30), SuperRate = 0 }; Payslip paySlip; var response = payslipController.CreatePaySlip(employee); Assert.AreEqual(response.StatusCode, HttpStatusCode.OK); Assert.IsTrue(response.TryGetContentValue <Payslip>(out paySlip)); Assert.IsNotNull(paySlip); Assert.AreEqual(833, paySlip.GrossIncome); Assert.AreEqual(0, paySlip.IncomeTax); Assert.AreEqual(833, paySlip.NetIncome); Assert.AreEqual(0, paySlip.SuperAnnuation); Assert.AreEqual("01 Jun 2018-30 Jun 2018", paySlip.PayPeriod); }
public void PositiveTest_GetPayslip_ByCorrectId_CorrectTaxCalculation_4() { var employee1 = new Employee() { FirstName = "FirstName1", LastName = "LastName1", AnualSalary = 200000, PaymentStartDate = new DateTime(2018, 03, 31), SuperRate = 11 }; var employeeControllerSUT = new EmployeeController(); var id = (employeeControllerSUT.Post(employee1).Result as OkNegotiatedContentResult <int>).Content; var SUT = new PayslipController(); var getResponse = SUT.Get(id); var paySlip = (getResponse as OkNegotiatedContentResult <IPayslip>).Content; Assert.IsNotNull(paySlip); Assert.AreEqual(16667, paySlip.GrossIncome); Assert.AreEqual(5269, paySlip.IncomeTax); Assert.AreEqual(11398, paySlip.NetIncome); Assert.AreEqual(1833, paySlip.SuperAmount); }
public void Upload_NoFilesUploaded_ReturnBadRequest() { //Arrange var file = new StreamContent(new MemoryStream(new Byte[100])); file.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg"); file.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data"); file.Headers.ContentDisposition.FileName = "image.jpeg"; var content = new MultipartFormDataContent(); content.Add(file); var requestMsg = new HttpRequestMessage(); requestMsg.Content = content; var mockMemoryStreamHelper = new Mock <IMemoryStreamHelper>(); mockMemoryStreamHelper.Setup(ms => ms.LoadFileInfo(It.IsAny <HttpContent>())).Returns((List <MultipartFileInfo>)null); var mockTaxCalculator = new Mock <IPayslipService>(); //Act var controller = new PayslipController(mockTaxCalculator.Object, mockMemoryStreamHelper.Object); controller.Request = requestMsg; var response = controller.Upload(); //Assert Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); Assert.AreEqual("Method only acccepts 1 csv file", response.Content.ReadAsStringAsync().Result); }
public void Test_GetPayslip_1() { var payslipController = new PayslipController(); var employee = new Employee() { FirstName = "Uvika", LastName = "Khatri", AnnualSalary = 60050, StartDate = new DateTime(2018, 03, 01), SuperRate = 9 }; payslipController.Request = new HttpRequestMessage(); payslipController.Configuration = new HttpConfiguration(); Payslip paySlip; var response = payslipController.CreatePaySlip(employee); Assert.IsTrue(response.TryGetContentValue <Payslip>(out paySlip)); Assert.IsNotNull(paySlip); Assert.AreEqual(5004, paySlip.GrossIncome); Assert.AreEqual(922, paySlip.IncomeTax); Assert.AreEqual(4082, paySlip.NetIncome); Assert.AreEqual(450, paySlip.SuperAnnuation); Assert.AreEqual("01 Mar 2018-31 Mar 2018", paySlip.PayPeriod); }
public void PositiveTest_GetPayslip_WithNoId_APIReferenceStringReturned() { var SUT = new PayslipController(); var getResponse = SUT.Get(); Assert.AreEqual("user api/Payslip/id to get payslip of Employee", (getResponse as OkNegotiatedContentResult <string>).Content); }
public void NegativeTest_GetPayslip1() { var payslipController = new PayslipController(); var result = (payslipController.CreatePaySlip(null)); // Assert Assert.IsInstanceOfType(result, typeof(NotFoundResult)); }
public void PayslipInValidInputTest() { var payslipController = new PayslipController(_payslipService); var result = payslipController.Generatepayslip("David,Rudd,6,,dsf,0050,9%,01 March – 31 March"); Assert.IsNotNull(result); Assert.IsInstanceOf <BadRequestObjectResult>(result); }
public void PayslipController_API_Request() { var employee = new Employee { FirstName = "Ram", LastName = "Kumar", AnnualSalary = 10, PaymentStartDate = "sd", SuperRate = 0 }; var target = new PayslipController(_mockTax.Object); var result = target.Post(employee); }
public void NegativeTest_GetPayslip1() { var payslipController = new PayslipController(); payslipController.Request = new HttpRequestMessage(); payslipController.Configuration = new HttpConfiguration(); var response = (payslipController.CreatePaySlip(null)); // Assert Assert.AreEqual(response.StatusCode, HttpStatusCode.NotFound); }
public void PayslipValidInputTest() { var payslipController = new PayslipController(_payslipService); var result = payslipController.Generatepayslip("David,Rudd,60050,9%,01 March – 31 March"); Assert.IsNotNull(result); Assert.IsInstanceOf <OkObjectResult>(result); var response = result as OkObjectResult; Assert.AreEqual("David Rudd,01 March – 31 March,5004,922,4082,450", response.Value); }
public new void Setup() { base.SetUp(); var mockPayslipManager = new Mock <IPayslipManager>(); mockPayslipManager.Setup(x => x.GeneratePayslip(EmployeeDetails)).Returns(new PayslipDetails() { Name = EmployeeDetails.FirstName + " " + EmployeeDetails.LastName, Super = 450, GrossIncome = 5004, IncomeTax = 922, PayPeriod = EmployeeDetails.PaymentStartDate }); _payslipManager = mockPayslipManager.Object; var mockEmpCsvDal = new Mock <ICsvDal <EmployeeDetails> >(); mockEmpCsvDal.Setup(x => x.ReadCsv(It.IsAny <IFormFile>())).Returns(new List <EmployeeDetails>() { EmployeeDetails, new EmployeeDetails() { FirstName = EmployeeDetails.FirstName, LastName = EmployeeDetails.LastName, AnnualSalary = 120000, SuperRate = 10, PaymentStartDate = EmployeeDetails.PaymentStartDate } }); _empCsvDal = mockEmpCsvDal.Object; var mockPayCsvDal = new Mock <ICsvDal <PayslipDetails> >(); mockPayCsvDal.Setup(x => x.WriteCsv(It.IsAny <IEnumerable <PayslipDetails> >())).Returns(new byte[10]); _payCsvDal = mockPayCsvDal.Object; var fileMock = new Mock <IFormFile>(); _file = fileMock.Object; _payslipController = new PayslipController(_payslipManager, _empCsvDal, _payCsvDal); var objectValidator = new Mock <IObjectModelValidator>(); objectValidator.Setup(o => o.Validate(It.IsAny <ActionContext>(), It.IsAny <ValidationStateDictionary>(), It.IsAny <string>(), It.IsAny <object>())); _payslipController.ObjectValidator = objectValidator.Object; }
public void Upload_UnsupportedMediaType_Throw_HttpResponseException() { //Arrange var requestMsg = new HttpRequestMessage(); requestMsg.Content = new StringContent("plain string"); //Act var mockMemoryStreamHelper = new Mock <IMemoryStreamHelper>(); var mockTaxCalculator = new Mock <IPayslipService>(); var controller = new PayslipController(mockTaxCalculator.Object, mockMemoryStreamHelper.Object); controller.Request = requestMsg; //Assert controller.Upload(); }
public void NegativeTest_GetPayslip2() { var payslipController = new PayslipController(); var employee = new Employee() { FirstName = "Uvika", LastName = "Khatri", AnnualSalary = -200, StartDate = new DateTime(2018, 06, 30), SuperRate = -3 }; var result = (payslipController.CreatePaySlip(employee)); // Assert Assert.IsInstanceOfType(result, typeof(NotFoundResult)); }
public void Upload_CsvFileWith1DataRow_ReturnsCsv() { //Arrange var file = new StreamContent(new MemoryStream(new Byte[100])); file.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg"); file.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data"); file.Headers.ContentDisposition.FileName = "image.jpeg"; var content = new MultipartFormDataContent(); content.Add(file); var requestMsg = new HttpRequestMessage(); requestMsg.Content = content; var mockMemoryStreamHelper = new Mock <IMemoryStreamHelper>(); var stream = new MemoryStream(Encoding.UTF8.GetBytes(@"first name,last name,annual salary,super rate (%),payment start date David,Rudd,60050,9%,01 March - 31 March")); mockMemoryStreamHelper.Setup(ms => ms.LoadFileInfo(It.IsAny <HttpContent>())).Returns(new List <MultipartFileInfo>() { new MultipartFileInfo() { FileName = "info.csv", Stream = stream } }); var mockPayslipService = new Mock <IPayslipService>(); mockPayslipService.Setup(ps => ps.GeneratePayslipForEmployee(It.IsAny <EmployeeInformation>())).Returns(new PayslipInfo()); //Act var controller = new PayslipController(mockPayslipService.Object, mockMemoryStreamHelper.Object); controller.Request = requestMsg; var response = controller.Upload(); //Assert Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.AreEqual("text/csv", response.Content.Headers.ContentType.MediaType.ToString()); }
public void NegativeTest_GetPayslip2() { var payslipController = new PayslipController(); payslipController.Request = new HttpRequestMessage(); payslipController.Configuration = new HttpConfiguration(); var employee = new Employee() { FirstName = "Uvika", LastName = "Khatri", AnnualSalary = -200, StartDate = new DateTime(2018, 06, 30), SuperRate = -3 }; var response = (payslipController.CreatePaySlip(employee)); // Assert Assert.AreEqual(response.StatusCode, HttpStatusCode.BadRequest); }
public void NegativeTest_GetPayslip_ByWrongId_CorrectTaxCalculation() { var employee1 = new Employee() { FirstName = "FirstName1", LastName = "LastName1", AnualSalary = 60050, PaymentStartDate = new DateTime(2018, 03, 31), SuperRate = 9 }; var employeeControllerSUT = new EmployeeController(); var id = (employeeControllerSUT.Post(employee1).Result as OkNegotiatedContentResult <int>).Content; var SUT = new PayslipController(); var getResponse = SUT.Get(499999); Assert.IsInstanceOfType(getResponse, typeof(NotFoundResult)); }
public void Upload_CsvFileWithBadData_ReturnsBadRequest() { //Arrange var file = new StreamContent(new MemoryStream(new Byte[100])); file.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg"); file.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data"); file.Headers.ContentDisposition.FileName = "image.jpeg"; var content = new MultipartFormDataContent(); content.Add(file); var requestMsg = new HttpRequestMessage(); requestMsg.Content = content; var mockMemoryStreamHelper = new Mock <IMemoryStreamHelper>(); var stream = new MemoryStream(Encoding.UTF8.GetBytes(@"first name,last name,annual salary,,payment start date David,Rudd,60050,9%")); mockMemoryStreamHelper.Setup(ms => ms.LoadFileInfo(It.IsAny <HttpContent>())).Returns(new List <MultipartFileInfo>() { new MultipartFileInfo() { FileName = "info.csv", Stream = stream } }); var mockTaxCalculator = new Mock <IPayslipService>(); //Act var controller = new PayslipController(mockTaxCalculator.Object, mockMemoryStreamHelper.Object); controller.Request = requestMsg; var response = controller.Upload(); //Assert Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); Assert.IsTrue(response.Content.ReadAsStringAsync().Result.StartsWith("The CSV appears to be corrupt")); }
public void GenerateBulkPayslipInValidInputTest() { var fileMock = new Mock <IFormFile>(); var content = "David,Rudd,60050,9%,,,,01 March – 31 March\nRyan,Chen,120000,10 %,,,01 March – 31 March"; var fileName = "validinput.csv"; using (var ms = new MemoryStream()) using (var writer = new StreamWriter(ms)) { writer.Write(content); writer.Flush(); ms.Position = 0; fileMock.Setup(_ => _.OpenReadStream()).Returns(ms); fileMock.Setup(_ => _.FileName).Returns(fileName); fileMock.Setup(_ => _.Length).Returns(ms.Length); var file = fileMock.Object; var payslipController = new PayslipController(_payslipService); var result = payslipController.GenerateBulkPayslip(file); Assert.IsNotNull(result); Assert.IsInstanceOf <BadRequestObjectResult>(result); } }
public void Test_GetPayslip_1() { var payslipController = new PayslipController(); var employee = new Employee() { FirstName = "Uvika", LastName = "Khatri", AnnualSalary = 60050, StartDate = new DateTime(2018, 03, 01), SuperRate = 9 }; var paySlip = (payslipController.CreatePaySlip(employee) as OkNegotiatedContentResult <Payslip>).Content; Assert.IsNotNull(paySlip); Assert.AreEqual(5004, paySlip.GrossIncome); Assert.AreEqual(922, paySlip.IncomeTax); Assert.AreEqual(4082, paySlip.NetIncome); Assert.AreEqual(450, paySlip.SuperAnnuation); Assert.AreEqual("01 Mar 2018-31 Mar 2018", paySlip.PayPeriod); }
public void Test_GetPayslip_4() { var payslipController = new PayslipController(); var employee = new Employee() { FirstName = "Uvika", LastName = "Khatri", AnnualSalary = 20000, StartDate = new DateTime(2018, 06, 30), SuperRate = 3 }; var paySlip = (payslipController.CreatePaySlip(employee) as OkNegotiatedContentResult <Payslip>).Content; Assert.IsNotNull(paySlip); Assert.AreEqual(1667, paySlip.GrossIncome); Assert.AreEqual(28, paySlip.IncomeTax); Assert.AreEqual(1639, paySlip.NetIncome); Assert.AreEqual(50, paySlip.SuperAnnuation); Assert.AreEqual("01 Jun 2018-30 Jun 2018", paySlip.PayPeriod); }
public void GeneratePayslips() { var controller = new PayslipController(); var payslips = controller.GeneratePayslip(_employees) as JsonResult; var payslipViewModels = payslips?.Data as List <PayslipViewModel>; var davidPayslips = payslipViewModels?.Single(x => x.Name == "David Rudd"); var ryanPayslips = payslipViewModels?.Single(x => x.Name == "Ryan Chen"); Assert.IsNotNull(payslipViewModels); // Assert.AreEqual(davidPayslips?.GrossIncome, 5004); Assert.AreEqual(davidPayslips?.IncomeTax, 922); Assert.AreEqual(davidPayslips?.NetIncome, 4082); Assert.AreEqual(davidPayslips?.Super, 450); // Assert.AreEqual(ryanPayslips?.GrossIncome, 10000); Assert.AreEqual(ryanPayslips?.IncomeTax, 2696); Assert.AreEqual(ryanPayslips?.NetIncome, 7304); Assert.AreEqual(ryanPayslips?.Super, 1000); }
public void NegativeTest_GetPayslip_ByWrongId_CorrectTaxCalculation() { var employeeMock1 = new Mock <Employee>().As <ITaxableEmployee>(); employeeMock1.Setup(emp => emp.FirstName).Returns("FirstName"); employeeMock1.Setup(emp => emp.LastName).Returns("LastName"); employeeMock1.Setup(emp => emp.PaymentStartDate).Returns(new DateTime(2018, 03, 01)); employeeMock1.Setup(emp => emp.AnualSalary).Returns(60050); employeeMock1.Setup(emp => emp.SuperRate).Returns(9); List <ITaxableEmployee> taxableEmployees = new List <ITaxableEmployee>(); taxableEmployees.Add(employeeMock1.Object); var mockRepo = new Mock <SalaryWebApp.Models.IProxyRepo <ITaxableEmployee> >(); mockRepo.Setup(x => x.Entities).Returns(taxableEmployees); var SUT = new PayslipController(mockRepo.Object); var getResponse = SUT.Get(1); Assert.AreEqual("No such employee", (getResponse as System.Web.Http.Results.JsonResult <EmptyResult>).Content.Message); }