UserVO.java
package edu.global.ex.vo;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class UserVO {
private String username;
private String password;
private int enabled;
private List<AuthVO> authList;
}
UserVOTest.java
package edu.global.ex.vo;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@SpringBootTest
class UserVOTest {
@Test
void userVOtest() {
UserVO vo = new UserVO();
log.info("객체 생성 : " + vo);
System.out.println(vo);
assertNotNull(vo);
}
}
[Console]
(log.info) 객체 생성 : UserVO(username=null, password=null, enabled=0, authList=null)
(System.out.println) UserVO(username=null, password=null, enabled=0, authList=null)
void userVOtest() {
UserVO vo = new UserVO();
vo.setPassword("1234");
vo.setUsername("홍길동");
System.out.println(vo);
assertNotNull(vo);
}
[Console]
UserVO(username=홍길동, password=1234, enabled=0, authList=null)
DataSourceTest.java
package edu.global.ex.db;
import static org.junit.jupiter.api.Assertions.*;
import javax.sql.DataSource;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@SpringBootTest
class DataSourceTest {
@Autowired
private DataSource datasource;
@Test
void userVOtest() {
System.out.println(datasource);
assertNotNull(datasource);
}
}
[Console]
HikariDataSource (null)
UserMapper.java
package edu.global.ex.mapper;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import edu.global.ex.vo.UserVO;
@Mapper
public interface UserMapper {
public UserVO getUser(String username);
@Insert("insert into users(username,password,enabled) values(#{username},#{password},#{enabled})")
public int insertUser(UserVO userVO);
@Insert("insert into AUTHORITIES (username,AUTHORITY) values(#{username},'ROLE_USER')")
public void insertAuthorities(UserVO UserVO);
@Insert("insert into AUTHORITIES (username,AUTHORITY) values(#{username},'ROLE_ADMIN')")
public void insertAdminAuthorities(UserVO UserVO);
}
UserMapperTest.java
package edu.global.ex.mapper;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import edu.global.ex.vo.UserVO;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@SpringBootTest
class UserMapperTest {
@Autowired
private UserMapper userMapper;
@Autowired
private UserVO userVO;
@Autowired
private PasswordEncoder passwordEncoder;
@Test
void insertUserTest() {
UserVO user = new UserVO();
user.setUsername("kim5");
user.setPassword(new BCryptPasswordEncoder().encode("1234"));
user.setEnabled(1);
userMapper.insertUser(user);
userMapper.insertAuthorities(user);
}
}
@Test
void insertAdminTest() {
UserVO user = new UserVO();
user.setUsername("admin4");
user.setPassword(new BCryptPasswordEncoder().encode("1234"));
user.setEnabled(1);
userMapper.insertUser(user);
userMapper.insertAdminAuthorities(user);
}
UserService.java
package edu.global.ex.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import edu.global.ex.mapper.UserMapper;
import edu.global.ex.vo.UserVO;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public int addUser(UserVO user) {
log.info("addUser()..");
return userMapper.insertUser(user);
}
}
UserServiceTest.java
package edu.global.ex.service;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import edu.global.ex.vo.UserVO;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@SpringBootTest
class UserServiceTest {
@Autowired
private UserService userService;
@Test
void testAddUser() {
UserVO vo = new UserVO();
log.info("객체 생성 : " + vo);
vo.setUsername("홍길동2");
vo.setPassword("1234");
System.out.println(vo);
assertNotNull(vo);
assertEquals(vo.getUsername(), "홍길동2");
userService.addUser(vo);
}
}
[Console]
UserVO(username=홍길동2, password=1234, enabled=0, authList=null)
HomeControllerTest.java
package edu.global.ex.controller;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@SpringBootTest
class HomeControllerTest {
@Autowired
private MockMvc mockMvc;
// GetMapping(/)
@Test
// @WithMockUser 내용 추가해야함
void testHome() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/")).andExpect(MockMvcResultMatchers.status().isOk());
}
}
(내용은 14에 이어서)