how to write a mockito test case for if...else statement which also includes exception test, I am quite confused about this. UserService is an interface
UserFactory.java
public class UserFactory { @Autowired private List<UserService> UserList; private final Map<String, UserService> UserMap = new HashMap<>(); @PostConstruct public void initUserMap() { for (final UserService user : UserList) { UserMap.put(user.getUserId(), user); } } public UserService getUser(String userId) { final UserService userService = UserMap.get(userlId); if (null == userService) { throw new IllegalArgumentException("user are not in the group"); } return userService; } } UserService(Interface)
public interface UserService{ String getUserName(); String getUserId(); } here is my test, but it is not correct...
@RunWith(MockitoJUnitRunner.class) public class UserServiceTest { @Mock private UserService userService; @InjectMocks private UserFactory UserFactory; private Map<String, User> UserMap; private String userId = "123"; @Before public void set_up(){ UserMap = new HashMap<>(); UserMap.put(userId, userService); } @Test public void getUser(){ when(UserMap.get(userId)).thenReturn(userService); userService actual = userServiceFactory.getUser(userId); assertEquals(UserMap.get(userId), actual); } }
if (null == userService) {I assume. Right ?