private void StubInventoryRepositories() { #region EntityRepository LoadAsync GetAsync A.CallTo(() => EntityRepository.LoadAsync <Article>(Product1InteriorDoor.Id)).Returns(Product1InteriorDoor); A.CallTo(() => EntityRepository.GetAsync <Article>(Product1InteriorDoor.Id)).Returns(Product1InteriorDoor); A.CallTo(() => EntityRepository.LoadAsync <Article>(Product2InteriorDoor.Id)).Returns(Product2InteriorDoor); A.CallTo(() => EntityRepository.GetAsync <Article>(Product2InteriorDoor.Id)).Returns(Product2InteriorDoor); A.CallTo(() => EntityRepository.LoadAsync <Article>(Material1Timber.Id)).Returns(Material1Timber); A.CallTo(() => EntityRepository.GetAsync <Article>(Material1Timber.Id)).Returns(Material1Timber); A.CallTo(() => EntityRepository.LoadAsync <Article>(Material2Foil.Id)).Returns(Material2Foil); A.CallTo(() => EntityRepository.GetAsync <Article>(Material2Foil.Id)).Returns(Material2Foil); A.CallTo(() => EntityRepository.LoadAsync <Article>(Material4TintedGlass.Id)).Returns(Material4TintedGlass); A.CallTo(() => EntityRepository.GetAsync <Article>(Material4TintedGlass.Id)).Returns(Material4TintedGlass); A.CallTo(() => EntityRepository.LoadAsync <Article>(Material3Mdf.Id)).Returns(Material3Mdf); A.CallTo(() => EntityRepository.GetAsync <Article>(Material3Mdf.Id)).Returns(Material3Mdf); A.CallTo(() => EntityRepository.LoadAsync <Article>(Component1Vertical.Id)).Returns(Component1Vertical); A.CallTo(() => EntityRepository.GetAsync <Article>(Component1Vertical.Id)).Returns(Component1Vertical); A.CallTo(() => EntityRepository.LoadAsync <Article>(Component2Horizontal.Id)).Returns(Component2Horizontal); A.CallTo(() => EntityRepository.GetAsync <Article>(Component2Horizontal.Id)).Returns(Component2Horizontal); A.CallTo(() => EntityRepository.LoadAsync <Article>(Component3MdfFiller.Id)).Returns(Component3MdfFiller); A.CallTo(() => EntityRepository.GetAsync <Article>(Component3MdfFiller.Id)).Returns(Component3MdfFiller); A.CallTo(() => EntityRepository.LoadAsync <Article>(Component4GlassFiller.Id)).Returns(Component4GlassFiller); A.CallTo(() => EntityRepository.GetAsync <Article>(Component4GlassFiller.Id)).Returns(Component4GlassFiller); A.CallTo(() => EntityRepository.LoadAsync <Article>(ArticleToArchive.Id)).Returns(ArticleToArchive); A.CallTo(() => EntityRepository.GetAsync <Article>(ArticleToArchive.Id)).Returns(ArticleToArchive); #endregion #region ArticleRepository LoadAsync GetAsync A.CallTo(() => ArticleRepo.LoadAsync(Product1InteriorDoor.Id)).Returns(Product1InteriorDoor); A.CallTo(() => ArticleRepo.GetAsync(Product1InteriorDoor.Id)).Returns(Product1InteriorDoor); A.CallTo(() => ArticleRepo.LoadAsync(Product2InteriorDoor.Id)).Returns(Product2InteriorDoor); A.CallTo(() => ArticleRepo.GetAsync(Product2InteriorDoor.Id)).Returns(Product2InteriorDoor); A.CallTo(() => ArticleRepo.LoadAsync(Material1Timber.Id)).Returns(Material1Timber); A.CallTo(() => ArticleRepo.GetAsync(Material1Timber.Id)).Returns(Material1Timber); A.CallTo(() => ArticleRepo.LoadAsync(Material2Foil.Id)).Returns(Material2Foil); A.CallTo(() => ArticleRepo.GetAsync(Material2Foil.Id)).Returns(Material2Foil); A.CallTo(() => ArticleRepo.LoadAsync(Material4TintedGlass.Id)).Returns(Material4TintedGlass); A.CallTo(() => ArticleRepo.GetAsync(Material4TintedGlass.Id)).Returns(Material4TintedGlass); A.CallTo(() => ArticleRepo.LoadAsync(Material3Mdf.Id)).Returns(Material3Mdf); A.CallTo(() => ArticleRepo.GetAsync(Material3Mdf.Id)).Returns(Material3Mdf); A.CallTo(() => ArticleRepo.LoadAsync(Component1Vertical.Id)).Returns(Component1Vertical); A.CallTo(() => ArticleRepo.GetAsync(Component1Vertical.Id)).Returns(Component1Vertical); A.CallTo(() => ArticleRepo.LoadAsync(Component2Horizontal.Id)).Returns(Component2Horizontal); A.CallTo(() => ArticleRepo.GetAsync(Component2Horizontal.Id)).Returns(Component2Horizontal); A.CallTo(() => ArticleRepo.LoadAsync(Component3MdfFiller.Id)).Returns(Component3MdfFiller); A.CallTo(() => ArticleRepo.GetAsync(Component3MdfFiller.Id)).Returns(Component3MdfFiller); A.CallTo(() => ArticleRepo.LoadAsync(Component4GlassFiller.Id)).Returns(Component4GlassFiller); A.CallTo(() => ArticleRepo.GetAsync(Component4GlassFiller.Id)).Returns(Component4GlassFiller); A.CallTo(() => ArticleRepo.LoadAsync(ArticleToArchive.Id)).Returns(ArticleToArchive); A.CallTo(() => ArticleRepo.GetAsync(ArticleToArchive.Id)).Returns(ArticleToArchive); #endregion var ids0 = Product1InteriorDoor.BillsOfMaterial.First().Input.Select(i => i.Article.Id); A.CallTo(() => EntityRepository.LoadSomeAsync(A <IEnumerable <Guid> > .That.IsSameSequenceAs(ids0), A <Expression <Func <Article, bool> > > .Ignored, A <int?> .Ignored, A <int?> .Ignored, A <string> .Ignored, A <string> .Ignored)) .Returns(Product1InteriorDoor.BillsOfMaterial.First().Input.Select(i => i.Article).ToList()); var ids1 = new[] { Component1Vertical.Id, Component2Horizontal.Id, Component3MdfFiller.Id, Material2Foil.Id }; A.CallTo(() => EntityRepository.LoadSomeAsync(A <IEnumerable <Guid> > .That.IsSameSequenceAs(ids1), A <Expression <Func <Article, bool> > > .Ignored, A <int?> .Ignored, A <int?> .Ignored, A <string> .Ignored, A <string> .Ignored)) .Returns(new List <Article> { Component1Vertical, Component2Horizontal, Component3MdfFiller, Material2Foil }); A.CallTo(() => ArticleRepo.FindSpoiledCounterpartAsync(Product1InteriorDoor, true)) .Returns(Product1InteriorDoorSpoiled); A.CallTo(() => ArticleRepo.FindSpoiledCounterpartAsync(Component1Vertical, true)) .Returns(Component1VerticalSpoiled); A.CallTo(() => EntityRepository.GetSomeAsync(A <IEnumerable <Guid> > .That.Contains(Product1InteriorDoor.Id), A <Expression <Func <Article, bool> > > .Ignored, A <int?> .Ignored, A <int?> .Ignored, A <string> .Ignored, A <string> .Ignored)) .Returns(new[] { Product1InteriorDoor }); A.CallTo(() => EntityRepository.GetSomeAsync(A <IEnumerable <Guid> > .That.Contains(Material2Foil.Id), A <Expression <Func <Article, bool> > > .Ignored, A <int?> .Ignored, A <int?> .Ignored, A <string> .Ignored, A <string> .Ignored)) .Returns(new[] { Material2Foil }); A.CallTo(() => EntityRepository.LoadAsync <Uom>(PieceUom.Id)).Returns(PieceUom); A.CallTo(() => EntityRepository.GetAsync <Uom>(PieceUom.Id)).Returns(PieceUom); A.CallTo(() => EntityRepository.LoadAsync <Uom>(CubicMeterUom.Id)).Returns(CubicMeterUom); A.CallTo(() => EntityRepository.GetAsync <Uom>(CubicMeterUom.Id)).Returns(CubicMeterUom); A.CallTo(() => EntityRepository.LoadAsync <BillOfMaterial>(Component2Horizontal.PrimaryBillOfMaterial.Id)) .Returns(Component2Horizontal.PrimaryBillOfMaterial); A.CallTo(() => EntityRepository.GetAsync <BillOfMaterial>(Component2Horizontal.PrimaryBillOfMaterial.Id)) .Returns(Component2Horizontal.PrimaryBillOfMaterial); A.CallTo(() => EntityRepository.LoadAsync <BillOfMaterial>(Product1InteriorDoor.PrimaryBillOfMaterial.Id)) .Returns(Product1InteriorDoor.PrimaryBillOfMaterial); A.CallTo(() => EntityRepository.GetAsync <BillOfMaterial>(Product1InteriorDoor.PrimaryBillOfMaterial.Id)) .Returns(Product1InteriorDoor.PrimaryBillOfMaterial); A.CallTo(() => EntityRepository.LoadAsync <BillOfMaterial>(Product2InteriorDoor.PrimaryBillOfMaterial.Id)) .Returns(Product2InteriorDoor.PrimaryBillOfMaterial); A.CallTo(() => EntityRepository.GetAsync <BillOfMaterial>(Product2InteriorDoor.PrimaryBillOfMaterial.Id)) .Returns(Product2InteriorDoor.PrimaryBillOfMaterial); var inStockP1 = Shops.SelectMany(s => s.Inventory).Where(i => i.Article == Product1InteriorDoor) .Sum(i => i.Amount); A.CallTo(() => InventoryRepo.FindTotalAmountInStockAsync(Product1InteriorDoor)).Returns(inStockP1); var inOrdersP1 = Orders.SelectMany(s => s.ItemsOrdered).Where(i => i.Article == Product1InteriorDoor) .Sum(i => i.Amount); A.CallTo(() => InventoryRepo.FindSpareInventoryAsync(Product1InteriorDoor)).Returns(inStockP1 - inOrdersP1); var inStockC1 = Shops.SelectMany(s => s.Inventory).Where(i => i.Article == Component1Vertical) .Sum(i => i.Amount); A.CallTo(() => InventoryRepo.FindTotalAmountInStockAsync(Component1Vertical)).Returns(inStockC1); A.CallTo(() => InventoryRepo.FindSpareInventoryAsync(Component1Vertical)).Returns(inStockC1); var inStockC2 = Shops.SelectMany(s => s.Inventory).Where(i => i.Article == Component2Horizontal) .Sum(i => i.Amount); A.CallTo(() => InventoryRepo.FindTotalAmountInStockAsync(Component2Horizontal)).Returns(inStockC2); A.CallTo(() => InventoryRepo.FindSpareInventoryAsync(Component2Horizontal)).Returns(inStockC2); var inStockC3 = Shops.SelectMany(s => s.Inventory).Where(i => i.Article == Component3MdfFiller) .Sum(i => i.Amount); A.CallTo(() => InventoryRepo.FindTotalAmountInStockAsync(Component3MdfFiller)).Returns(inStockC3); A.CallTo(() => InventoryRepo.FindSpareInventoryAsync(Component3MdfFiller)).Returns(inStockC3); A.CallTo(() => InventoryRepo.FindTotalAmountInOrdersAsync(Product2InteriorDoor)).Returns(1); A.CallTo(() => InventoryRepo.FindTotalAmountInOrdersAsync(Material1Timber)) .Returns(AmountInOrders(Material1Timber)); A.CallTo(() => InventoryRepo.FindTotalAmountInOrdersAsync(Material2Foil)) .Returns(AmountInOrders(Material2Foil)); A.CallTo(() => InventoryRepo.FindTotalAmountInOrdersAsync(Material3Mdf)).Returns(AmountInOrders(Material3Mdf)); A.CallTo(() => InventoryRepo.FindTotalAmountInOrdersAsync(Material4TintedGlass)) .Returns(AmountInOrders(Material4TintedGlass)); }