public void SharedFundAppService_Withdraw() { const int employeeId = 1; const decimal balance = 560M; var sharedFunds = new List <SharedFund> { GenerateSharedFund() }; var ruleToWithdraw = RuleToWithdraw.GetRulesToWithdraw() .Where(r => r.MaxBalance >= balance) .OrderBy(r => r.MaxBalance) .FirstOrDefault(); var percentage = ruleToWithdraw.Limit / 100M; var limitValue = balance * percentage; var toWithdraw = ruleToWithdraw.FixedMoney + limitValue; List <string> messagesErrors; _employeeService.Setup(e => e.CheckIfItBirthday(employeeId, out messagesErrors)).Returns(true); _sharedFundRepository.Setup(s => s.GetByEmployeeId(employeeId)).Returns(sharedFunds); _inflationAdjustService.Setup(i => i.InflationAdjustment(sharedFunds)).Returns(balance); _sharedFundRepository.Setup(s => s.Insert(It.IsAny <SharedFund>())); _sharedFundAppService = new SharedFundAppService(_sharedFundRepository.Object, _inflationAdjustService.Object, _employeeService.Object); var result = _sharedFundAppService.Withdraw(employeeId); Assert.NotNull(result); Assert.NotNull(result.Return); Assert.False(result.MessageErrors.Any()); Assert.False(result.ValidationErrors.Any()); Assert.Equal(toWithdraw, result.Return.ToDecimal()); }
private Result Add(SharedFund sharedFund) { _sharedFundRepository.Setup(s => s.Insert(sharedFund)); _sharedFundAppService = new SharedFundAppService(_sharedFundRepository.Object, _inflationAdjustService.Object, _employeeService.Object); return(_sharedFundAppService.Add(sharedFund)); }
public void SharedFundAppService_GetBalance() { const int employeeId = 1; const decimal balance = 560M; var sharedFunds = new List <SharedFund> { GenerateSharedFund() }; _sharedFundRepository.Setup(s => s.GetByEmployeeId(employeeId)).Returns(sharedFunds); _inflationAdjustService.Setup(i => i.InflationAdjustment(sharedFunds)).Returns(balance); _sharedFundAppService = new SharedFundAppService(_sharedFundRepository.Object, _inflationAdjustService.Object, _employeeService.Object); var result = _sharedFundAppService.GetBalance(employeeId); Assert.NotNull(result); Assert.NotNull(result.Return); Assert.False(result.MessageErrors.Any()); Assert.False(result.ValidationErrors.Any()); Assert.Equal(balance, result.Return.ToDecimal()); }
public SharedFundController(ISharedFundAppService sharedFundAppService) { _sharedFundAppService = sharedFundAppService; }