From 2e7f6cced67bf06a1ec77d7680ff01bb411b8fda Mon Sep 17 00:00:00 2001 From: nova Date: Tue, 10 Dec 2019 20:13:31 +0530 Subject: [PATCH] changed userserviceimpl to constructor injection. this broke the pathetic excuse of a unit test I had made. no regrets --- .../ros/chatto/repository/RoleRepository.java | 3 +- .../ros/chatto/service/UserServiceImpl.java | 30 +++++++++++-------- .../test/java/org/ros/chatto/UnitTest.java | 15 ++++++---- 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/chatto/src/main/java/org/ros/chatto/repository/RoleRepository.java b/chatto/src/main/java/org/ros/chatto/repository/RoleRepository.java index 4dec770..59447d3 100644 --- a/chatto/src/main/java/org/ros/chatto/repository/RoleRepository.java +++ b/chatto/src/main/java/org/ros/chatto/repository/RoleRepository.java @@ -2,10 +2,11 @@ package org.ros.chatto.repository; import org.ros.chatto.model.Role; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; @Repository public interface RoleRepository extends JpaRepository{ -// @Query("select r from RoleRepository where name = ?1") + @Query("select r from Role r where r.name = ?1") public Role findByName(String roleName); } diff --git a/chatto/src/main/java/org/ros/chatto/service/UserServiceImpl.java b/chatto/src/main/java/org/ros/chatto/service/UserServiceImpl.java index 598d5b3..0e9b7c7 100644 --- a/chatto/src/main/java/org/ros/chatto/service/UserServiceImpl.java +++ b/chatto/src/main/java/org/ros/chatto/service/UserServiceImpl.java @@ -13,6 +13,7 @@ import org.ros.chatto.model.ChatUser; import org.ros.chatto.model.Role; import org.ros.chatto.model.UserRole; import org.ros.chatto.model.UserSession; +import org.ros.chatto.repository.RoleRepository; import org.ros.chatto.repository.UserRepository; import org.ros.chatto.repository.UserRoleRepository; import org.ros.chatto.repository.UserSessionRepository; @@ -24,20 +25,25 @@ import org.springframework.transaction.annotation.Transactional; @Transactional @Service public class UserServiceImpl implements UserService { - @Autowired - private UserRepository userRepository; + private final UserRepository userRepository; - @Autowired - private UserRoleRepository userRoleRepository; + private final UserRoleRepository userRoleRepository; - @Autowired - private PasswordEncoder passwordEncoder; + private final PasswordEncoder passwordEncoder; - @Autowired - private RoleService roleService; + private final RoleRepository roleRepository; - @Autowired - private UserSessionRepository userSessionRepository; + private final UserSessionRepository userSessionRepository; + + public UserServiceImpl(@Autowired UserRepository userRepository, @Autowired UserRoleRepository userRoleRepository, + @Autowired PasswordEncoder passwordEncoder, @Autowired RoleRepository roleRepository, + @Autowired UserSessionRepository userSessionRepository) { + this.userRepository = userRepository; + this.userRoleRepository = userRoleRepository; + this.passwordEncoder = passwordEncoder; + this.roleRepository = roleRepository; + this.userSessionRepository = userSessionRepository; + } @Override public UserRole registerUser(UserRegistrationDTO userRegistrationDTO) { @@ -46,11 +52,9 @@ public class UserServiceImpl implements UserService { user.setPassword(passwordEncoder.encode(userRegistrationDTO.getPassword())); ChatUser changedUser = userRepository.save(user); UserRole userRole = new UserRole(); - Role role = roleService.getRole("USER"); + Role role = roleRepository.findByName("USER"); userRole.setRole(role); userRole.setUser(changedUser); - // System.out.println(role.getRoleID()); - // System.out.println(changedUser.getUserID()); userRoleRepository.save(userRole); return userRole; } diff --git a/chatto/src/test/java/org/ros/chatto/UnitTest.java b/chatto/src/test/java/org/ros/chatto/UnitTest.java index 95791a0..7991f1c 100644 --- a/chatto/src/test/java/org/ros/chatto/UnitTest.java +++ b/chatto/src/test/java/org/ros/chatto/UnitTest.java @@ -15,11 +15,11 @@ 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.RoleService; import org.ros.chatto.service.UserService; import org.ros.chatto.service.UserServiceImpl; import org.springframework.boot.test.context.SpringBootTest; @@ -33,9 +33,9 @@ import lombok.extern.slf4j.Slf4j; @Slf4j public class UnitTest { @InjectMocks - private UserService userService = new UserServiceImpl(); -// private RoleService roleService; -// private UserTokenService userTokenService; + + // private RoleService roleService; + // private UserTokenService userTokenService; @Mock private UserRoleRepository userRoleRepository; @@ -44,7 +44,7 @@ public class UnitTest { private PasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); @Mock - private RoleService roleService; + private RoleRepository roleRepository; @Mock private UserRepositoryCustom userRepositoryCustom; @@ -54,6 +54,9 @@ public class UnitTest { @Mock private UserRepository userRepository; + + private UserService userService = new UserServiceImpl(userRepository, userRoleRepository, passwordEncoder, roleRepository, + userSessionRepository); // private ChatUser chatUser; @Before @@ -75,7 +78,7 @@ public class UnitTest { Role role = new Role(); role.setRoleID(2); role.setName("USER"); - when(roleService.getRole("USER")).thenReturn(role); + when(roleRepository.findByName("USER")).thenReturn(role); when(userRepository.save(chatUser)).thenReturn(chatUser); UserRole userRole = userService.registerUser(userRegistrationDTO);