Example #1
0
 public function testUpdateShouldSaveWithHttpMethodParam()
 {
     //setup our creation mocks, expected results etc
     $config = ['trucker::request.base_uri' => 'http://example.com', 'trucker::request.http_method_param' => '_method'];
     $this->setupIndividualTest($this->getUpdateTestOptions(), $config);
     $u = new User(['name' => 'John Doe', 'email' => '*****@*****.**']);
     $u->id = 1;
     $result = $u->save();
     //get objects to assert on
     $history = $this->getHttpClientHistory();
     $request = $history->getLastRequest();
     $response = $history->getLastResponse();
     $this->assertTrue($response->isSuccessful());
     $this->assertTrue($result, "Save() should have been true");
     $this->assertEquals('POST', $request->getMethod(), "POST method expected");
     $this->assertTrue($this->arraysAreSimilar($u->attributes(), array_merge($request->getPostFields()->toArray())), "Expected post params to be equal to attributes");
     $this->assertEquals('/users/1', $request->getPath(), "Expected request to go to /users/1");
     $this->assertArrayHasKey('_method', $request->getPostFields()->toArray(), 'Expected http method param');
 }