// package org.ros.chatto;

// import static org.junit.Assert.assertArrayEquals;
// import static org.mockito.Mockito.times;
// import static org.mockito.Mockito.verify;
// import static org.mockito.Mockito.when;

// import org.junit.Before;
// import org.junit.Test;
// import org.junit.runner.RunWith;
// import org.mockito.InjectMocks;
// import org.mockito.Mock;
// import org.mockito.junit.MockitoJUnitRunner;
// import org.ros.chatto.dto.UserRegistrationDTO;
// import org.ros.chatto.model.ChatUser;
// import org.ros.chatto.model.Role;
// import org.ros.chatto.model.UserRole;
// import org.ros.chatto.repository.RoleRepository;
// import org.ros.chatto.repository.UserRepository;
// import org.ros.chatto.repository.UserRepositoryCustom;
// import org.ros.chatto.repository.UserRoleRepository;
// import org.ros.chatto.repository.UserSessionRepository;
// import org.ros.chatto.service.UserService;
// import org.ros.chatto.service.UserServiceImpl;
// import org.springframework.boot.test.context.SpringBootTest;
// import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
// import org.springframework.security.crypto.password.PasswordEncoder;

// import lombok.extern.slf4j.Slf4j;

// @SpringBootTest
// @RunWith(MockitoJUnitRunner.class)
// @Slf4j
// public class UnitTest {
// 	@InjectMocks

// 	// private RoleService roleService;
// 	// private UserTokenService userTokenService;

// 	@Mock
// 	private UserRoleRepository userRoleRepository;

// 	@Mock
// 	private PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();

// 	@Mock
// 	private RoleRepository roleRepository;

// 	@Mock
// 	private UserRepositoryCustom userRepositoryCustom;

// 	@Mock
// 	private UserSessionRepository userSessionRepository;

// 	@Mock
// 	private UserRepository userRepository;

// 	private UserService userService = new UserServiceImpl(userRepository, userRoleRepository, passwordEncoder, roleRepository,
// 			userSessionRepository);
// //    private ChatUser chatUser;

// 	@Before
// 	public void setupMock() {
// //        userRepository = mock(UserRepository.class);
// //        chatUser = mock(ChatUser.class);
// 	}

// 	@Test
// 	public void userRegistrationTest() {
// 		UserRegistrationDTO userRegistrationDTO = new UserRegistrationDTO();
// 		userRegistrationDTO.setUserName("mickey");
// 		userRegistrationDTO.setPassword("mouse");

// 		ChatUser chatUser = new ChatUser();
// 		chatUser.setUserName("mickey");
// //		chatUser.setPassword("mouse");

// 		Role role = new Role();
// 		role.setRoleID(2);
// 		role.setName("USER");
// 		when(roleRepository.findByName("USER")).thenReturn(role);
// 		when(userRepository.save(chatUser)).thenReturn(chatUser);

// 		UserRole userRole = userService.registerUser(userRegistrationDTO);
// 		assertArrayEquals(new Object[] { 2, "USER","mickey" },
// 				new Object[] { userRole.getRole().getRoleID(),
// 						userRole.getRole().getName(), userRole.getUser().getUserName() });
// 		verify(userRepository, times(1)).save(chatUser);
// 		verify(userRoleRepository,times(1)).save(userRole);
// 	}

// }
