From c5a1f37b410f988dc43283c5d696704fda65cb32 Mon Sep 17 00:00:00 2001 From: devansh bawari Date: Thu, 16 Sep 2021 14:19:22 +0530 Subject: [PATCH] Add Unit Test For The Product Inventory Updation Testing --- tests/unit/Product/ProductCest.php | 67 ++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 tests/unit/Product/ProductCest.php diff --git a/tests/unit/Product/ProductCest.php b/tests/unit/Product/ProductCest.php new file mode 100644 index 000000000..951e2da37 --- /dev/null +++ b/tests/unit/Product/ProductCest.php @@ -0,0 +1,67 @@ +haveProduct(\Webkul\Core\Helpers\Laravel5Helper::SIMPLE_PRODUCT, [], ['simple']); + + $updatedInventoriesQty = $this->getRandomUpdatedInventoriesQty($I, $product); + + app(ProductInventoryRepository::class)->saveInventories([ + 'inventories' => $updatedInventoriesQty + ], $product); + + $product->refresh(); + + $I->assertEquals(array_sum($updatedInventoriesQty), $product->inventories->sum('qty')); + } + + /** + * Test old quantities. + * + * @param UnitTester $I + * @return void + */ + public function testProductInventoriesQty(UnitTester $I): void + { + $product = $I->haveProduct(\Webkul\Core\Helpers\Laravel5Helper::SIMPLE_PRODUCT, [], ['simple']); + + $oldInventoriesQty = $product->inventories->pluck('qty', 'inventory_source_id')->toArray(); + + $oldTotalQuantity = $product->inventories->sum('qty'); + + $I->assertEquals($oldTotalQuantity, array_sum($oldInventoriesQty)); + } + + /** + * Get random inventories qty for product. + * + * @param UnitTester $I + * @param \Webkul\Product\Models\Product $product + * @return array + */ + private function getRandomUpdatedInventoriesQty(UnitTester $I, $product): array + { + $oldInventoriesQty = $product->inventories->pluck('qty', 'inventory_source_id'); + + $updatedInventoriesQty = []; + + foreach ($oldInventoriesQty as $id => $oldInventoryQty) { + $updatedInventoriesQty[$id] = $I->fake()->numberBetween(500, 2000); + } + + return $updatedInventoriesQty; + } +}