@@ -45,10 +45,28 @@ void setUp() {
4545
4646
4747 Mockito .when (userRepository .findById (john .getId ())).thenReturn (Optional .of (john ));
48+ Mockito .when (userRepository .findByUsername (john .getUsername ())).thenReturn (john );
4849 Mockito .when (userRepository .findAll ()).thenReturn (allUsers );
4950 Mockito .when (userRepository .findById (-99L )).thenReturn (Optional .empty ());
5051 }
5152
53+ @ Test
54+ void getUserByUsernameReturnsUserIfExisting () {
55+ Optional <User > user = userService .getUserByUsername ("johndoe" );
56+
57+ Mockito .verify (userRepository , VerificationModeFactory .times (1 )).findByUsername (Mockito .anyString ());
58+ assertThat (user .get ().getName ()).isEqualTo ("John Doe" );
59+ assertThat (user .get ().getUsername ()).isEqualTo ("johndoe" );
60+ }
61+
62+ @ Test
63+ void getUserByUsernameReturnsEmptyIfNonExisting () {
64+ Optional <User > user = userService .getUserByUsername ("unknown" );
65+
66+ Mockito .verify (userRepository , VerificationModeFactory .times (1 )).findByUsername (Mockito .anyString ());
67+ assertThat (user ).isNotPresent ();
68+ }
69+
5270 @ Test
5371 void getUserDetailsReturnsUserIfExisting () {
5472 Optional <User > user = userService .getUserDetails (999L );
@@ -66,6 +84,22 @@ void getUserDetailsReturnsEmptyIfNonExisting() {
6684 assertThat (user ).isNotPresent ();
6785 }
6886
87+ @ Test
88+ void existsReturnsTrueIfExisting () {
89+ boolean exists = userService .exists ("johndoe" );
90+
91+ Mockito .verify (userRepository , VerificationModeFactory .times (1 )).findByUsername (Mockito .anyString ());
92+ assertThat (exists ).isTrue ();
93+ }
94+
95+ @ Test
96+ void existsReturnsFalseIfNonExisting () {
97+ boolean exists = userService .exists ("unknown" );
98+
99+ Mockito .verify (userRepository , VerificationModeFactory .times (1 )).findByUsername (Mockito .anyString ());
100+ assertThat (exists ).isFalse ();
101+ }
102+
69103 @ Test
70104 void getAllUsersReturnsAllExistingUsers () {
71105 User john = new User ("John Doe" , "johndoe" , "dummypassword" );
0 commit comments