Skip to content

Commit

Permalink
テスト追加。コードスタイル修正
Browse files Browse the repository at this point in the history
  • Loading branch information
belltzel committed Jun 25, 2020
1 parent 9aff8d4 commit 775577e
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ private function eachProductOrderItems(ItemHolderInterface $itemHolder, callable
// 在庫チェックあり
/* @var ProductStock $productStock */
$productStock = $item->getProductClass()->getProductStock();
if($productStock->getProductClassId() === null){
if ($productStock->getProductClassId() === null) {
// 在庫に対してロックを実行
$this->entityManager->lock($productStock, LockMode::PESSIMISTIC_WRITE);
$this->entityManager->refresh($productStock);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,32 @@ public function testRollback()
$ProductClass = $this->entityManager->find(ProductClass::class, $ProductClass->getId());
self::assertEquals(10, $ProductClass->getStock());
}

public function testMultiShipping()
{
// 在庫10の商品
/* @var ProductClass $ProductClass */
$ProductClass = $this->createProduct('test', 1)->getProductClasses()[0];
$ProductClass->setStockUnlimited(false);
$ProductClass->setStock(10);
$ProductClass->getProductStock()->setStock(10);

// 数量3の受注
$Customer = $this->createCustomer();
$Order = $this->createOrderWithProductClasses($Customer, [$ProductClass,$ProductClass]);
$OrderItem = $Order->getProductOrderItems()[0];
$OrderItem->setQuantity(3);
// 数量7の受注
$OrderItem = $Order->getProductOrderItems()[1];
$OrderItem->setQuantity(7);

$this->entityManager->persist($ProductClass);
$this->entityManager->flush();

$this->processor->prepare($Order, new PurchaseContext());

// 複数のOrderItemで同じProductClassの場合、合算した在庫数が減っている
$ProductClass = $this->entityManager->find(ProductClass::class, $ProductClass->getId());
self::assertEquals(0, $ProductClass->getStock());
}
}

0 comments on commit 775577e

Please sign in to comment.