Skip to content
This repository has been archived by the owner on Aug 13, 2022. It is now read-only.

Commit

Permalink
#2 0823
Browse files Browse the repository at this point in the history
  • Loading branch information
jsy3831 committed Aug 23, 2021
1 parent ae74528 commit 84c9dde
Show file tree
Hide file tree
Showing 11 changed files with 130 additions and 64 deletions.
3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ dependencies {
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16'
implementation 'junit:junit:4.13.1'
implementation("org.springframework.boot:spring-boot-starter-redis")
implementation("org.springframework.session:spring-session-data-redis")

compileOnly 'org.projectlombok:lombok'
runtimeOnly 'mysql:mysql-connector-java'
annotationProcessor 'org.projectlombok:lombok'
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/sns/untitled/UntitledApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

@SpringBootApplication
//@EnableRedisHttpSession
public class UntitledApplication {

public static void main(String[] args) {
Expand Down
31 changes: 17 additions & 14 deletions src/main/java/com/sns/untitled/user/controller/UserController.java
Original file line number Diff line number Diff line change
@@ -1,29 +1,32 @@
package com.sns.untitled.user.controller;

import com.sns.untitled.user.dto.UserDto;
import com.sns.untitled.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;

@RestController
@RequestMapping("/user")
@RequiredArgsConstructor
public class UserController {

private final UserService userService;

@Autowired
public UserController(UserService userService){
this.userService = userService;
@PostMapping("/login")
public void login(@RequestParam String id, @RequestParam String password, HttpSession httpSession) {
UserDto user = userService.login(id, password);
httpSession.setAttribute("userInfo", user);
}

@PostMapping("/hello/{name}")
public String hello(@PathVariable String name){
return userService.hello(name);
@PostMapping("/logout")
public void logout() {
}

@GetMapping("/login")
public String login(){
return "test";
@GetMapping("/{id}")
public UserDto getUserInfo(@PathVariable String id) {
UserDto user = userService.getUserInfo(id);
return user;
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.sns.untitled.user.model;
package com.sns.untitled.user.dto;

import lombok.Getter;
import lombok.Setter;

import java.util.Date;
import java.time.LocalDateTime;

@Getter
@Setter
public class User {
public class UserDto {

private int userId;

Expand All @@ -19,10 +19,12 @@ public class User {

private String email;

private Date birth;
private LocalDateTime birth;

private String profileImageName;

private String profileImagePath;

private String profileMessage;

}
7 changes: 6 additions & 1 deletion src/main/java/com/sns/untitled/user/mapper/UserMapper.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
package com.sns.untitled.user.mapper;

import com.sns.untitled.user.dto.UserDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface UserMapper {

// void insertName(String name);
UserDto findUserByIdAndPassword(@Param("id") String id, @Param("password") String password);

UserDto findUserById(@Param("id") String id);

}
6 changes: 5 additions & 1 deletion src/main/java/com/sns/untitled/user/service/UserService.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package com.sns.untitled.user.service;

import com.sns.untitled.user.dto.UserDto;

public interface UserService {

public String hello(String name);
UserDto login(String id, String password);

UserDto getUserInfo(String id);

}
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
package com.sns.untitled.user.service.impl;

import com.sns.untitled.user.mapper.UserMapper;
import com.sns.untitled.user.dto.UserDto;
import com.sns.untitled.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class UserServiceImpl implements UserService {

private final UserMapper userMapper;

@Autowired
public UserServiceImpl(UserMapper userMapper){
this.userMapper = userMapper;
@Override
public UserDto login(String id, String password) {
UserDto userInfo = userMapper.findUserByIdAndPassword(id, password);
return userInfo;
}

@Override
public String hello(String name) {
// userMapper.insertName(name);
return "Hello " + name + " Success Insert";
public UserDto getUserInfo(String id) {
UserDto userInfo = userMapper.findUserById(id);
return userInfo;
}
}
5 changes: 5 additions & 0 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,8 @@ spring.datasource.username=root
spring.datasource.password=nzpen030#
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy

#spring.session.store-type=redis
#spring.redis.host=localhost
#spring.redis.password=
#spring.redis.port=6379

30 changes: 26 additions & 4 deletions src/main/resources/mapper/UserMapper.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,30 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.sns.untitled.user.mapper.UserMapper">
<!-- <insert id="insertName" parameterType="String">-->
<!-- INSERT INTO user_dump(user_name)-->
<!-- VALUES(#{name})-->
<!-- </insert>-->

<resultMap id="userDto" type="com.sns.untitled.user.dto.UserDto">
<result property="userId" column="user_id"/>
<result property="id" column="id"/>
<result property="password" column="password"/>
<result property="name" column="name"/>
<result property="email" column="email"/>
<result property="birth" column="birth"/>
<result property="profileImageName" column="profile_image_name"/>
<result property="profileImagePath" column="profile_image_path"/>
<result property="profileMessage" column="profile_message"/>
</resultMap>

<select id="findUserByIdAndPassword" resultMap="userDto">
SELECT *
FROM user
WHERE id = #{id}
AND password = #{password}
</select>

<select id="findUserById" resultMap="userDto">
SELECT *
FROM user
WHERE id = #{id}
</select>

</mapper>

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package com.sns.untitled.user.service.impl;

import com.sns.untitled.user.mapper.UserMapper;
import com.sns.untitled.user.dto.UserDto;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.*;

@ExtendWith(MockitoExtension.class)
class UserServiceImplTest {

@InjectMocks
UserServiceImpl userServiceImpl;

@Mock
UserMapper userMapper;

public UserDto userDto() {
UserDto user = new UserDto();
user.setUserId(1);
user.setId("admin");
user.setPassword("1234");
user.setName("관리자");
user.setEmail("admin@gmail.com");
user.setProfileImageName("프로필사진1");
user.setProfileImagePath("이미지경로");
user.setProfileMessage("상태메세지");
return user;
}

@Test
@DisplayName("로그인 성공")
public void successLogin() throws Exception {
//given
UserDto userDto = userDto();
when(userMapper.findUserByIdAndPassword("admin", "1234")).thenReturn(userDto);

//when
UserDto result = userServiceImpl.login("admin", "1234");

//then
assertEquals(result, userDto);
}
}

0 comments on commit 84c9dde

Please sign in to comment.