/** * Create a {@link ShoppingCart} object and give * it some test {@link OrderItem} objects. * * @return object ShoppingCart */ public static function createCartWithItems() { $item1 = new ProductVariation_OrderItem(array('ProductVariationID' => 2, 'Version' => 1)); $item2 = new ProductVariation_OrderItem(array('ProductVariationID' => 1, 'Version' => 1)); $cart = new ShoppingCart(); $cart->addItem(2, $item1); $cart->addItem(1, $item2); return $cart; }
//method 'gets' how much total of all items with tax $afterTax = $this->getTaxAmount() + $this->getCostBeforeTax(); return $afterTax; } } class Item { // creates item class public $name; public $price; public function __construct($name, $price) { // construct allows to set name and price for each item $this->name = $name; $this->price = $price; } } $cart = new ShoppingCart(); $cart->addItem(new Item('Cheap Book', 2.99)); $cart->addItem(new Item('Expensive Book', 24.99)); $cart->addItem(new Item('Movie', 12.99)); $cart->addItem(new Item('Video Game', 59.99)); echo "<p>Total cost before tax: \${$cart->getCostBeforeTax()}</p>"; echo "<p>Tax amount: \${$cart->getTaxAmount()}</p>"; echo "<p>Total cost after tax: \${$cart->getCostAfterTax()}</p>"; ?> </p> </body> </html>
/** * @testdox ShoppingCart::getShippingAmount() will call ShippingMethod::getShippingAmount() to calculates the shipping amount. */ public function testGetShippingAmountWillCallShippingMethodToCalculatesTheShippingAmount() { $cart = new ShoppingCart(); $cart->addItem(new Product(123, 'item 0', 100, 1, 2, 15, 30), 2); $shippingFrom = '14400000'; $shippingTo = '01000000'; $shippingMethod = $this->getMock('\\Neto\\Commerce\\Shipping\\ShippingMethod', array('getShippingAmount')); $shippingMethod->expects($this->at(0))->method('getShippingAmount')->with($cart, $shippingFrom, $shippingTo); $cart->getShippingAmount($shippingMethod, $shippingFrom, $shippingTo); }
<?php function __autoload($class) { require_once '../class.' . $class . ".php"; } $book = new Book('PHP Object-Oriented Solutions', 300); $cart = new ShoppingCart(); $cart->addItem($book); $movie = new Dvd('Gladiator', '120 minutes'); $cart->addItem($movie);