base_url = 'https://jsonplaceholder.typicode.com/'; if ($this->inst_om_rest_client === null) { $this->inst_om_rest_client = new om_rest_client(null); } // Permet d'avoir un message d'erreur cURL lors d'un retour 404 curl_setopt( $this->inst_om_rest_client->getCurl(), CURLOPT_FAILONERROR, true ); } /** * Test de la méthode GET. * * @return void */ public function test_get_method() { $url = $this->base_url.'posts/1'; $response = $this->inst_om_rest_client->execute( "GET", "", array(), $url, array() ); // Vérification que le code retour est 200. Si ce n'est pas le cas, le // message d'erreur cURL est affiché dans la console $this->assertEquals( 200, $this->inst_om_rest_client->getResponseCode(), $this->inst_om_rest_client->getErrorMessage() ); $expected_return = array( "userId" => 1, "id" => 1, "title" => "sunt aut facere repellat provident occaecati excepturi optio reprehenderit", "body" => "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto" ); $this->assertEquals($expected_return, $response); } /** * Test de la méthode POST. * * @return void */ public function test_post_method() { $url = $this->base_url . 'posts'; $data = array( "title" => 'foo', "body" => 'bar', "userId" => 20 ); $response = $this->inst_om_rest_client->execute( "POST", "application/json; charset=UTF-8", json_encode($data), $url, array( "Accept: application/json", "Accept-charset: UTF-8" ) ); // Vérification que le code retour est 201. Si ce n'est pas le cas, le // message d'erreur cURL est affiché dans la console $this->assertEquals( 201, $this->inst_om_rest_client->getResponseCode(), $this->inst_om_rest_client->getErrorMessage() ); $expected_return = array( "id" => 101, "title" => 'foo', "body" => 'bar', "userId" => 20 ); $this->assertEquals($expected_return, $response); } /** * Test de la méthode PUT. * * @return void */ public function test_put_method() { $url = $this->base_url . 'posts/2'; $data = array( "id" => 2, "title" => 'foo', "body" => 'bar', "userId" => 20 ); $response = $this->inst_om_rest_client->execute( "PUT", "application/json; charset=UTF-8", json_encode($data), $url, array( "Accept: application/json", "Accept-charset: UTF-8" ) ); // Vérification que le code retour est 200. Si ce n'est pas le cas, le // message d'erreur cURL est affiché dans la console $this->assertEquals( 200, $this->inst_om_rest_client->getResponseCode(), $this->inst_om_rest_client->getErrorMessage() ); $expected_return = array( "id" => 2, "title" => 'foo', "body" => 'bar', "userId" => 20 ); $this->assertEquals($expected_return, $response); } /** * Test de la méthode DELETE. * * @return void */ public function test_delete_method() { $url = $this->base_url . 'posts/1'; $response = $this->inst_om_rest_client->execute( "DELETE", "", array(), $url, array() ); // Vérification que le code retour est 200. Si ce n'est pas le cas, le // message d'erreur cURL est affiché dans la console $this->assertEquals( 200, $this->inst_om_rest_client->getResponseCode(), $this->inst_om_rest_client->getErrorMessage() ); // Le retour doit être un tableau vide $this->assertEquals($response, array()); } }