* BAEL-6830 initial commit

* BAEL-6830 clean up code
This commit is contained in:
Shahul Basha 2023-09-05 20:41:18 -04:00 committed by GitHub
parent 41facdad5f
commit 75046a3f32
3 changed files with 91 additions and 0 deletions

View File

@ -0,0 +1,18 @@
package com.baeldung.constructor;
public class User {
private final UserService userService;
public User() {
this.userService = new UserService();
}
public User(String userName) {
this.userService = new UserService(userName);
}
public String getUserName(){
return userService.getUserName();
}
}

View File

@ -0,0 +1,18 @@
package com.baeldung.constructor;
public class UserService {
private final String userName;
public UserService(String userName) {
this.userName = userName;
}
public UserService() {
this.userName = "Unknown";
}
public String getUserName(){
return this.userName;
}
}

View File

@ -0,0 +1,55 @@
package com.baeldung.constructor;
import static org.mockito.Mockito.when;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.mockito.MockedConstruction;
import org.mockito.Mockito;
class UserServiceUnitTest {
@Test
void whenConstructorInvokedWithInitializer_ThenMockObjectShouldBeCreated(){
try(MockedConstruction<UserService> mockUserService = Mockito.mockConstruction(UserService.class,(mock,context)-> when(mock.getUserName()).thenReturn("John Doe"))){
User user = new User();
Assertions.assertEquals(1,mockUserService.constructed().size());
Assertions.assertEquals("John Doe",user.getUserName());
}
}
@Test
void whenConstructorInvokedWithoutInitializer_ThenMockObjectShouldBeCreatedWithNullFields(){
try(MockedConstruction<UserService> mockUserService = Mockito.mockConstruction(UserService.class)){
User user = new User();
Assertions.assertEquals(1,mockUserService.constructed().size());
Assertions.assertNull(user.getUserName());
}
}
@Test
void whenConstructorInvokedWithParameters_ThenMockObjectShouldBeCreated(){
try(MockedConstruction<UserService> mockUserService = Mockito.mockConstruction(UserService.class,(mock, context) -> when(mock.getUserName()).thenReturn("John Doe"))){
User user = new User("Mike");
Assertions.assertEquals(1,mockUserService.constructed().size());
Assertions.assertEquals("John Doe",user.getUserName());
}
}
@Test
void whenMultipleConstructorsInvoked_ThenMultipleMockObjectsShouldBeCreated(){
try(MockedConstruction<UserService> mockUserService = Mockito.mockConstruction(UserService.class)){
User user = new User();
User secondUser = new User();
User thirdUser = new User("Mike");
when(mockUserService.constructed().get(0).getUserName()).thenReturn("John Doe");
when(mockUserService.constructed().get(1).getUserName()).thenReturn("Steve Smith");
Assertions.assertEquals(3,mockUserService.constructed().size());
Assertions.assertEquals("John Doe",user.getUserName());
Assertions.assertEquals("Steve Smith",secondUser.getUserName());
Assertions.assertNull(thirdUser.getUserName());
}
}
}