public function testUserProtect() { /** * @var FOSUser */ $fosUser = $this->fixtures->getReference('user.admin'); $userService = $this->getContainer()->get('partkeepr.userservice'); $user = $userService->getProxyUser($fosUser->getUsername(), $userService->getBuiltinProvider(), true); /* * @var User $user */ $userService->protect($user); $this->assertTrue($user->isProtected()); $client = static::makeClient(true); $iriConverter = $this->getContainer()->get('api.iri_converter'); $iri = $iriConverter->getIriFromItem($user); $data = ['username' => 'foo']; $client->request('PUT', $iri, [], [], [], json_encode($data)); $response = json_decode($client->getResponse()->getContent()); $exception = new UserProtectedException(); $this->assertEquals(500, $client->getResponse()->getStatusCode()); $this->assertObjectHasAttribute('hydra:description', $response); $this->assertEquals($exception->getMessageKey(), $response->{'hydra:description'}); $client->request('DELETE', $iri); $response = json_decode($client->getResponse()->getContent()); $this->assertEquals(500, $client->getResponse()->getStatusCode()); $this->assertObjectHasAttribute('hydra:description', $response); $this->assertEquals($exception->getMessageKey(), $response->{'hydra:description'}); }