package org.berzerkula.builddb.services; import org.berzerkula.builddb.models.AppUser; import org.berzerkula.builddb.repositories.AppUserRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.security.core.userdetails.UserDetails; import java.util.ArrayList; import java.util.List; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) class AppUserServiceTest { @InjectMocks private AppUserService appUserService; @Mock AppUserRepository appUserRepository; @BeforeEach public void init() { MockitoAnnotations.openMocks(this); } @Test void testFindByEmailAndNullOrNotNull() { List appUsers = new ArrayList(); AppUser one = new AppUser("John", "Doe", "john.doe@test.com", "", "", "password", "client"); AppUser two = new AppUser("John2", "Doe2", "john.doe2@test.com", "", "", "password", "client"); AppUser three = new AppUser("John3", "Doe3", "john.doe3@test.com", "", "", "password", "client"); appUsers.add(one); appUsers.add(two); appUsers.add(three); when(appUserRepository.findByEmail("john.doe2@test.com")).thenReturn(two); UserDetails userDetails = appUserService.loadUserByUsername("john.doe2@test.com"); assertNotNull(userDetails); userDetails = appUserService.loadUserByUsername(""); assertNull(userDetails); } }