/** * Unit test for eZProductCollection::cleanupList() * * Outline: * 1) Create 10 eZProductCollection objects * 2) Pick 5 random ID of created items * 3) Call cleanupList() on these 5 items * 4) Check that the 5 items have been removed * 5) Check that the 5 other items haven't been removed */ public function testCleanupList() { // Create a few collections $row = array( 'created' => time(), 'currency_code' => 'EUR' ); $collection = new eZProductCollection( $row ); $collection->store(); $collectionIDArray[] = $collection->attribute( 'id' ); for( $i = 0; $i < 1500; $i++ ) { $newCollection = $collection->copy(); $collectionIDArray[] = $newCollection->attribute( 'id' ); } // pick a few random ID to delete $deleteIDArray = array_rand( $collectionIDArray, round( count( $collectionIDArray ) / 2 ) ); $remainingIDArray = array_diff( $collectionIDArray, $deleteIDArray ); eZProductCollection::cleanupList( $deleteIDArray ); // Check that each item of deleteIDArray has been removed foreach( $deleteIDArray as $id ) { $this->assertNull( eZProductCollection::fetch( $id ) ); } // And check that each item of remainingIDArray hasn't been deleted foreach( $remainingIDArray as $id ) { $this->assertInstanceOf( 'eZProductCollection', eZProductCollection::fetch( $id ) ); } }
static function verify($id) { $invalidItemArray = array(); $collection = eZProductCollection::fetch($id); if (!is_object($collection)) { return $invalidItemArray; } $currency = $collection->attribute('currency_code'); $productItemList = eZPersistentObject::fetchObjectList(eZProductCollectionItem::definition(), null, array("productcollection_id" => $id), null, null, true); $isValid = true; foreach ($productItemList as $productItem) { if (!$productItem->verify($currency)) { $invalidItemArray[] = $productItem; $isValid = false; } } if (!$isValid) { return $invalidItemArray; } return $isValid; }
function productCollection() { return eZProductCollection::fetch($this->attribute('productcollection_id')); }
function currencyCode($collection = false) { if (is_string($collection) and $collection != '') { $currencyCode = $collection; } else { if ($collection instanceof eZProductCollection === false) { $collection = eZProductCollection::fetch($this->attribute('productcollection_id')); } $currencyCode = $collection->attribute('currency_code'); } // Backwards compability for orders done with the price datatype. if ($currencyCode == '') { $currencyCode = eZOrder::fetchLocaleCurrencyCode(); } return $currencyCode; }
} if ($http->hasPostVariable("RemoveProductItemButton")) { $itemList = $http->postVariable("RemoveProductItemDeleteList"); $wishList = eZWishList::currentWishList(); $db = eZDB::instance(); $db->begin(); foreach ($itemList as $item) { $wishList->removeItem($item); } $db->commit(); $module->redirectTo($module->functionURI("wishlist") . "/"); return; } if ($http->hasPostVariable("StoreChangesButton")) { $wishList = eZWishList::currentWishList(); $collection = eZProductCollection::fetch($wishList->attribute('productcollection_id')); if ($collection and $http->hasPostVariable("ProductItemIDList")) { $collectionItems = $collection->itemList(); $productItemIDlist = $http->postVariable("ProductItemIDList"); $productItemCountList = $http->hasPostVariable("ProductItemCountList") ? $http->postVariable("ProductItemCountList") : false; if ($productItemCountList == false) { $module->redirectTo($module->functionURI("wishlist") . "/"); return; } $productItemsCount = array(); // Create array of productItemID (as index) and productItemCount (as value) foreach ($productItemIDlist as $key => $productItemID) { if (isset($productItemCountList[$key])) { $productItemsCount[$productItemID] = $productItemCountList[$key]; } }