function testRemoveFromCart() { /* Retrieve the product to compare from fixture */ $product = $this->objFromFixture('Product', 'mp3player'); $anotherproduct = $this->objFromFixture('Product', 'tshirt'); /* add items via url */ $this->get(ShoppingCart::set_quantity_item_link($product->ID, $product->class) . "?quantity=5"); $this->get(ShoppingCart::add_item_link($anotherproduct->ID, $product->class)); /* remove items via url */ $this->get(ShoppingCart::remove_item_link($product->ID, $product->class)); $this->get(ShoppingCart::remove_item_link($anotherproduct->ID, $product->class)); $items = ShoppingCart::get_items(); $this->assertEquals($items->Count(), 1, 'There is 1 item in the cart'); $this->assertEquals($items->First()->Quantity, 4, 'We have 4 mp3 players in the cart.'); ShoppingCart::clear(); //test clearing cart $this->assertEquals(ShoppingCart::get_items(), null, 'Cart is clear'); //items is a databoject set, and will therefore be null when cart is empty. //TODO: remove item not in cart - insanity check }
function testClearEntireCart() { /* Invoke the existing test for adding items to the cart */ $this->testAddItemsToCart(); /* Get the items from the cart in session */ $items = ShoppingCart::get_items(); /* We have 1 item in the cart */ $this->assertEquals(count($items), 1, 'There is 1 item in the cart'); /* Clear the shopping cart */ ShoppingCart::clear(); /* Take a peek at what items are in the cart */ $items = ShoppingCart::get_items(); /* We have nothing in the cart */ $this->assertEquals(count($items), 0, 'There are no items in the cart'); /* Clear the shopping cart */ ShoppingCart::clear(); }
/** * Returns the items of the order, if it hasn't been saved yet * it returns the items from session, if it has, it returns them * from the DB entry. */ function Items() { if ($this->ID) { return $this->itemsFromDatabase(); } elseif ($items = ShoppingCart::get_items()) { return $this->createItems($items); } }