public function test_purge_sets_all_vars()
 {
     $url = 'http://www.example.org/2015/05/test-post';
     $expected_result = MockData::purge_url_response_200();
     // Mock the remote request
     \WP_Mock::wpFunction('wp_remote_request', array('args' => array($url, array('method' => 'PURGE', 'headers' => array('Fastly-Soft-Purge' => 1))), 'times' => 1, 'return' => MockData::purge_url_response_200()));
     $purge = new Purgely_Purge();
     $actual_result = $purge->purge('url', $url, array('test' => 'value'));
     $this->assertEquals($expected_result, $actual_result);
     $this->assertEquals($expected_result, $purge->get_response());
     // Test that properties are set correctly
     $this->assertEquals('url', $purge->get_type());
     $this->assertEquals($url, $purge->get_thing());
     $this->assertEquals(array('test' => 'value'), $purge->get_purge_args());
 }