public function test_retrieve_order() { $order = APP_Order_Factory::create(); $receipt = APP_Order_Receipt::retrieve($order->get_id()); // Receipt should contain the same values as the original $this->assertEquals($order->get_id(), $receipt->get_id()); $this->assertEquals($order->get_description(), $receipt->get_description()); $this->assertEquals($order->get_author(), $receipt->get_author()); $this->assertEquals($order->get_ip_address(), $receipt->get_ip_address()); $this->assertEquals($order->get_return_url(), $receipt->get_return_url()); $this->assertEquals($order->get_cancel_url(), $receipt->get_cancel_url()); $this->assertEquals($order->get_total(), $receipt->get_total()); $this->assertEquals($order->get_currency(), $receipt->get_currency()); // Customized Data should also retain their value $order = APP_Order_Factory::create(); $order->set_description('New Description'); $order->add_item('test', 100, $order->get_id()); $receipt = APP_Order_Receipt::retrieve($order->get_id()); $this->assertEquals($order->get_id(), $receipt->get_id()); $this->assertEquals($order->get_description(), $receipt->get_description()); $this->assertEquals($order->get_author(), $receipt->get_author()); $this->assertEquals($order->get_ip_address(), $receipt->get_ip_address()); $this->assertEquals($order->get_return_url(), $receipt->get_return_url()); $this->assertEquals($order->get_cancel_url(), $receipt->get_cancel_url()); $this->assertEquals($order->get_total(), $receipt->get_total()); $this->assertEquals($order->get_currency(), $receipt->get_currency()); }
/** * Creates a blank order object, or upgrades a draft order * @param APP_Draft_order $draft_order A draft order to be upgraded * @return APP_Order An order object representing the new order */ function appthemes_new_order($draft_order = null) { if (!empty($draft_order)) { return APP_Draft_Order::upgrade($draft_order); } else { return APP_Order_Factory::create(); } }
public function test_creating_order_recieves_default_currency() { // Create Mock Options Array add_theme_support('app-price-format', array('currency_default' => 'GBP')); $this->order = APP_Order_Factory::create(); // Default currency should be the code in the options $this->assertEquals('GBP', $this->order->get_currency()); }
/** * Upgrrades a Draft Order to a Main Order * @param APP_Draft_Order $draft_order The draft order to Upgrade * @return APP_Order An upgraded order */ public static function upgrade($draft_order) { if (!$draft_order instanceof APP_Draft_Order) { trigger_error('Invalid draft order given. Must be instance of APP_Draft_Order'); } $order = APP_Order_Factory::create(); $order->set_description($draft_order->get_description()); $order->set_gateway($draft_order->get_gateway()); $order->set_currency($draft_order->get_currency()); foreach ($draft_order->get_items() as $item) { $order->add_item($item['type'], $item['price'], $item['post_id']); } return $order; }
public function test_upgrade_order() { $order = new APP_Draft_Order(); $order->set_description('Draft'); $order->set_gateway('paypal'); $order->set_currency('EUR'); // We need an existing order that can be connected to $real_order = APP_Order_Factory::create(); $status = $order->add_item('test', 5, $real_order->get_id()); $new_real_order = APP_Draft_Order::upgrade($order); $this->assertEquals('Draft', $new_real_order->get_description()); $this->assertEquals('paypal', $new_real_order->get_gateway()); $this->assertEquals('EUR', $new_real_order->get_currency()); $this->assertCount(1, $new_real_order->get_items()); $this->assertEquals(5, $new_real_order->get_total()); }