@@ -72,19 +72,9 @@ public function testShouldDenyIfUserHasNoPermission()
7272 $ this ->assertEquals ('Not enough permission. ' , $ result ->getMessage ());
7373 }
7474
75- public function testRequiredFieldsPermissions ()
75+ public function testShouldRequireFirstNameField ()
7676 {
77- // create user and logged in
78- $ user = User::create (array (
79- 'first_name ' => 'darryl ' ,
80- 'email ' => 'darryl@gmail.com ' ,
81- 'password ' => 'pass$darryl ' ,
82- 'permissions ' => array (
83- 'superuser ' => 1
84- )
85- ));
86-
87- $ this ->application ['auth ' ]->loginUsingId ($ user ->id );
77+ $ this ->createUserAndLoggedIn (array ('superuser ' => 1 ));
8878
8979 // dummy request, required first name
9080 $ request = Request::create ('' ,'GET ' ,array (
@@ -105,6 +95,11 @@ public function testRequiredFieldsPermissions()
10595 $ this ->assertFalse ($ result ->isSuccessful (), 'Transaction should not be successful. ' );
10696 $ this ->assertEquals (400 , $ result ->getStatusCode (), 'Status code should be 400 ' );
10797 $ this ->assertEquals ('The first name field is required. ' , $ result ->getMessage ());
98+ }
99+
100+ public function testShouldRequireLastName ()
101+ {
102+ $ this ->createUserAndLoggedIn (array ('superuser ' => 1 ));
108103
109104 // dummy request, required email
110105 $ request = Request::create ('' ,'GET ' ,array (
@@ -124,13 +119,18 @@ public function testRequiredFieldsPermissions()
124119
125120 $ this ->assertFalse ($ result ->isSuccessful (), 'Transaction should not be successful. ' );
126121 $ this ->assertEquals (400 , $ result ->getStatusCode (), 'Status code should be 400 ' );
127- $ this ->assertEquals ('The email field is required. ' , $ result ->getMessage ());
122+ $ this ->assertEquals ('The last name field is required. ' , $ result ->getMessage ());
123+ }
124+
125+ public function testShouldRequireEmail ()
126+ {
127+ $ this ->createUserAndLoggedIn (array ('superuser ' => 1 ));
128128
129- // dummy request, required valid email
129+ // dummy request, required email
130130 $ request = Request::create ('' ,'GET ' ,array (
131131 'firstName ' => 'John ' ,
132- 'lastName ' => '' ,
133- 'email ' => 'some invalid email ' ,
132+ 'lastName ' => 'Doe ' ,
133+ 'email ' => '' ,
134134 'password ' => '' ,
135135 'permissions ' => '' ,
136136 'groups ' => array (),
@@ -144,13 +144,18 @@ public function testRequiredFieldsPermissions()
144144
145145 $ this ->assertFalse ($ result ->isSuccessful (), 'Transaction should not be successful. ' );
146146 $ this ->assertEquals (400 , $ result ->getStatusCode (), 'Status code should be 400 ' );
147- $ this ->assertEquals ('The email must be a valid email address. ' , $ result ->getMessage ());
147+ $ this ->assertEquals ('The email field is required. ' , $ result ->getMessage ());
148+ }
149+
150+ public function testShouldRequireEmailToBeUnique ()
151+ {
152+ $ this ->createUserAndLoggedIn (array ('superuser ' => 1 ));
148153
149- // dummy request, required unique email
154+ // dummy request, required email
150155 $ request = Request::create ('' ,'GET ' ,array (
151156 'firstName ' => 'John ' ,
152- 'lastName ' => '' ,
153- 'email ' => 'darryl@gmail.com ' , // this email is already used aboved
157+ 'lastName ' => 'Doe ' ,
158+ 'email ' => 'darryl@gmail.com ' , // existing email
154159 'password ' => '' ,
155160 'permissions ' => '' ,
156161 'groups ' => array (),
@@ -280,4 +285,17 @@ public function testShouldAssociateTheUserToTheGroupIfThereIsAnyProvided()
280285 $ this ->assertTrue ($ createdUser ->inGroup ($ artist ), 'User should be in artist group ' );
281286 $ this ->assertFalse ($ createdUser ->inGroup ($ moderator ), 'User should not be in moderator group ' );
282287 }
288+
289+ protected function createUserAndLoggedIn ($ permissions )
290+ {
291+ // create user and logged in
292+ $ user = User::create (array (
293+ 'first_name ' => 'darryl ' ,
294+ 'email ' => 'darryl@gmail.com ' ,
295+ 'password ' => 'pass$darryl ' ,
296+ 'permissions ' => $ permissions
297+ ));
298+
299+ $ this ->application ['auth ' ]->loginUsingId ($ user ->id );
300+ }
283301}
0 commit comments