public void CalculateDeifferentCredit() { var unitOfWork = new Mock <IUnitOfWork>(); var creditDTO = GetCreditDto(); var credit = GetCredit(); unitOfWork.Setup(repo => repo.Credits.Get(GetCreditDto().Id)).Returns(credit); unitOfWork.Setup(repo => repo.SpecialPercentagePeriods.AddRange(new List <SpecialPercentagePeriod>())).Returns(() => null); unitOfWork.Setup(repo => repo.MonthPayments.AddRange(new List <MonthPayment>())).Returns(() => null); unitOfWork.Setup(repo => repo.Complete()).Returns(() => Task.Run(() => 1)); var mockMapper = new MapperConfiguration(cfg => { cfg.AddProfile(new AutomapperProfile()); }); var mapper = mockMapper.CreateMapper(); var creditService = new CreditService(unitOfWork.Object, mapper); var result = creditService.Calculate(creditDTO); var firstPersantege = GetCreditDto().SpecialPersentages.Count > 0 ? GetCreditDto().SpecialPersentages.First().MonthPercentage : GetCreditDto().BasePercenteges; Assert.True(result.Result.IsSuccess); Assert.Equal(GetCreditDto().MonthsCount, result.Result?.ReturnValue?.MonthPayments.Count()); var percentegePayment = GetCreditDto().Amount *firstPersantege / 100 / 12; Assert.Equal(percentegePayment, result.Result.ReturnValue.MonthPayments.FirstOrDefault()?.PersentegesPyment); }