Manual set order tests

This commit is contained in:
claudiulodro 2017-12-22 11:35:52 -08:00
parent 1c8dd6acbb
commit 09ef2195be
2 changed files with 19 additions and 25 deletions

View File

@ -430,6 +430,7 @@ class WC_REST_Orders_Controller extends WC_REST_Legacy_Orders_Controller {
case 'line_items' :
case 'shipping_lines' :
case 'fee_lines' :
case 'coupon_lines' :
if ( is_array( $value ) ) {
foreach ( $value as $item ) {
if ( is_array( $item ) ) {
@ -442,28 +443,6 @@ class WC_REST_Orders_Controller extends WC_REST_Legacy_Orders_Controller {
}
}
break;
case 'coupon_lines' :
if ( is_array( $value ) ) {
foreach ( $value as $item ) {
if ( is_array( $item ) ) {
if ( $this->item_is_null( $item ) ) {
$item = $order->get_item( $item['id'] );
if ( $item && method_exists( $item, 'get_code' ) ) {
$order->remove_coupon( $item->get_code() );
} else {
$order->remove_item( $item['id'] );
}
} else {
if ( ! empty( $item['code'] ) ) {
$order->apply_coupon( $item['code'] );
} else {
$this->set_item( $order, $key, $item );
}
}
}
}
}
break;
case 'meta_data' :
if ( is_array( $value ) ) {
foreach ( $value as $meta ) {

View File

@ -333,15 +333,15 @@ class WC_Tests_API_Orders extends WC_REST_Unit_Test_Case {
/**
* Tests updating an order and adding a coupon.
*
* @since 3.0.0
* @since 3.3.0
*/
public function test_update_order_add_coupons() {
wp_set_current_user( $this->user );
$order = WC_Helper_Order::create_order();
$order_item = current( $order->get_items() );
$coupon = WC_Helper_Coupon::create_coupon( 'fake-coupon' );
$coupon->set_amount( 5 );
$coupon->save();
$request = new WP_REST_Request( 'PUT', '/wc/v2/orders/' . $order->get_id() );
$request->set_body_params( array(
'coupon_lines' => array(
@ -351,6 +351,13 @@ class WC_Tests_API_Orders extends WC_REST_Unit_Test_Case {
'discount_tax' => '0',
),
),
'line_items' => array(
array(
'id' => $order_item->get_id(),
'product_id' => $order_item->get_product_id(),
'total' => '35.00',
),
),
) );
$response = $this->server->dispatch( $request );
$data = $response->get_data();
@ -365,11 +372,12 @@ class WC_Tests_API_Orders extends WC_REST_Unit_Test_Case {
/**
* Tests updating an order and removing a coupon.
*
* @since 3.0.0
* @since 3.3.0
*/
public function test_update_order_remove_coupons() {
wp_set_current_user( $this->user );
$order = WC_Helper_Order::create_order();
$order_item = current( $order->get_items() );
$coupon = WC_Helper_Coupon::create_coupon( 'fake-coupon' );
$coupon->set_amount( 5 );
$coupon->save();
@ -390,6 +398,13 @@ class WC_Tests_API_Orders extends WC_REST_Unit_Test_Case {
'code' => null,
),
),
'line_items' => array(
array(
'id' => $order_item->get_id(),
'product_id' => $order_item->get_product_id(),
'total' => '40.00',
),
),
) );
$response = $this->server->dispatch( $request );
$data = $response->get_data();