public GarmentFinishedGoodStockDto(GarmentFinishedGoodStock finishedGoodStock) { Id = finishedGoodStock.Identity; FinishedGoodStockNo = finishedGoodStock.FinishedGoodStockNo; RONo = finishedGoodStock.RONo; Article = finishedGoodStock.Article; Unit = new UnitDepartment(finishedGoodStock.UnitId.Value, finishedGoodStock.UnitCode, finishedGoodStock.UnitName); Comodity = new GarmentComodity(finishedGoodStock.ComodityId.Value, finishedGoodStock.ComodityCode, finishedGoodStock.ComodityName); Size = new SizeValueObject(finishedGoodStock.SizeId.Value, finishedGoodStock.SizeName); Quantity = finishedGoodStock.Quantity; Uom = new Uom(finishedGoodStock.UomId.Value, finishedGoodStock.UomUnit); BasicPrice = finishedGoodStock.BasicPrice; Price = finishedGoodStock.Price; }
private string GenerateFinGoodNo(GarmentFinishedGoodStock request) { var now = DateTime.Now; var year = now.ToString("yy"); var month = now.ToString("MM"); var prefix = $"ST{request.UnitCode.Trim()}{year}{month}"; var lastFnGoodNo = _garmentFinishedGoodStockRepository.Query.Where(w => w.FinishedGoodStockNo.StartsWith(prefix)) .OrderByDescending(o => o.FinishedGoodStockNo) .Select(s => int.Parse(s.FinishedGoodStockNo.Replace(prefix, ""))) .FirstOrDefault(); var FinGoodNo = $"{prefix}{(lastFnGoodNo + 1).ToString("D4")}"; return(FinGoodNo); }
public GarmentFinishedGoodStockAdjustmentDto(GarmentFinishedGoodStock transaction) { Id = transaction.Identity; FinishedGoodStockNo = transaction.FinishedGoodStockNo; RONo = transaction.RONo; Article = transaction.Article; UnitId = transaction.UnitId; UnitCode = transaction.UnitCode; UnitName = transaction.UnitName; ComodityId = transaction.ComodityId; ComodityCode = transaction.ComodityCode; ComodityName = transaction.ComodityName; SizeId = transaction.SizeId; SizeName = transaction.SizeName; Quantity = transaction.Quantity; UomId = transaction.UomId; UomUnit = transaction.UomUnit; BasicPrice = transaction.BasicPrice; Price = transaction.Price; }
public async Task Handle_StateUnderTest_ExpectedBehavior() { // Arrange Guid finStockGuid = Guid.NewGuid(); PlaceGarmentExpenditureGoodCommandHandler unitUnderTest = CreatePlaceGarmentExpenditureGoodCommandHandler(); CancellationToken cancellationToken = CancellationToken.None; PlaceGarmentExpenditureGoodCommand placeGarmentExpenditureGoodCommand = new PlaceGarmentExpenditureGoodCommand() { RONo = "RONo", Unit = new UnitDepartment(1, "UnitCode", "UnitName"), Article = "Article", Comodity = new GarmentComodity(1, "ComoCode", "ComoName"), Buyer = new Buyer(1, "buyerCode", "buyerName"), ExpenditureDate = DateTimeOffset.Now, Items = new List <GarmentExpenditureGoodItemValueObject> { new GarmentExpenditureGoodItemValueObject { Uom = new Uom(1, "UomUnit"), FinishedGoodStockId = finStockGuid, Description = "Color", Size = new SizeValueObject(1, "Size"), isSave = true, Quantity = 1, } }, }; _mockExpenditureGoodRepository .Setup(s => s.Query) .Returns(new List <GarmentExpenditureGoodReadModel>().AsQueryable()); GarmentFinishedGoodStock garmentFinishedGoodStock = new GarmentFinishedGoodStock(finStockGuid, "no", placeGarmentExpenditureGoodCommand.RONo, "article", new UnitDepartmentId(placeGarmentExpenditureGoodCommand.Unit.Id), placeGarmentExpenditureGoodCommand.Unit.Code, placeGarmentExpenditureGoodCommand.Unit.Name, new GarmentComodityId(placeGarmentExpenditureGoodCommand.Comodity.Id), placeGarmentExpenditureGoodCommand.Comodity.Code, placeGarmentExpenditureGoodCommand.Comodity.Name, new SizeId(1), null, new UomId(1), null, 1, 1, 1); _mockFinishedGoodStockRepository .Setup(s => s.Query) .Returns(new List <GarmentFinishedGoodStockReadModel>() { garmentFinishedGoodStock.GetReadModel() }.AsQueryable()); GarmentComodityPrice garmentComodity = new GarmentComodityPrice( Guid.NewGuid(), true, DateTimeOffset.Now, new UnitDepartmentId(placeGarmentExpenditureGoodCommand.Unit.Id), placeGarmentExpenditureGoodCommand.Unit.Code, placeGarmentExpenditureGoodCommand.Unit.Name, new GarmentComodityId(placeGarmentExpenditureGoodCommand.Comodity.Id), placeGarmentExpenditureGoodCommand.Comodity.Code, placeGarmentExpenditureGoodCommand.Comodity.Name, 1000 ); _mockComodityPriceRepository .Setup(s => s.Query) .Returns(new List <GarmentComodityPriceReadModel> { garmentComodity.GetReadModel() }.AsQueryable()); _mockExpenditureGoodRepository .Setup(s => s.Update(It.IsAny <GarmentExpenditureGood>())) .Returns(Task.FromResult(It.IsAny <GarmentExpenditureGood>())); _mockExpenditureGoodItemRepository .Setup(s => s.Update(It.IsAny <GarmentExpenditureGoodItem>())) .Returns(Task.FromResult(It.IsAny <GarmentExpenditureGoodItem>())); _mockFinishedGoodStockRepository .Setup(s => s.Update(It.IsAny <GarmentFinishedGoodStock>())) .Returns(Task.FromResult(It.IsAny <GarmentFinishedGoodStock>())); _mockFinishedGoodStockHistoryRepository .Setup(s => s.Update(It.IsAny <GarmentFinishedGoodStockHistory>())) .Returns(Task.FromResult(It.IsAny <GarmentFinishedGoodStockHistory>())); _MockStorage .Setup(x => x.Save()) .Verifiable(); // Act var result = await unitUnderTest.Handle(placeGarmentExpenditureGoodCommand, cancellationToken); // Assert result.Should().NotBeNull(); }
public async Task Handle_StateUnderTest_ExpectedBehavior() { // Arrange Guid finStockGuid = Guid.NewGuid(); Guid exGoodGuid = Guid.NewGuid(); Guid exGoodItemGuid = Guid.NewGuid(); Guid returId = Guid.NewGuid(); Guid returItemId = Guid.NewGuid(); RemoveGarmentExpenditureGoodCommandHandler unitUnderTest = CreateRemoveGarmentExpenditureGoodCommandHandler(); CancellationToken cancellationToken = CancellationToken.None; RemoveGarmentExpenditureGoodCommand RemoveGarmentFinishingOutCommand = new RemoveGarmentExpenditureGoodCommand(exGoodGuid); GarmentExpenditureGood expenditureGood = new GarmentExpenditureGood( exGoodGuid, "no", "export", new UnitDepartmentId(1), "uCode", "Uname", "roNo", "art", new GarmentComodityId(1), "cCode", "cName", new BuyerId(1), "nam", "bCode", DateTimeOffset.Now, "inv", "con", 0, null, false); GarmentFinishedGoodStock garmentFinishedGoodStock = new GarmentFinishedGoodStock(finStockGuid, "no", "ro", "article", expenditureGood.UnitId, expenditureGood.UnitCode, expenditureGood.UnitName, expenditureGood.ComodityId, expenditureGood.ComodityCode, expenditureGood.ComodityName, new SizeId(1), null, new UomId(1), null, 1, 1, 1); GarmentFinishedGoodStockHistory garmentFinishedGoodStockHistory = new GarmentFinishedGoodStockHistory(Guid.NewGuid(), garmentFinishedGoodStock.Identity, Guid.Empty, Guid.Empty, exGoodGuid, exGoodItemGuid, Guid.Empty, Guid.Empty, returId, returItemId, null, "ro", "article", expenditureGood.UnitId, expenditureGood.UnitCode, expenditureGood.UnitName, expenditureGood.ComodityId, expenditureGood.ComodityCode, expenditureGood.ComodityName, new SizeId(1), null, new UomId(1), null, 1, 1, 1); _mockFinishedGoodStockRepository .Setup(s => s.Query) .Returns(new List <GarmentFinishedGoodStockReadModel> { garmentFinishedGoodStock.GetReadModel() }.AsQueryable()); _mockExpenditureGoodRepository .Setup(s => s.Query) .Returns(new List <GarmentExpenditureGoodReadModel> { expenditureGood.GetReadModel() }.AsQueryable()); _mockExpenditureGoodItemRepository .Setup(s => s.Find(It.IsAny <Expression <Func <GarmentExpenditureGoodItemReadModel, bool> > >())) .Returns(new List <GarmentExpenditureGoodItem>() { new GarmentExpenditureGoodItem(exGoodItemGuid, exGoodGuid, finStockGuid, new SizeId(1), null, 1, 0, new UomId(1), null, null, 1, 1) }); //_mockExpenditureGoodItemRepository // .Setup(s => s.Query) // .Returns(new List<GarmentExpenditureGoodItemReadModel> // { // new GarmentExpenditureGoodItemReadModel(exGoodItemGuid) // }.AsQueryable()); _mockFinishedGoodStockHistoryRepository .Setup(s => s.Query) .Returns(new List <GarmentFinishedGoodStockHistoryReadModel> { garmentFinishedGoodStockHistory.GetReadModel() }.AsQueryable()); GarmentComodityPrice garmentComodity = new GarmentComodityPrice( Guid.NewGuid(), true, DateTimeOffset.Now, new UnitDepartmentId(expenditureGood.UnitId.Value), expenditureGood.UnitCode, expenditureGood.UnitName, new GarmentComodityId(expenditureGood.ComodityId.Value), expenditureGood.ComodityCode, expenditureGood.ComodityName, 1000 ); _mockComodityPriceRepository .Setup(s => s.Query) .Returns(new List <GarmentComodityPriceReadModel> { garmentComodity.GetReadModel() }.AsQueryable()); _mockExpenditureGoodRepository .Setup(s => s.Update(It.IsAny <GarmentExpenditureGood>())) .Returns(Task.FromResult(It.IsAny <GarmentExpenditureGood>())); _mockExpenditureGoodItemRepository .Setup(s => s.Update(It.IsAny <GarmentExpenditureGoodItem>())) .Returns(Task.FromResult(It.IsAny <GarmentExpenditureGoodItem>())); _mockFinishedGoodStockRepository .Setup(s => s.Update(It.IsAny <GarmentFinishedGoodStock>())) .Returns(Task.FromResult(It.IsAny <GarmentFinishedGoodStock>())); _mockFinishedGoodStockHistoryRepository .Setup(s => s.Update(It.IsAny <GarmentFinishedGoodStockHistory>())) .Returns(Task.FromResult(It.IsAny <GarmentFinishedGoodStockHistory>())); _MockStorage .Setup(x => x.Save()) .Verifiable(); // Act var result = await unitUnderTest.Handle(RemoveGarmentFinishingOutCommand, cancellationToken); // Assert result.Should().NotBeNull(); }
public async Task <GarmentFinishingOut> Handle(PlaceGarmentFinishingOutCommand request, CancellationToken cancellationToken) { request.Items = request.Items.Where(item => item.IsSave == true).ToList(); GarmentComodityPrice garmentComodityPrice = _garmentComodityPriceRepository.Query.Where(a => a.IsValid == true && a.UnitId == request.UnitTo.Id && a.ComodityId == request.Comodity.Id).Select(s => new GarmentComodityPrice(s)).Single(); Guid garmentFinishingOutId = Guid.NewGuid(); GarmentFinishingOut garmentFinishingOut = new GarmentFinishingOut( garmentFinishingOutId, GenerateFinOutNo(request), new UnitDepartmentId(request.UnitTo.Id), request.UnitTo.Code, request.UnitTo.Name, request.FinishingTo, request.FinishingOutDate.GetValueOrDefault(), request.RONo, request.Article, new UnitDepartmentId(request.Unit.Id), request.Unit.Code, request.Unit.Name, new GarmentComodityId(request.Comodity.Id), request.Comodity.Code, request.Comodity.Name, request.IsDifferentSize ); Dictionary <Guid, double> finishingInItemToBeUpdated = new Dictionary <Guid, double>(); Dictionary <string, double> finGood = new Dictionary <string, double>(); foreach (var item in request.Items) { if (item.IsSave) { Guid garmentFinishingOutItemId = Guid.NewGuid(); GarmentFinishingOutItem garmentFinishingOutItem = new GarmentFinishingOutItem( garmentFinishingOutItemId, garmentFinishingOut.Identity, item.FinishingInId, item.FinishingInItemId, new ProductId(item.Product.Id), item.Product.Code, item.Product.Name, item.DesignColor, new SizeId(item.Size.Id), item.Size.Size, request.IsDifferentSize ? item.TotalQuantity : item.Quantity, new UomId(item.Uom.Id), item.Uom.Unit, item.Color, request.IsDifferentSize ? item.TotalQuantity : item.Quantity, item.BasicPrice, item.Price ); item.Id = garmentFinishingOutItemId; if (request.IsDifferentSize) { foreach (var detail in item.Details) { Guid garmentFinishingOutDetailId = Guid.NewGuid(); GarmentFinishingOutDetail garmentFinishingOutDetail = new GarmentFinishingOutDetail( garmentFinishingOutDetailId, garmentFinishingOutItem.Identity, new SizeId(detail.Size.Id), detail.Size.Size, detail.Quantity, new UomId(detail.Uom.Id), detail.Uom.Unit ); detail.Id = garmentFinishingOutDetailId; if (finishingInItemToBeUpdated.ContainsKey(item.FinishingInItemId)) { finishingInItemToBeUpdated[item.FinishingInItemId] += detail.Quantity; } else { finishingInItemToBeUpdated.Add(item.FinishingInItemId, detail.Quantity); } await _garmentFinishingOutDetailRepository.Update(garmentFinishingOutDetail); if (request.FinishingTo == "GUDANG JADI") { string finStock = detail.Size.Id + "~" + detail.Size.Size + "~" + detail.Uom.Id + "~" + detail.Uom.Unit + "~" + item.BasicPrice; if (finGood.ContainsKey(finStock)) { finGood[finStock] += detail.Quantity; } else { finGood.Add(finStock, detail.Quantity); } } } } else { if (finishingInItemToBeUpdated.ContainsKey(item.FinishingInItemId)) { finishingInItemToBeUpdated[item.FinishingInItemId] += item.Quantity; } else { finishingInItemToBeUpdated.Add(item.FinishingInItemId, item.Quantity); } if (request.FinishingTo == "GUDANG JADI") { string finStock = item.Size.Id + "~" + item.Size.Size + "~" + item.Uom.Id + "~" + item.Uom.Unit + "~" + item.BasicPrice; if (finGood.ContainsKey(finStock)) { finGood[finStock] += item.Quantity; } else { finGood.Add(finStock, item.Quantity); } } } await _garmentFinishingOutItemRepository.Update(garmentFinishingOutItem); } } foreach (var finInItem in finishingInItemToBeUpdated) { var garmentFinishingInItem = _garmentFinishingInItemRepository.Query.Where(x => x.Identity == finInItem.Key).Select(s => new GarmentFinishingInItem(s)).Single(); garmentFinishingInItem.SetRemainingQuantity(garmentFinishingInItem.RemainingQuantity - finInItem.Value); garmentFinishingInItem.Modify(); await _garmentFinishingInItemRepository.Update(garmentFinishingInItem); } if (request.FinishingTo == "GUDANG JADI") { int count = 1; List <GarmentFinishedGoodStock> finGoodStocks = new List <GarmentFinishedGoodStock>(); foreach (var finGoodStock in finGood) { SizeId sizeId = new SizeId(Convert.ToInt32(finGoodStock.Key.Split("~")[0])); string sizeName = finGoodStock.Key.Split("~")[1]; UomId uomId = new UomId(Convert.ToInt32(finGoodStock.Key.Split("~")[2])); string uomUnit = finGoodStock.Key.Split("~")[3]; double basicPrice = Convert.ToDouble(finGoodStock.Key.Split("~")[4]); var garmentFinishedGoodExist = _garmentFinishedGoodStockRepository.Query.Where( a => a.RONo == request.RONo && a.Article == request.Article && a.BasicPrice == basicPrice && a.UnitId == request.UnitTo.Id && new SizeId(a.SizeId) == sizeId && a.ComodityId == request.Comodity.Id && new UomId(a.UomId) == uomId ).Select(s => new GarmentFinishedGoodStock(s)).SingleOrDefault(); double qty = garmentFinishedGoodExist == null ? finGoodStock.Value : (finGoodStock.Value + garmentFinishedGoodExist.Quantity); double price = (basicPrice + (double)garmentComodityPrice.Price) * qty; if (garmentFinishedGoodExist == null) { var now = DateTime.Now; var year = now.ToString("yy"); var month = now.ToString("MM"); var prefix = $"ST{request.UnitTo.Code.Trim()}{year}{month}"; var lastFnGoodNo = _garmentFinishedGoodStockRepository.Query.Where(w => w.FinishedGoodStockNo.StartsWith(prefix)) .OrderByDescending(o => o.FinishedGoodStockNo) .Select(s => int.Parse(s.FinishedGoodStockNo.Replace(prefix, ""))) .FirstOrDefault(); var FinGoodNo = $"{prefix}{(lastFnGoodNo + count).ToString("D4")}"; GarmentFinishedGoodStock finishedGood = new GarmentFinishedGoodStock( Guid.NewGuid(), FinGoodNo, request.RONo, request.Article, new UnitDepartmentId(request.UnitTo.Id), request.UnitTo.Code, request.UnitTo.Name, new GarmentComodityId(request.Comodity.Id), request.Comodity.Code, request.Comodity.Name, sizeId, sizeName, uomId, uomUnit, qty, basicPrice, price ); count++; await _garmentFinishedGoodStockRepository.Update(finishedGood); finGoodStocks.Add(finishedGood); } else { garmentFinishedGoodExist.SetQuantity(qty); garmentFinishedGoodExist.SetPrice(price); garmentFinishedGoodExist.Modify(); await _garmentFinishedGoodStockRepository.Update(garmentFinishedGoodExist); var stock = finGoodStocks.Where(a => a.RONo == request.RONo && a.Article == request.Article && a.BasicPrice == garmentFinishedGoodExist.BasicPrice && a.UnitId == new UnitDepartmentId(request.UnitTo.Id) && a.SizeId == garmentFinishedGoodExist.SizeId && a.ComodityId == new GarmentComodityId(request.Comodity.Id) && a.UomId == garmentFinishedGoodExist.UomId).SingleOrDefault(); finGoodStocks.Add(garmentFinishedGoodExist); } } foreach (var item in request.Items) { if (item.IsSave) { if (request.IsDifferentSize) { foreach (var detail in item.Details) { var stock = finGoodStocks.Where(a => a.RONo == request.RONo && a.Article == request.Article && a.BasicPrice == item.BasicPrice && a.UnitId == new UnitDepartmentId(request.UnitTo.Id) && a.SizeId == new SizeId(detail.Size.Id) && a.ComodityId == new GarmentComodityId(request.Comodity.Id) && a.UomId == new UomId(detail.Uom.Id)).Single(); double price = (stock.BasicPrice + (double)garmentComodityPrice.Price) * detail.Quantity; GarmentFinishedGoodStockHistory garmentFinishedGoodStockHistory = new GarmentFinishedGoodStockHistory( Guid.NewGuid(), stock.Identity, item.Id, detail.Id, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, "IN", stock.RONo, stock.Article, stock.UnitId, stock.UnitCode, stock.UnitName, stock.ComodityId, stock.ComodityCode, stock.ComodityName, stock.SizeId, stock.SizeName, stock.UomId, stock.UomUnit, detail.Quantity, stock.BasicPrice, price ); await _garmentFinishedGoodStockHistoryRepository.Update(garmentFinishedGoodStockHistory); } } else { var stock = finGoodStocks.Where(a => a.RONo == request.RONo && a.Article == request.Article && a.BasicPrice == item.BasicPrice && a.UnitId == new UnitDepartmentId(request.UnitTo.Id) && a.SizeId == new SizeId(item.Size.Id) && a.ComodityId == new GarmentComodityId(request.Comodity.Id) && a.UomId == new UomId(item.Uom.Id)).Single(); double price = (stock.BasicPrice + (double)garmentComodityPrice.Price) * item.Quantity; GarmentFinishedGoodStockHistory garmentFinishedGoodStockHistory = new GarmentFinishedGoodStockHistory( Guid.NewGuid(), stock.Identity, item.Id, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, "IN", stock.RONo, stock.Article, stock.UnitId, stock.UnitCode, stock.UnitName, stock.ComodityId, stock.ComodityCode, stock.ComodityName, stock.SizeId, stock.SizeName, stock.UomId, stock.UomUnit, item.Quantity, stock.BasicPrice, price ); await _garmentFinishedGoodStockHistoryRepository.Update(garmentFinishedGoodStockHistory); } } } } await _garmentFinishingOutRepository.Update(garmentFinishingOut); _storage.Save(); return(garmentFinishingOut); }
public async Task Handle_StateUnderTest_ExpectedBehavior_GUDANGJADI() { // Arrange Guid finishingInItemGuid = Guid.NewGuid(); Guid finishingOutGuid = Guid.NewGuid(); Guid finishingOutItemGuid = Guid.NewGuid(); Guid finishingOutDetailGuid = Guid.NewGuid(); RemoveGarmentFinishingOutCommandHandler unitUnderTest = CreateRemoveGarmentFinishingOutCommandHandler(); CancellationToken cancellationToken = CancellationToken.None; RemoveGarmentFinishingOutCommand RemoveGarmentFinishingOutCommand = new RemoveGarmentFinishingOutCommand(finishingOutGuid); GarmentFinishingOut garmentFinishingOut = new GarmentFinishingOut( finishingOutGuid, "no", new UnitDepartmentId(1), "uCode", "Uname", "GUDANG JADI", DateTimeOffset.Now, "ro", "article", new UnitDepartmentId(1), "uCode", "Uname", new GarmentComodityId(1), "cCode", "cName", false); _mockFinishingOutRepository .Setup(s => s.Query) .Returns(new List <GarmentFinishingOutReadModel>() { garmentFinishingOut.GetReadModel() }.AsQueryable()); _mockFinishingOutItemRepository .Setup(s => s.Find(It.IsAny <Expression <Func <GarmentFinishingOutItemReadModel, bool> > >())) .Returns(new List <GarmentFinishingOutItem>() { new GarmentFinishingOutItem(finishingOutItemGuid, finishingOutGuid, Guid.Empty, finishingInItemGuid, new ProductId(1), null, null, null, new SizeId(1), null, 1, new UomId(1), null, null, 1, 1, 1) }); //_mockFinishingOutDetailRepository // .Setup(s => s.Find(It.IsAny<Expression<Func<GarmentFinishingOutDetailReadModel, bool>>>())) // .Returns(new List<GarmentFinishingOutDetail>() // { // new GarmentFinishingOutDetail(Guid.Empty, Guid.Empty,new SizeId(1), null, 1, new UomId(1),null ) // }); _mockFinishingInItemRepository .Setup(s => s.Query) .Returns(new List <GarmentFinishingInItemReadModel> { new GarmentFinishingInItemReadModel(finishingInItemGuid) }.AsQueryable()); GarmentFinishedGoodStock garmentFinishedGoodStock = new GarmentFinishedGoodStock(Guid.NewGuid(), "no", "ro", "article", garmentFinishingOut.UnitId, garmentFinishingOut.UnitCode, garmentFinishingOut.UnitName, garmentFinishingOut.ComodityId, garmentFinishingOut.ComodityCode, garmentFinishingOut.ComodityName, new SizeId(1), null, new UomId(1), null, 1, 1, 1); _mockFinishedGoodStockRepository .Setup(s => s.Query) .Returns(new List <GarmentFinishedGoodStockReadModel> { garmentFinishedGoodStock.GetReadModel() }.AsQueryable()); GarmentFinishedGoodStockHistory garmentFinishedGoodStockHistory = new GarmentFinishedGoodStockHistory(Guid.NewGuid(), garmentFinishedGoodStock.Identity, finishingOutItemGuid, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, null, "ro", "article", garmentFinishingOut.UnitId, garmentFinishingOut.UnitCode, garmentFinishingOut.UnitName, garmentFinishingOut.ComodityId, garmentFinishingOut.ComodityCode, garmentFinishingOut.ComodityName, new SizeId(1), null, new UomId(1), null, 1, 1, 1); _mockFinishedGoodStockHistoryRepository .Setup(s => s.Query) .Returns(new List <GarmentFinishedGoodStockHistoryReadModel> { garmentFinishedGoodStockHistory.GetReadModel() }.AsQueryable()); GarmentComodityPrice garmentComodity = new GarmentComodityPrice( Guid.NewGuid(), true, DateTimeOffset.Now, garmentFinishingOut.UnitId, garmentFinishingOut.UnitCode, garmentFinishingOut.UnitName, garmentFinishingOut.ComodityId, garmentFinishingOut.ComodityCode, garmentFinishingOut.ComodityName, 1000 ); _mockComodityPriceRepository .Setup(s => s.Query) .Returns(new List <GarmentComodityPriceReadModel> { garmentComodity.GetReadModel() }.AsQueryable()); _mockFinishingOutRepository .Setup(s => s.Update(It.IsAny <GarmentFinishingOut>())) .Returns(Task.FromResult(It.IsAny <GarmentFinishingOut>())); _mockFinishingOutItemRepository .Setup(s => s.Update(It.IsAny <GarmentFinishingOutItem>())) .Returns(Task.FromResult(It.IsAny <GarmentFinishingOutItem>())); //_mockFinishingOutDetailRepository // .Setup(s => s.Update(It.IsAny<GarmentFinishingOutDetail>())) // .Returns(Task.FromResult(It.IsAny<GarmentFinishingOutDetail>())); _mockFinishingInItemRepository .Setup(s => s.Update(It.IsAny <GarmentFinishingInItem>())) .Returns(Task.FromResult(It.IsAny <GarmentFinishingInItem>())); _mockFinishedGoodStockRepository .Setup(s => s.Update(It.IsAny <GarmentFinishedGoodStock>())) .Returns(Task.FromResult(It.IsAny <GarmentFinishedGoodStock>())); _mockFinishedGoodStockHistoryRepository .Setup(s => s.Update(It.IsAny <GarmentFinishedGoodStockHistory>())) .Returns(Task.FromResult(It.IsAny <GarmentFinishedGoodStockHistory>())); _MockStorage .Setup(x => x.Save()) .Verifiable(); // Act var result = await unitUnderTest.Handle(RemoveGarmentFinishingOutCommand, cancellationToken); // Assert result.Should().NotBeNull(); }