/**
  * Test that changing a gateway gives the desired affects
  */
 function test_change_gateway()
 {
     $order = new APP_Draft_Order();
     // Default gateway should be empty
     $this->assertEmpty($order->get_gateway());
     // Setting a new gateway should cause it to be returned
     $order->set_gateway('paypal');
     $this->assertEquals('paypal', $order->get_gateway());
     // Fail on Bad Gateway ID
     $return_value = $order->set_gateway('non-existant-gateway');
     $this->assertFalse($return_value);
     // Failed calls should retain old value
     $this->assertEquals('paypal', $order->get_gateway());
     // Clearing a gateway should set it to blank
     $order->clear_gateway();
     $this->assertEmpty($order->get_gateway());
     return true;
 }
Beispiel #2
0
 /**
  * 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;
 }
 /**
  * Test creating a draft order and upgrading it
  */
 public function test_draft_order_creation()
 {
     $order = appthemes_new_order();
     $this->assertNotEmpty($order);
     $draft_order = new APP_Draft_Order();
     $draft_order->set_description('Draft');
     $draft_order->set_gateway('paypal');
     $draft_order->set_currency('EUR');
     $draft_order->add_item('test', 5, $order->get_id());
     $this->assertEquals('Draft', $draft_order->get_description());
     $this->assertEquals('paypal', $draft_order->get_gateway());
     $this->assertEquals('EUR', $draft_order->get_currency());
     $this->assertEquals(5, $draft_order->get_total());
     $this->assertCount(1, $draft_order->get_items());
     $new_order = appthemes_new_order($draft_order);
     $this->assertEquals('Draft', $new_order->get_description());
     $this->assertEquals('paypal', $new_order->get_gateway());
     $this->assertEquals('EUR', $new_order->get_currency());
     $this->assertEquals(5, $new_order->get_total());
     $this->assertCount(1, $new_order->get_items());
 }