public decimal CalculateWage(int id) { //if (!_gateway.Connected) //{ // return 0; //} WorkingStatistics ws = null; try { ws = _gateway.GetWorkingStatistics(id); } catch (Exception ex) { return(0); } decimal wage; if (ws.PayHourly) { wage = ws.WorkingHours * ws.HourSalary; } else { wage = ws.MonthSalary; } _logger.Info($"Customer ID={id}, Wage:{wage}"); return(wage); }
public void CalculateWage_HourlyPayed_ReturnsCorrectWage() { var gateway = Substitute.For <IDbGateway>(); var workingStatistics = new WorkingStatistics() { PayHourly = true, HourSalary = 100, WorkingHours = 10 }; gateway.GetWorkingStatistics(Arg.Any <int>()).ReturnsForAnyArgs(workingStatistics); const decimal expectedWage = 100 * 10; var sut = new Customer(gateway, Substitute.For <ILogger>()); decimal actual = sut.CalculateWage(Arg.Any <int>()); Assert.That(actual, Is.EqualTo(expectedWage).Within(0.1)); }
public decimal CalculateWage(int id) { WorkingStatistics ws = _gateway.GetWorkingStatistics(id); decimal wage; if (ws.PaytHourly) { wage = ws.WorkingHours * ws.HourSalary; } else { wage = ws.MonthlySalary; } _logger.Info($"Customer ID={id}, Wage:{wage}"); return(wage); }
public void SetWorkingStatistics(WorkingStatistics ws) { _ws = ws; }
public void SetWorkingStatistic(WorkingStatistics ws) { this.ws = ws; }