public function testCreate() { $a = Address::fromArray(['name' => 'NewName']); $id = $this->service->createAddress($a); $created = $this->service->getAddressById($id); $this->assertEquals($created->name, $a->name); }
/** * Process PUT Requests. Updates an existing address. * * @param request Request to execute. * * @return Response Response to send. */ public function put(Request $request) { $a = Address::fromArray($request->getBody()); // TODO: improve error handling if ($this->addressService->updateAddress($a)) { return Response::ok(); } return Response::notFound(); }
/** * Process POST Requests, which appends a new address to the collection. * * @param request Request to execute. * * @return Response Response to send. */ public function post(Request $request) { $a = Address::fromArray($request->getBody()); // TODO: improve error handling $id = $this->addressService->createAddress($a); if (!is_null($id)) { return Response::created("{$id}"); } else { return Response::badRequest(); } }
public function testCreateUpdateDelete() { $a = Address::fromArray(['name' => 'NewName']); $response = $this->client->post('address', $this->req($a)); $this->assertEquals(201, $response->getStatusCode()); $id = intval($response->getHeader('Location')[0]); echo $id; $response = $this->client->get("address/{$id}"); $this->assertEquals(200, $response->getStatusCode()); $data = json_decode($response->getBody(), true); $this->assertEquals('NewName', $data['name']); $data['name'] = 'Updated'; $response = $this->client->put("address/{$id}", $this->req($data)); $this->assertEquals(200, $response->getStatusCode()); $response = $this->client->get("address/{$id}"); $this->assertEquals(200, $response->getStatusCode()); $data = json_decode($response->getBody(), true); $this->assertEquals('Updated', $data['name']); $response = $this->client->delete("address/{$id}"); $this->assertEquals(200, $response->getStatusCode()); $response = $this->client->get("address/{$id}"); $this->assertEquals(404, $response->getStatusCode()); }
private function loadData() { $addresses = []; $data = json_decode(file_get_contents($this->dataFile), true); $id = 0 + $data['seq']; foreach ($data['addresses'] as $d) { $a = Address::fromArray($d); $addresses[$a->id] = $a; } $this->addresses = $addresses; $this->seq = $id; }