public function testBlockCipher()
 {
     $documentManager = $this->documentManager;
     $testDoc = new Simple();
     $testDoc->setName('Toby');
     $documentManager->persist($testDoc);
     $documentManager->flush();
     $id = $testDoc->getId();
     $documentManager->clear();
     $repository = $documentManager->getRepository(get_class($testDoc));
     $testDoc = $repository->find($id);
     $this->assertNotEquals('Toby', $testDoc->getName());
     BlockCipherService::decryptDocument($testDoc, $documentManager->getClassMetadata(get_class($testDoc)));
     $this->assertEquals('Toby', $testDoc->getName());
     $testDoc->setName('Lucy');
     $documentManager->flush();
     $documentManager->clear();
     $testDoc = $repository->find($id);
     $this->assertNotEquals('Lucy', $testDoc->getName());
     BlockCipherService::decryptDocument($testDoc, $documentManager->getClassMetadata(get_class($testDoc)));
     $this->assertEquals('Lucy', $testDoc->getName());
 }
 public function testUpdateIdentity()
 {
     $documentManager = $this->documentManager;
     $this->routeMatch->setParam('id', 'lucy');
     $this->request->setMethod(Request::METHOD_PUT);
     $this->request->getHeaders()->addHeader(GenericHeader::fromString('Content-type: application/json'));
     $this->request->setContent('{
         "lastname":"Smiles",
         "email":"*****@*****.**"
     }');
     $result = $this->getController()->dispatch($this->request, $this->response);
     $returnArray = $result->getVariables();
     $this->assertEquals('lucy', $returnArray['identityName']);
     $this->assertEquals('Smiles', $returnArray['lastname']);
     //load the identity from db
     $documentManager->clear();
     $repository = $documentManager->getRepository($this->controller->getOptions()->getDocumentClass());
     $identity = $repository->findOneBy(['identityName' => 'lucy']);
     $this->assertTrue(isset($identity));
     $this->assertEquals('Smiles', $identity->getLastname());
     $this->assertEquals('Lucy', $identity->getFirstname());
     $this->assertNotEquals('*****@*****.**', $identity->getEmail());
     //check that the email can be retireved
     BlockCipherService::decryptDocument($identity, $documentManager->getClassMetadata($this->controller->getOptions()->getDocumentClass()));
     $this->assertEquals('*****@*****.**', $identity->getEmail());
 }