package com.piggymetrics.auth.service.security; import com.piggymetrics.auth.domain.User; import com.piggymetrics.auth.repository.UserRepository; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UsernameNotFoundException; import static org.junit.Assert.assertEquals; import static org.mockito.Matchers.any; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; public class MongoUserDetailsServiceTest { @InjectMocks private MongoUserDetailsService service; @Mock private UserRepository repository; @Before public void setup() { initMocks(this); } @Test public void shouldLoadByUsernameWhenUserExists() { final User user = new User(); when(repository.findOne(any())).thenReturn(user); UserDetails loaded = service.loadUserByUsername("name"); assertEquals(user, loaded); } @Test(expected = UsernameNotFoundException.class) public void shouldFailToLoadByUsernameWhenUserNotExists() { service.loadUserByUsername("name"); } }