public void Deal_Quota_Deletion_Must_Be_Ok() { var deal = new Deal("Тестовая сделка", user) { Id = 1 }; var quota1 = new DealQuota("Тестовая квота 1", 10) { Id = 2 }; var quota2 = new DealQuota("Тестовая квота 2", 99) { Id = 3 }; deal.AddQuota(quota1); deal.AddQuota(quota2); Assert.AreEqual(2, deal.QuotaCount); deal.RemoveQuota(quota2, true); Assert.AreEqual(1, deal.QuotaCount); Assert.AreEqual(null, quota2.DeletionDate); }
public void Init() { storage = new Storage("Тестовое место хранения", StorageType.DistributionCenter) { Id = 1 }; user = new User(new Employee("Иван", "Иванов", "Иванович", new EmployeePost("Менеджер"), null), "Иванов Иван", "ivanov", "pa$$w0rd", new Team("Тестовая команда", null), null); economicAgent = new PhysicalPerson(new LegalForm("Легал форм", EconomicAgentType.PhysicalPerson)); accountOrganization = new AccountOrganization("Орг1 кор имя", "орг1 длин имя", economicAgent) { Id = 1 }; clientOrganization = new ClientOrganization("client org", "cllll", economicAgent) { Id = 3 }; storage.AddAccountOrganization(accountOrganization); deal = new Deal("Тестовая сделка", user) { Id = 2 }; client = new Client("клиент1", new ClientType("основной тип клиента"), ClientLoyalty.Follower, new ClientServiceProgram("программа 1"), new ClientRegion("Регион 1"), 10); deal.Contract = new ClientContract(accountOrganization, clientOrganization, "Договор 1", "1", DateTime.Now, DateTime.Now); client.AddDeal(deal); quota = new DealQuota("Тестовая квота", 20, 14, 20000.0M) { Id = 3 }; deal.AddQuota(quota); team = new Mock <Team>(); expenditureWaybill = new ExpenditureWaybill("123", DateTime.Today, storage, deal, team.Object, quota, false, user, DeliveryAddressType.ClientAddress, "", DateTime.Today, user); }
public void CheckPossibilityToRemoveQuota(Deal deal, DealQuota quota, User user) { // права CheckPermissionToPerformOperation(deal, user, Permission.Deal_Quota_Remove); // сущность deal.CheckPossibilityToRemoveQuota(quota); }
public void Delete(DealQuota quota, User user) { CheckPossibilityToDelete(quota, user); RemoveDealQuotaFromAllDeals(quota); dealQuotaRepository.Delete(quota); }
public void DealQuota_Without_Prepayment_InitialParameters_Must_Be_Set() { var quota = new DealQuota("Тестовая квота", 20, 15, 10000); Assert.AreEqual(20, quota.DiscountPercent); Assert.AreEqual(10000, quota.CreditLimitSum); Assert.AreEqual((short)15, quota.PostPaymentDays); Assert.IsFalse(quota.IsPrepayment); }
public void CheckPossibilityToEdit(DealQuota dealQuota, User user, bool checkLogic = true) { CheckPermissionToPerformOperation(user, Permission.DealQuota_Edit); if (checkLogic) { ValidationUtils.Assert(!AreDealQuotaSales(dealQuota), "Невозможно изменить квоту, по которой имеются накладные реализации."); } }
/// <summary> /// Проверка имени квоты на уникальность /// </summary> /// <param name="deal">Квота</param> public void CheckDealQuotaNameUniqueness(DealQuota dealQuota) { var isUnique = dealQuotaRepository.Query <DealQuota>().Where(x => x.Name == dealQuota.Name && x.Id != dealQuota.Id).Count() == 0; if (!isUnique) { throw new Exception(String.Format("Квота с названием «{0}» уже существует.", dealQuota.Name)); } }
public void RemoveDealQuotaFromAllDeals(DealQuota quota) { var dealsQuery = dealQuotaRepository.Query <Deal>(); dealsQuery.Restriction <DealQuota>(x => x.Quotas).Where(x => x.Id == quota.Id); var deals = dealsQuery.ToList <Deal>(); foreach (var deal in deals) { deal.RemoveQuota(quota, false); } }
public bool IsPossibilityToDelete(DealQuota dealQuota, User user) { try { CheckPossibilityToDelete(dealQuota, user); return(true); } catch { return(false); } }
public bool IsPossibilityToEdit(DealQuota dealQuota, User user, bool checkLogic = true) { try { CheckPossibilityToEdit(dealQuota, user, checkLogic); return(true); } catch { return(false); } }
public bool IsPossibilityToRemoveQuota(Deal deal, DealQuota quota, User user) { try { CheckPossibilityToRemoveQuota(deal, quota, user); return(true); } catch { return(false); } }
public void DealQuota_With_Prepayment_InitialParameters_Must_Be_Set() { var quota = new DealQuota("Тестовая квота", 50); Assert.AreEqual("Тестовая квота", quota.Name); Assert.AreEqual(50, quota.DiscountPercent); Assert.AreEqual(DateTime.Today, quota.CreationDate.Date); Assert.IsNull(quota.CreditLimitSum); Assert.IsNull(quota.DeletionDate); Assert.IsNull(quota.EndDate); Assert.AreEqual(0, quota.Id); Assert.IsTrue(quota.IsPrepayment); Assert.IsNull(quota.PostPaymentDays); Assert.AreEqual(DateTime.Today, quota.StartDate.Date); }
public void Deal_Quota_Addition_Must_Be_Ok() { var deal = new Deal("Тестовая сделка", user) { Id = 1 }; var quota = new DealQuota("Тестовая квота", 10) { Id = 2 }; deal.AddQuota(quota); Assert.AreEqual(1, deal.QuotaCount); Assert.AreEqual(2, deal.Quotas.ElementAt(0).Id); Assert.AreEqual(1, deal.Id); Assert.AreEqual(DateTime.Today, quota.StartDate.Date); }
public void Init() { creationDate = DateTime.Now; currentDate = DateTime.Now; storage = new Storage("qwe", StorageType.ExtraStorage); deal = new Mock <Deal>(); quota = new DealQuota("asd", 10, 45, 15000); user = new Mock <User>(); createdBy = new Mock <User>(); team = new Mock <Team>(); contract = new Mock <ClientContract>(); accountOrganization = new Mock <AccountOrganization>(); valueAddedTax = new ValueAddedTax("18%", 18); ag = new ArticleGroup("Группа товаров", "Группа товаров"); art1 = new Article("Товар 1", ag, new MeasureUnit("шт.", "штуки", "123", 1), false); art2 = new Article("Товар 2", ag, new MeasureUnit("шт.", "штуки", "123", 1), false); art3 = new Article("Товар 3", ag, new MeasureUnit("шт.", "штуки", "123", 1), false); prices = new List <ArticleAccountingPrice>(); prices.Add(new ArticleAccountingPrice(art1, 10M)); prices.Add(new ArticleAccountingPrice(art2, 13M)); prices.Add(new ArticleAccountingPrice(art3, 15M)); receiptWaybillRow = new ReceiptWaybillRow(art1, 150, valueAddedTax, 75); user.Setup(x => x.Id).Returns(43); createdBy.Setup(x => x.Id).Returns(1); team.Setup(x => x.Id).Returns(1); deal.Setup(x => x.IsActive).Returns(true); deal.Setup(x => x.IsClosed).Returns(false); deal.Setup(x => x.Quotas).Returns(new List <DealQuota> { quota }); deal.Setup(x => x.Contract).Returns(contract.Object); deal.Setup(x => x.Id).Returns(2); accountOrganization.Setup(x => x.Storages).Returns(new List <Storage> { storage }); contract.Setup(x => x.AccountOrganization).Returns(accountOrganization.Object); waybill = new ExpenditureWaybill("123", currentDate, storage, deal.Object, team.Object, quota, false, user.Object, DeliveryAddressType.CustomAddress, "qwerty", creationDate, createdBy.Object); waybillRow = new ExpenditureWaybillRow(receiptWaybillRow, 10, valueAddedTax); waybill.AddRow(waybillRow); }
/// <summary> /// Проверка наличия накладных реализации по квоте /// </summary> /// <param name="quota">Квота</param> /// <returns><value>true</value>, если существует хотя бы одна накладная реализации; <value>false</value> иначе</returns> private bool AreDealQuotaSales(DealQuota quota) { return(dealQuotaRepository.Query <SaleWaybill>().Where(x => x.Quota.Id == quota.Id).Count() > 0); }
public void Init() { employee1 = new Employee("Работник 1 имя", "Работник 1 фамилия", "Работник 1 отчество", new EmployeePost("Работник 1 пост"), null); curator = new User(employee1, "Куратор", "log", "pas", new Team("Тестовая команда", null), null); team = new Team("123", curator); economicAgent = new PhysicalPerson(new LegalForm("Легал форм", EconomicAgentType.PhysicalPerson)); accountOrganization = new AccountOrganization("Орг1 кор имя", "орг1 длин имя", economicAgent) { Id = 1 }; accountOrganizationAnother = new AccountOrganization("Орг2 кор имя", "орг2 длин имя", economicAgent) { Id = 2 }; clientOrganization = new ClientOrganization("client org", "cllll", economicAgent) { Id = 3 }; client = new Client("клиент1", new ClientType("основной тип клиента"), ClientLoyalty.Follower, new ClientServiceProgram("программа 1"), new ClientRegion("Регион 1"), 10); deal = new Deal("Тестовая сделка", curator); client.AddDeal(deal); storage = new Storage("Склад 1", StorageType.ExtraStorage); storage.AddAccountOrganization(accountOrganization); storage.AddAccountOrganization(accountOrganizationAnother); storage2 = new Storage("Склад 2", StorageType.ExtraStorage); returnFromClientReason = new ReturnFromClientReason("Брак"); returnFromClientWaybill = new ReturnFromClientWaybill("142", DateTime.Today, accountOrganization, deal, team, storage, returnFromClientReason, curator, curator, DateTime.Now); valueAddedTax = new ValueAddedTax("18%", 18); ag = new ArticleGroup("Группа товаров", "Группа товаров"); art1 = new Article("Товар 1", ag, new MeasureUnit("шт.", "штуки", "123", 1), false); art2 = new Article("Товар 2", ag, new MeasureUnit("шт.", "штуки", "123", 1), false); art3 = new Article("Товар 3", ag, new MeasureUnit("шт.", "штуки", "123", 1), false); Prices = new List <ArticleAccountingPrice>(); Prices.Add(new ArticleAccountingPrice(art1, 10M)); Prices.Add(new ArticleAccountingPrice(art2, 13M)); Prices.Add(new ArticleAccountingPrice(art3, 15M)); deal1 = new Deal("Deal1", curator); deal2 = new Deal("Deal2", curator); quota1 = new DealQuota("qq", 1); quota2 = new DealQuota("qq", 2); deal1.AddQuota(quota1); deal2.AddQuota(quota2); deal1.Contract = new ClientContract(accountOrganization, clientOrganization, "Договор", "1", DateTime.Now, DateTime.Now); deal2.Contract = new ClientContract(accountOrganizationAnother, clientOrganization, "kk", "22", DateTime.Today, DateTime.Now); recRow1 = new ReceiptWaybillRow(art1, 5, 50, new ValueAddedTax("18%", 18)) { Id = Guid.NewGuid() }; recRow1_1 = new ReceiptWaybillRow(art1, 2, 30, new ValueAddedTax("18%", 18)) { Id = Guid.NewGuid() }; recRow2 = new ReceiptWaybillRow(art2, 7, 35, new ValueAddedTax("18%", 18)) { Id = Guid.NewGuid() }; recRow3 = new ReceiptWaybillRow(art3, 9, 90, new ValueAddedTax("18%", 18)) { Id = Guid.NewGuid() }; recRow1.PurchaseCost = 50 / 5; recRow1.PurchaseCost = 35 / 7; recRow1.PurchaseCost = 90 / 9; saleRow1 = new ExpenditureWaybillRow(recRow1, 3, valueAddedTax) { Id = Guid.NewGuid() }; saleRow1_1 = new ExpenditureWaybillRow(recRow1_1, 1, valueAddedTax) { Id = Guid.NewGuid() }; saleRow2 = new ExpenditureWaybillRow(recRow2, 4, valueAddedTax) { Id = Guid.NewGuid() }; saleRow3 = new ExpenditureWaybillRow(recRow3, 5, valueAddedTax) { Id = Guid.NewGuid() }; saleRowAnother1 = new ExpenditureWaybillRow(recRow1, 3, valueAddedTax) { Id = Guid.NewGuid() }; saleRowAnother2 = new ExpenditureWaybillRow(recRow2, 4, valueAddedTax) { Id = Guid.NewGuid() }; saleRowAnother3 = new ExpenditureWaybillRow(recRow3, 5, valueAddedTax) { Id = Guid.NewGuid() }; sale = new ExpenditureWaybill("1", DateTime.Today, storage, deal1, team, quota1, true, curator, DeliveryAddressType.ClientAddress, "", DateTime.Now, curator) { Id = Guid.NewGuid() }; saleAnother = new ExpenditureWaybill("1", DateTime.Today, storage, deal2, team, quota2, true, curator, DeliveryAddressType.ClientAddress, "", DateTime.Now, curator) { Id = Guid.NewGuid() }; sale.As <ExpenditureWaybill>().AddRow((ExpenditureWaybillRow)saleRow1); sale.As <ExpenditureWaybill>().AddRow((ExpenditureWaybillRow)saleRow2); sale.As <ExpenditureWaybill>().AddRow((ExpenditureWaybillRow)saleRow3); saleAnother.As <ExpenditureWaybill>().AddRow((ExpenditureWaybillRow)saleRowAnother1); saleAnother.As <ExpenditureWaybill>().AddRow((ExpenditureWaybillRow)saleRowAnother2); saleAnother.As <ExpenditureWaybill>().AddRow((ExpenditureWaybillRow)saleRowAnother3); sale.As <ExpenditureWaybill>().Accept(Prices, false, curator, DateTime.Now); saleAnother.As <ExpenditureWaybill>().Accept(Prices, false, curator, DateTime.Now); }
public void Save(DealQuota entity) { CurrentSession.SaveOrUpdate(entity); }
public void CheckPossibilityToDelete(DealQuota dealQuota, User user) { CheckPermissionToPerformOperation(user, Permission.DealQuota_Delete); ValidationUtils.Assert(!AreDealQuotaSales(dealQuota), "Невозможно удалить квоту, по которой имеются накладные реализации."); }
public void RemoveQuota(Deal deal, DealQuota quota, User user) { CheckPossibilityToRemoveQuota(deal, quota, user); deal.RemoveQuota(quota, false); }
public void AddQuota(Deal deal, DealQuota dealQuota, User user) { CheckPossibilityToAddQuota(deal, user); deal.AddQuota(dealQuota); }
public void Init() { // инициализация IoC IoCInitializer.Init(); setting = new Setting() { UseReadyToAcceptStateForReturnFromClientWaybill = false }; settingRepository = Mock.Get(IoCContainer.Resolve <ISettingRepository>()); settingRepository.Setup(x => x.Get()).Returns(setting); storage = new Storage("qwe", StorageType.ExtraStorage) { Id = 42 }; accOrgSender = new Mock <AccountOrganization>(); accOrgSender.Setup(x => x.Id).Returns(1); accOrgRecipient = new Mock <AccountOrganization>(); accOrgRecipient.Setup(x => x.Id).Returns(2); valueAddedTax = new ValueAddedTax(); user = new Mock <User>(); user.Setup(x => x.GetPermissionDistributionType(It.IsAny <Permission>())).Returns(PermissionDistributionType.All); createdBy = new Mock <User>(); createdBy.Setup(x => x.GetPermissionDistributionType(It.IsAny <Permission>())).Returns(PermissionDistributionType.All); acceptedBy = new Mock <User>(); acceptedBy.Setup(x => x.GetPermissionDistributionType(It.IsAny <Permission>())).Returns(PermissionDistributionType.All); receiptedBy = new Mock <User>(); receiptedBy.Setup(x => x.GetPermissionDistributionType(It.IsAny <Permission>())).Returns(PermissionDistributionType.All); var articleGroup = new ArticleGroup("Тестовая группа", "Тестовая группа"); var measureUnit = new MeasureUnit("шт.", "Штука", "123", 0) { Id = 1 }; articleA = new Article("Тестовый товар A", articleGroup, measureUnit, true) { Id = 1 }; articleB = new Article("Тестовый товар Б", articleGroup, measureUnit, true) { Id = 2 }; receiptWaybillRow1 = new Mock <ReceiptWaybillRow>(); receiptWaybillRow1.Setup(x => x.Article).Returns(articleA); receiptWaybillRow2 = new Mock <ReceiptWaybillRow>(); receiptWaybillRow2.Setup(x => x.Article).Returns(articleB); articleAccountingPrice = new List <ArticleAccountingPrice>() { new ArticleAccountingPrice(articleA, 100) }; returnFromClientWaybillRepository = Mock.Get(IoCContainer.Resolve <IReturnFromClientWaybillRepository>()); articlePriceService = Mock.Get(IoCContainer.Resolve <IArticlePriceService>()); articlePriceService.Setup(x => x.GetArticleAccountingPrices(It.Is <short>(y => y == storage.Id), It.IsAny <IEnumerable <int> >())).Returns(articleAccountingPrice); articlePriceService.Setup(x => x.GetArticleAccountingPrices(It.Is <short>(y => y == storage.Id), It.IsAny <ISubQuery>(), It.IsAny <DateTime>())).Returns(articleAccountingPrice); returnFromClientWaybillRepository = Mock.Get(IoCContainer.Resolve <IReturnFromClientWaybillRepository>()); expenditureWaybillIndicatorService = Mock.Get(IoCContainer.Resolve <IExpenditureWaybillIndicatorService>()); articleAvailabilityService = Mock.Get(IoCContainer.Resolve <IArticleAvailabilityService>()); returnFromClientWaybillService = new ReturnFromClientWaybillService( IoCContainer.Resolve <ISettingRepository>(), returnFromClientWaybillRepository.Object, IoCContainer.Resolve <ITeamRepository>(), IoCContainer.Resolve <IDealRepository>(), IoCContainer.Resolve <IStorageRepository>(), IoCContainer.Resolve <IUserRepository>(), IoCContainer.Resolve <IArticlePriceService>(), IoCContainer.Resolve <IAcceptedSaleIndicatorService>(), IoCContainer.Resolve <IReturnFromClientService>(), IoCContainer.Resolve <IFactualFinancialArticleMovementService>(), IoCContainer.Resolve <IArticleMovementOperationCountService>(), IoCContainer.Resolve <IArticleMovementService>(), IoCContainer.Resolve <IDealPaymentDocumentDistributionService>(), IoCContainer.Resolve <IDealIndicatorService>(), IoCContainer.Resolve <IArticleRevaluationService>(), expenditureWaybillIndicatorService.Object, articleAvailabilityService.Object ); deal = new Mock <Deal>(); quota = new DealQuota("asd", 10, 45, 15000); team = new Team("Тестовая команда", It.IsAny <User>()) { Id = 1 }; contract = new Mock <ClientContract>(); var economicAgent = new Mock <EconomicAgent>(); accountOrganization = new AccountOrganization("asd", "asd", economicAgent.Object); deal.Setup(x => x.IsActive).Returns(true); deal.Setup(x => x.IsClosed).Returns(false); deal.Setup(x => x.Quotas).Returns(new List <DealQuota> { quota }); deal.Setup(x => x.Contract).Returns(contract.Object); accountOrganization.AddStorage(storage); contract.Setup(x => x.AccountOrganization).Returns(accountOrganization); returnFromClientWaybill = new ReturnFromClientWaybill("123", DateTime.Now, accountOrganization, deal.Object, team, storage, new ReturnFromClientReason(), user.Object, createdBy.Object, DateTime.Now); sale = new Mock <ExpenditureWaybill>(); sale.Setup(x => x.Sender).Returns(accountOrganization); sale.Setup(x => x.Team).Returns(team); sale.Setup(x => x.Is <ExpenditureWaybill>()).Returns(true); sale.Setup(x => x.As <ExpenditureWaybill>()).Returns(sale.Object); #region Создание позиции 1 saleRow1 = new Mock <ExpenditureWaybillRow>(); saleRow1.Setup(x => x.ExpenditureWaybill).Returns(sale.Object); saleRow1.Setup(x => x.SaleWaybill).Returns(sale.Object); saleRow1.Setup(x => x.Id).Returns(Guid.NewGuid()); saleRow1.Setup(x => x.SellingCount).Returns(100); saleRow1.Setup(x => x.As <ExpenditureWaybillRow>()).Returns(saleRow1.Object); saleRow1.Setup(x => x.Is <ExpenditureWaybillRow>()).Returns(true); saleRow1.Setup(x => x.Article).Returns(articleA); saleRow1.Setup(x => x.SalePrice).Returns(128); saleRow1.Setup(x => x.ReceiptWaybillRow).Returns(receiptWaybillRow1.Object); #endregion #region Создание позиции 2 saleRow2 = new Mock <ExpenditureWaybillRow>(); saleRow2.Setup(x => x.ExpenditureWaybill).Returns(sale.Object); saleRow2.Setup(x => x.SaleWaybill).Returns(sale.Object); saleRow2.Setup(x => x.Id).Returns(Guid.NewGuid()); saleRow2.Setup(x => x.SellingCount).Returns(100); saleRow2.Setup(x => x.As <ExpenditureWaybillRow>()).Returns(saleRow2.Object); saleRow2.Setup(x => x.Is <ExpenditureWaybillRow>()).Returns(true); saleRow2.Setup(x => x.Article).Returns(articleA); saleRow2.Setup(x => x.SalePrice).Returns(128); saleRow2.Setup(x => x.ReceiptWaybillRow).Returns(receiptWaybillRow2.Object); #endregion ReturnFromClientWaybillRow row = new ReturnFromClientWaybillRow(saleRow1.Object, 1); returnFromClientWaybill.AddRow(row); articleMovementService = new Mock <IArticleMovementService>(); articleMovementService.Setup(x => x.CancelArticleAcceptance(It.IsAny <WriteoffWaybill>())) .Returns(new List <OutgoingWaybillRowSourceReservationInfo>() { new OutgoingWaybillRowSourceReservationInfo(row.Id, 1, 1) }); articleMovementService.Setup(x => x.AcceptArticles(It.IsAny <WriteoffWaybill>())) .Returns(new List <OutgoingWaybillRowSourceReservationInfo>() { new OutgoingWaybillRowSourceReservationInfo(row.Id, 1, 1) }); }
public void Save(DealQuota dealQuota, User user) { CheckDealQuotaNameUniqueness(dealQuota); dealQuotaRepository.Save(dealQuota); }
public void Delete(DealQuota entity) { entity.DeletionDate = DateTime.Now; CurrentSession.SaveOrUpdate(entity); }
public void Init() { // инициализация IoC IoCInitializer.Init(); setting = new Setting() { UseReadyToAcceptStateForExpenditureWaybill = false }; settingRepository = Mock.Get(IoCContainer.Resolve <ISettingRepository>()); settingRepository.Setup(x => x.Get()).Returns(setting); storage = new Storage("qwe", StorageType.ExtraStorage) { Id = 42 }; accOrgSender = new Mock <AccountOrganization>(); accOrgSender.Setup(x => x.Id).Returns(1); accOrgRecipient = new Mock <AccountOrganization>(); accOrgRecipient.Setup(x => x.Id).Returns(2); valueAddedTax = new ValueAddedTax(); user = new Mock <User>(); user.Setup(x => x.GetPermissionDistributionType(It.IsAny <Permission>())).Returns(PermissionDistributionType.All); createdBy = new Mock <User>(); createdBy.Setup(x => x.GetPermissionDistributionType(It.IsAny <Permission>())).Returns(PermissionDistributionType.All); acceptedBy = new Mock <User>(); acceptedBy.Setup(x => x.GetPermissionDistributionType(It.IsAny <Permission>())).Returns(PermissionDistributionType.All); var articleGroup = new ArticleGroup("Тестовая группа", "Тестовая группа"); var measureUnit = new MeasureUnit("шт.", "Штука", "123", 0) { Id = 1 }; articleA = new Article("Тестовый товар A", articleGroup, measureUnit, true) { Id = 1 }; receiptWaybillRow = new Mock <ReceiptWaybillRow>(); receiptWaybillRow.Setup(x => x.Article).Returns(articleA); articleAccountingPrice = new List <ArticleAccountingPrice>() { new ArticleAccountingPrice(articleA, 100) }; expenditureWaybillRepository = Mock.Get(IoCContainer.Resolve <IExpenditureWaybillRepository>()); articleRepository = Mock.Get(IoCContainer.Resolve <IArticleRepository>()); articlePriceService = Mock.Get(IoCContainer.Resolve <IArticlePriceService>()); articlePriceService.Setup(x => x.GetArticleAccountingPrices(It.Is <short>(y => y == storage.Id), It.IsAny <IEnumerable <int> >())).Returns(articleAccountingPrice); articlePriceService.Setup(x => x.GetArticleAccountingPrices(It.Is <short>(y => y == storage.Id), It.IsAny <ISubQuery>(), It.IsAny <DateTime>())).Returns(articleAccountingPrice); articleAvailabilityService = Mock.Get(IoCContainer.Resolve <IArticleAvailabilityService>()); articleMovementService = Mock.Get(IoCContainer.Resolve <IArticleMovementService>()); receiptWaybillService = Mock.Get(IoCContainer.Resolve <IReceiptWaybillService>()); articleRevaluationService = Mock.Get(IoCContainer.Resolve <IArticleRevaluationService>()); factualFinancialArticleMovementService = new Mock <IFactualFinancialArticleMovementService>(); articleMovementOperationCountService = new Mock <IArticleMovementOperationCountService>(); teamRepository = Mock.Get(IoCContainer.Resolve <ITeamRepository>()); dealRepository = Mock.Get(IoCContainer.Resolve <IDealRepository>()); expenditureWaybillIndicatorService = Mock.Get(IoCContainer.Resolve <IExpenditureWaybillIndicatorService>()); dealPaymentDocumentDistributionService = Mock.Get(IoCContainer.Resolve <IDealPaymentDocumentDistributionService>()); blockingService = Mock.Get(IoCContainer.Resolve <IBlockingService>()); articleSaleService = Mock.Get(IoCContainer.Resolve <IArticleSaleService>()); teamService = Mock.Get(IoCContainer.Resolve <ITeamService>()); dealService = Mock.Get(IoCContainer.Resolve <IDealService>()); dealIndicatorService = Mock.Get(IoCContainer.Resolve <IDealIndicatorService>()); clientContractIndicatorService = Mock.Get(IoCContainer.Resolve <IClientContractIndicatorService>()); returnFromClientWaybillRepository = new Mock <IReturnFromClientWaybillRepository>(); expenditureWaybillService = new ExpenditureWaybillService(settingRepository.Object, expenditureWaybillRepository.Object, teamRepository.Object, Mock.Get(IoCContainer.Resolve <IStorageRepository>()).Object, Mock.Get(IoCContainer.Resolve <IUserRepository>()).Object, dealRepository.Object, articlePriceService.Object, expenditureWaybillIndicatorService.Object, articleMovementService.Object, dealPaymentDocumentDistributionService.Object, blockingService.Object, articleSaleService.Object, factualFinancialArticleMovementService.Object, articleMovementOperationCountService.Object, teamService.Object, dealService.Object, dealIndicatorService.Object, clientContractIndicatorService.Object, articleAvailabilityService.Object, receiptWaybillService.Object, articleRevaluationService.Object, returnFromClientWaybillRepository.Object); deal = new Mock <Deal>(); quota = new DealQuota("asd", 10, 45, 15000); team = new Mock <Team>(); contract = new Mock <ClientContract>(); accountOrganization = new Mock <AccountOrganization>(); deal.Setup(x => x.IsActive).Returns(true); deal.Setup(x => x.IsClosed).Returns(false); deal.Setup(x => x.Quotas).Returns(new List <DealQuota> { quota }); deal.Setup(x => x.Contract).Returns(contract.Object); accountOrganization.Setup(x => x.Storages).Returns(new List <Storage> { storage }); contract.Setup(x => x.AccountOrganization).Returns(accountOrganization.Object); waybill = new ExpenditureWaybill("123", DateTime.Now, storage, deal.Object, team.Object, quota, false, user.Object, DeliveryAddressType.CustomAddress, "qwe", DateTime.Now, createdBy.Object); var row = new ExpenditureWaybillRow(receiptWaybillRow.Object, 10, valueAddedTax); waybill.AddRow(row); articleMovementService.Setup(x => x.CancelArticleAcceptance(It.IsAny <ExpenditureWaybill>())) .Returns(new List <OutgoingWaybillRowSourceReservationInfo>() { new OutgoingWaybillRowSourceReservationInfo(row.Id, 1, 1) }); articleMovementService.Setup(x => x.AcceptArticles(It.IsAny <ExpenditureWaybill>())) .Returns(new List <OutgoingWaybillRowSourceReservationInfo>() { new OutgoingWaybillRowSourceReservationInfo(row.Id, 1, 1) }); }