get_items( 'line_item' ) ); $fee_item = current( $order->get_items( 'fee' ) ); $shipping_item = current( $order->get_items( 'shipping' ) ); $refund = wc_create_refund( array( 'order_id' => $order->get_id(), 'reason' => 'testing', 'line_items' => array( $product_item->get_id() => array( 'qty' => 1, 'refund_total' => 1, ), $fee_item->get_id() => array( 'refund_total' => 10, ), $shipping_item->get_id() => array( 'refund_total' => 20, ), ), ) ); $this->assertNotWPError( $refund ); $request = new WP_REST_Request( 'GET', '/wc/v3/orders/' . $order->get_id() . '/refunds/' . $refund->get_id() ); $response = $this->server->dispatch( $request ); $data = $response->get_data(); $this->assertEquals( 200, $response->get_status() ); $this->assertContains( 'line_items', array_keys( $data ) ); $this->assertEquals( -1, $data['line_items'][0]['total'] ); $this->assertContains( 'fee_lines', array_keys( $data ) ); $this->assertEquals( -10, $data['fee_lines'][0]['total'] ); $this->assertContains( 'shipping_lines', array_keys( $data ) ); $this->assertEquals( -20, $data['shipping_lines'][0]['total'] ); } }