/**
     * 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;
 }
Exemple #3
0
 function productCollection()
 {
     return eZProductCollection::fetch($this->attribute('productcollection_id'));
 }
Exemple #4
0
 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;
 }
Exemple #5
0
}
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];
            }
        }