static void Main(string[] args) { try { //IMPORTANT: Before running this, set the document folder in the DocumentService, and ensure Employees.txt is in that folder. Console.WriteLine("Hello World!"); var parseService = new ParseService(); var documentService = new DocumentService(); var employeeService = new EmployeeService(parseService, documentService); //1. Gets all paycheck data and creates a document. var paycheckService = new PaycheckService(employeeService, documentService); var paycheckData = paycheckService.GetPaychecks(); //2. Gets top earners and creates a document. var topEarners = paycheckService.GetTopEarners(paycheckData); //3. Gets state data and creates a document var medianService = new MedianService(); var stateService = new StateService(paycheckService, documentService, medianService); var stateData = stateService.GetStateData(paycheckData); //4. Gets ten random employees by EmployeeId and creates a text file with the time to get each of them. var tenRandomEmployees = employeeService.GetTenRandomEmployeesByEmployeeId(logElapsedTime: true); Console.WriteLine("All done! Good-bye world!"); } catch (Exception ex) { string json = JsonConvert.SerializeObject(ex); Console.WriteLine(json); } Console.Read(); }
private Paymentslip GeraContraChequeFuncionarioPobre() { var funcionario = CriaEmployeeFakePobre(); var funcionario_salvo = _service.Criar(funcionario); var servicePayCheck = new PaycheckService(funcionario_salvo); return(servicePayCheck.GetContraCheque()); }
public void Deve_VerificarAlicotaMaxima_QuandoGerar_ContraCheque() { var funcionario = CriaEmployeeFakePobre(); var funcionario_salvo = _service.Criar(funcionario); var servicePayCheck = new PaycheckService(funcionario_salvo); var paycheck = servicePayCheck.GetContraCheque(); }
public void PaycheckService_OnWork_ThrowExceptionWhenTryValidade() { // Arrange var referenceMonth = DateTime.Now; var service = new PaycheckService(new EmployeeValidator()); // Assert Assert.ThrowsAsync <Exception>(() => service.CreatePaycheck(_employeeFixture.GenerateInvalidEmployee(), referenceMonth)); }
public void Deve_VerificarSalarioFuncionario_QuandoGerar_ContraCheque() { var funcionario = CriaEmployeeFakePobre(); var funcionario_salvo = _service.Criar(funcionario); var servicePayCheck = new PaycheckService(funcionario_salvo); var paycheck = servicePayCheck.GetContraCheque(); Assert.AreEqual(paycheck.Employee.SalarioBruto, funcionario_salvo.SalarioBruto); }
public async Task <IActionResult> Show(int id) { var chave = id.ToString(); string existeChave = String.Empty; try { existeChave = await _cacheDistribuido.GetStringAsync(chave); } catch { existeChave = String.Empty; // logger } Paymentslip slip; if (!string.IsNullOrEmpty(existeChave)) { return(Ok(existeChave)); } else { // busca o usuario var employee = funcionarioService.GetFuncionarioPorId(id); if (employee != null) { // cria servico caso exista funcionario var service = new PaycheckService(employee); // gera contracheque slip = service.GetContraCheque(); // adiciona obj serializado ao redis try { var cacheSettings = new DistributedCacheEntryOptions(); cacheSettings.SetAbsoluteExpiration(TimeSpan.FromHours(1)); await _cacheDistribuido.SetStringAsync(chave, JsonConvert.SerializeObject(slip)); } catch { } } else { return(NotFound("Funcionario nao localizado")); } } return(Ok(slip)); }
public void PaycheckService_OnWork_CalculateFgtsCorrectly() { // Arrange var referenceMonth = DateTime.Now; var service = new PaycheckService(new EmployeeValidator()); var paycheck = service.CreatePaycheck(_employeeFixture.GenerateValidEmployee(), referenceMonth).Result; var fgts = paycheck.Payload.Entries.Find(x => x.Description == "FGTS"); // Assert Assert.Equal(5000 * (8m / 100), fgts.Value); }
public void PaycheckService_OnWork_GenerateAValidPaycheck() { // Arrange var referenceMonth = DateTime.Now; var service = new PaycheckService(new EmployeeValidator()); // Act var paycheck = service.CreatePaycheck(_employeeFixture.GenerateValidEmployee(), referenceMonth).Result; // Assert Assert.True(paycheck.Payload != null); Assert.False(paycheck.ErrorMessages.Any()); }
public void PaycheckValidator_OnValidade_MustPassValidation() { // Arrange var referenceMonth = DateTime.Today; var validator = new PaycheckValidator(); var paycheckService = new PaycheckService(new EmployeeValidator()); var paycheck = paycheckService.CreatePaycheck(_employeeFixture.GenerateValidEmployee(), referenceMonth).Result; // Act var result = validator.Validate(paycheck.Payload); // Assert Assert.True(result.IsValid); Assert.False(result.Errors.Any()); }
public void PaycheckService_OnWork_CalculateIrpfCorrectly() { // Arrange var referenceMonth = DateTime.Now; var service = new PaycheckService(new EmployeeValidator()); var paycheck = service.CreatePaycheck(_employeeFixture.GenerateValidEmployee(), referenceMonth).Result; var irrf = paycheck.Payload.Entries.Find(x => x.Description == "IRRF"); var noIrrf = service .CreatePaycheck(_employeeFixture.GenerateValidEmployeeNoIrrfDiscount(), referenceMonth) .Result.Payload.Entries.Find(x => x.Description == "IRRF"); // Assert Assert.Equal((5000 * (27.5m / 100)) - 869.36m, irrf.Value); Assert.Equal(0, noIrrf.Value); }
public void PaycheckService_OnWork_CalculateTransportTicketCorrectly() { // Arrange var referenceMonth = DateTime.Now; var service = new PaycheckService(new EmployeeValidator()); var paycheck = service.CreatePaycheck(_employeeFixture.GenerateValidEmployee(), referenceMonth).Result; var tt = paycheck.Payload.Entries.Find(x => x.Description == "Vale Transporte"); var noTt = service .CreatePaycheck(_employeeFixture.GenerateValidEmployeeNoOptionalDiscounts(), referenceMonth) .Result.Payload.Entries.Find(x => x.Description == "Vale Transporte"); // Assert Assert.Equal(5000 * (6m / 100), tt.Value); Assert.Equal(0, noTt.Value); }
public void PaycheckService_OnWork_CalculateDentalPlanCorrectly() { // Arrange var referenceMonth = DateTime.Now; var service = new PaycheckService(new EmployeeValidator()); var paycheck = service.CreatePaycheck(_employeeFixture.GenerateValidEmployee(), referenceMonth).Result; var dp = paycheck.Payload.Entries.Find(x => x.Description == "Plano Dentário"); var noDp = service .CreatePaycheck(_employeeFixture.GenerateValidEmployeeNoOptionalDiscounts(), referenceMonth) .Result.Payload.Entries.Find(x => x.Description == "Plano Dentário"); // Assert Assert.Equal(5, dp.Value); Assert.Equal(0, noDp.Value); }
public void PaycheckHandler_OnInsertEmployee_InsertEmployeeCorrectly() { // Arrange var context = new Mock <IEmployeeContext>(); var validator = new EmployeeValidator(); var service = new PaycheckService(validator); var handler = new Mock <PaycheckHandler>(service, context.Object, validator); var emp = _employeeFixture.GenerateValidEmployeeDto(); // Act var result = handler.Object.AddEmployee(emp).Result; // Assert Assert.True(Guid.TryParse(result.ToString(), out var guid)); }
public void SetUp() { _calculationService = new Mock <ICalculationService>(); _paycheckService = new PaycheckService(_calculationService.Object); }