public function testProductCountUpdatesOnProductUpdate() { $module_srl = 1001; $product_repository = new ProductRepository(); $product = new SimpleProduct(); $product->product_srl = 12; $product->title = "Some product"; $product->member_srl = 4; $product->module_srl = $module_srl; $product->product_type = 'simple'; $product->sku = 'some-product'; $product->friendly_url = $product->sku; $product->price = 100; $product->categories[] = 1000; $product->categories[] = 1002; $product_repository->insertProduct($product); // Check that count was increased $category_repository = new CategoryRepository(); $category = $category_repository->getCategory(1000); $this->assertEquals(1, $category->product_count); // Check that count was increased $category = $category_repository->getCategory(1002); $this->assertEquals(1, $category->product_count); // Check that count was increased $category = $category_repository->getCategory(1008); $this->isNull($category->product_count); // Delete product $args = new stdClass(); $args->module_srl = $module_srl; $products = $product_repository->getAllProducts($args); $this->assertNotNull($products); $product = array_shift($products); $product->categories = array(1002, 1008); $product_repository->updateProduct($product); // Check that count was decreased $category_repository = new CategoryRepository(); $category = $category_repository->getCategory(1000); $this->assertEquals(0, $category->product_count); // Check that count was decreased $category = $category_repository->getCategory(1002); $this->assertEquals(1, $category->product_count); // Check that count was increased $category = $category_repository->getCategory(1008); $this->assertEquals(1, $category->product_count); }