public function create($data)
 {
     $em = $this->getObjectManager();
     $contact = new Contact();
     $contact->exchangeArray($data);
     $em->persist($contact);
     $em->flush();
     return new JsonModel(array('data' => $contact->getId()));
 }
 public function testUpdateCanBeAccessed()
 {
     $data = array('firstName' => 'Jim', 'lastName' => 'Smith', 'middleInitial' => null, 'address1' => '123 Main St', 'address2' => 'Ste 400', 'city' => 'Pleasantville', 'state' => 'OK', 'zip' => '12345', 'zip4' => '6789', 'email' => '*****@*****.**', 'phoneNumber' => '8885551212', 'id' => 1);
     $contact = new Contact();
     $contact->exchangeArray($data);
     $entityManager = $this->getMockBuilder('\\Doctrine\\Common\\Persistence\\ObjectManager')->disableOriginalConstructor()->getMock();
     $entityManager->expects($this->once())->method('merge')->with($this->anything())->will($this->returnValue($contact));
     $entityManager->expects($this->once())->method('flush');
     $entityManager->expects($this->once())->method('find')->with('AddressBook\\Model\\Contact', 1)->will($this->returnValue($contact));
     $this->controller->setObjectManager($entityManager);
     $this->routeMatch->setParam('id', '1');
     $this->request->setMethod('put');
     $this->request->setContent(json_encode($data));
     $headers = new Headers();
     $headers->addHeaderLine('Content-type', 'application/json');
     $this->request->setHeaders($headers);
     $result = $this->controller->dispatch($this->request);
     $response = $this->controller->getResponse();
     $this->assertEquals(200, $response->getStatusCode());
     $this->assertEquals('{"data":1}', $result->serialize());
 }