Skip to content

Commit f2506fd

Browse files
committed
Adicionado o delete
1 parent 2c1d174 commit f2506fd

File tree

4 files changed

+84
-7
lines changed

4 files changed

+84
-7
lines changed

.phpunit.result.cache

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
C:37:"PHPUnit\Runner\DefaultTestResultCache":308:{a:2:{s:7:"defects";a:3:{s:24:"UserTest::testCreateUser";i:3;s:22:"UserTest::testViewUser";i:3;s:24:"UserTest::testUpdateUser";i:3;}s:5:"times";a:4:{s:24:"ExampleTest::testExample";d:0.056;s:24:"UserTest::testCreateUser";d:0.137;s:22:"UserTest::testViewUser";d:0.022;s:24:"UserTest::testUpdateUser";d:0.047;}}}
1+
C:37:"PHPUnit\Runner\DefaultTestResultCache":556:{a:2:{s:7:"defects";a:5:{s:24:"UserTest::testCreateUser";i:3;s:22:"UserTest::testViewUser";i:3;s:24:"UserTest::testUpdateUser";i:3;s:21:"UserTest::testAllUser";i:3;s:24:"UserTest::testDeleteUser";i:3;}s:5:"times";a:8:{s:24:"ExampleTest::testExample";d:0.063;s:24:"UserTest::testCreateUser";d:0.178;s:22:"UserTest::testViewUser";d:0.026;s:24:"UserTest::testUpdateUser";d:0.036;s:21:"UserTest::testAllUser";d:0.007;s:24:"UserTest::testDeleteUser";d:0.117;s:34:"UserTest::testUpdateUserNoPassword";d:0.042;s:36:"UserTest::testUpdateUserWithPassword";d:0.046;}}}

app/Http/Controllers/UserController.php

+24-5
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public function store(Request $request)
2323
$this->validate($request, [
2424
'name' => 'required|max:255',
2525
'email' => 'required|unique:users|max:255',
26-
'password' => 'required|max:255'
26+
'password' => 'required|confirmed|max:255'
2727
]);
2828
$user = new User($request->all());
2929
$user->save();
@@ -32,11 +32,16 @@ public function store(Request $request)
3232

3333
public function update(Request $request, $id)
3434
{
35-
$this->validate($request, [
35+
$dadosValidacao = [
3636
'name' => 'required|max:255',
37-
'email' => 'required|unique:users|max:255',
38-
'password' => 'required|max:255'
39-
]);
37+
'email' => 'required|unique:users|max:255'
38+
];
39+
40+
$this->validate($request, $dadosValidacao);
41+
42+
if (isset($request->all()['password'])) {
43+
$dadosValidacao['password'] = 'required|confirmed|max:255';
44+
}
4045

4146
$user = User::find($id);
4247
$user->name = $request->input('name');
@@ -50,4 +55,18 @@ public function view($id)
5055
{
5156
return User::find($id);
5257
}
58+
59+
public function delete($id)
60+
{
61+
if (User::destroy($id)) {
62+
return new Response('Removido com sucesso!', 200);
63+
} else {
64+
return new Response('Erro ao remover!', 401);
65+
}
66+
}
67+
68+
public function list()
69+
{
70+
return User::all();
71+
}
5372
}

routes/web.php

+2
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,5 @@
1818
$router->post('/api/user', 'UserController@store');
1919
$router->get('/api/user/{id}', 'UserController@view');
2020
$router->put('/api/user/{id}', 'UserController@update');
21+
$router->get('/api/users', 'UserController@list');
22+
$router->delete('/api/user/{id}', 'UserController@delete');

tests/UserTest.php

+57-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public function testCreateUser()
1919
'name' => 'Nome 01',
2020
'email' => '[email protected]',
2121
'password' => '123',
22+
'password_confirmation' => '123'
2223
];
2324

2425
$this->post('/api/user', $dados);
@@ -50,7 +51,62 @@ public function testViewUser()
5051

5152
}
5253

53-
public function testUpdateUser()
54+
public function testAllUser()
55+
{
56+
57+
$this->get('/api/users');
58+
59+
$this->assertResponseOk();
60+
61+
$this->seeJsonStructure([
62+
'*' => [
63+
'id',
64+
'name',
65+
'email'
66+
]
67+
]);
68+
69+
}
70+
71+
public function testDeleteUser()
72+
{
73+
$user = \App\User::first();
74+
$this->delete('/api/user/' . $user->id);
75+
76+
$this->assertResponseOk();
77+
78+
$this->assertEquals("Removido com sucesso!", $this->response->content());
79+
80+
}
81+
82+
public function testUpdateUserNoPassword()
83+
{
84+
$user = \App\User::first();
85+
$dados = [
86+
'name' => 'Nome 03',
87+
'email' => '[email protected]',
88+
'password' => '123',
89+
];
90+
91+
$this->put('/api/user/' . $user->id, $dados);
92+
93+
$this->assertResponseOK();
94+
95+
$resposta = (array) json_decode($this->response->content());
96+
97+
$this->assertArrayHasKey('name', $resposta);
98+
$this->assertArrayHasKey('email', $resposta);
99+
$this->assertArrayHasKey('id', $resposta);
100+
101+
$this->notSeeInDatabase('users', [
102+
'name' => $user->name,
103+
'email' => $user->email,
104+
'id' => $user->id,
105+
106+
]);
107+
}
108+
109+
public function testUpdateUserWithPassword()
54110
{
55111
$user = \App\User::first();
56112
$dados = [

0 commit comments

Comments
 (0)