function test_call_api_should_call_wp_remote_request_with_desired_params_and_return_error_if_not_successful()
 {
     add_filter("pre_http_request", array($this, "get_error_http_response"), 10, 3);
     $this->assertNull($this->http_request);
     $this->assertNull($this->url);
     $expected = '{ "object": "error", "message": "User has blocked requests through HTTP." }';
     $omise = new Omise();
     $response = $omise->call_api("private_key", "GET", "/customers/customer_id/cards");
     $this->assertEquals($expected, $response);
     global $wp_version;
     $expected = "GET";
     $actual = $this->http_request["method"];
     $this->assertEquals($expected, $actual);
     $expected = 60;
     $actual = $this->http_request["timeout"];
     $this->assertEquals($expected, $actual);
     $expected = "Basic cHJpdmF0ZV9rZXk6";
     $actual = $this->http_request["headers"]["Authorization"];
     $this->assertEquals($expected, $actual);
     $expected = "2014-07-27";
     $actual = $this->http_request["headers"]["Omise-Version"];
     $this->assertEquals($expected, $actual);
     $expected = "OmiseWooCommerce/" . OMISE_WOOCOMMERCE_PLUGIN_VERSION . " WooCommerce/" . WC_VERSION . " Wordpress/" . $wp_version;
     $actual = $this->http_request["headers"]["User-Agent"];
     $this->assertEquals($expected, $actual);
     $expected = "https://api.omise.co/customers/customer_id/cards";
     $this->assertEquals($expected, $this->url);
     remove_filter("pre_http_request", array($this, "get_error_http_response"), 10, 3);
 }