From d964fa55703c524a5913fd070e50cb99e0a3643d Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Fri, 16 Sep 2022 10:54:31 +0900 Subject: [PATCH 01/32] =?UTF-8?q?refactor:=20TDA=20=EB=B2=95=EC=B9=99=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/codesquad/entity/UserEntity.java | 4 ++++ src/main/java/codesquad/repository/ArrayUserRepository.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/codesquad/entity/UserEntity.java b/src/main/java/codesquad/entity/UserEntity.java index cbe5e70..8d2baf1 100644 --- a/src/main/java/codesquad/entity/UserEntity.java +++ b/src/main/java/codesquad/entity/UserEntity.java @@ -33,4 +33,8 @@ public String toString() { ", email='" + email + '\'' + '}'; } + + public boolean matchId(UserEntity user, String userId) { + return userId.equals(user.getUserId()); + } } diff --git a/src/main/java/codesquad/repository/ArrayUserRepository.java b/src/main/java/codesquad/repository/ArrayUserRepository.java index f753194..314b50f 100644 --- a/src/main/java/codesquad/repository/ArrayUserRepository.java +++ b/src/main/java/codesquad/repository/ArrayUserRepository.java @@ -17,7 +17,7 @@ public void register(UserEntity userEntity) { @Override public UserEntity findById(String userId) { for (UserEntity user : users) { - if (userId.equals(user.getUserId())) { + if (user.matchId(user, userId)) { return user; } } From c2a8bb180da376878e3940908910cf0f2644aa35 Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Fri, 16 Sep 2022 10:55:02 +0900 Subject: [PATCH 02/32] =?UTF-8?q?chores:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=BD=94=EB=93=9C=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/codesquad/controller/UserController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/codesquad/controller/UserController.java b/src/main/java/codesquad/controller/UserController.java index 8caa905..ed17cc7 100644 --- a/src/main/java/codesquad/controller/UserController.java +++ b/src/main/java/codesquad/controller/UserController.java @@ -39,7 +39,6 @@ public String registerUser(UserDto userDto) { @GetMapping() public String getUserList(Model model) { - System.out.println("userService.findUsers().get(0) = " + userService.findUsers().get(0)); List users = userService.findUsers().stream() .map(userEntity -> modelMapper.map(userEntity, UserDto.class)).collect(Collectors.toList()); model.addAttribute("users", users); From 90273dcdd0215ed92d0fcaa239fc2c4746cec3f8 Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Sun, 18 Sep 2022 18:58:33 +0900 Subject: [PATCH 03/32] =?UTF-8?q?feat:=20=EC=A7=88=EB=AC=B8=ED=95=98?= =?UTF-8?q?=EA=B8=B0=20=ED=99=94=EB=A9=B4=20=EB=B6=88=EB=9F=AC=EC=98=A4?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codesquad/controller/QuestionController.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/codesquad/controller/QuestionController.java diff --git a/src/main/java/codesquad/controller/QuestionController.java b/src/main/java/codesquad/controller/QuestionController.java new file mode 100644 index 0000000..c3e4282 --- /dev/null +++ b/src/main/java/codesquad/controller/QuestionController.java @@ -0,0 +1,12 @@ +package codesquad.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class QuestionController { + @GetMapping("/question/post") + public String getQuestionForm() { + return "qna/form"; + } +} From e2652c99f56677476ced7e0db44ffa2149083ef7 Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Sun, 25 Sep 2022 22:06:09 +0900 Subject: [PATCH 04/32] =?UTF-8?q?feat:=20QuestionEntity=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/codesquad/entity/QuestionEntity.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/codesquad/entity/QuestionEntity.java diff --git a/src/main/java/codesquad/entity/QuestionEntity.java b/src/main/java/codesquad/entity/QuestionEntity.java new file mode 100644 index 0000000..f56d802 --- /dev/null +++ b/src/main/java/codesquad/entity/QuestionEntity.java @@ -0,0 +1,32 @@ +package codesquad.entity; + +import lombok.*; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +@Setter +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class QuestionEntity extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private String writer; + private String title; + private String contents; + + @Override + public String toString() { + return "QuestionEntity{" + + "writer='" + writer + '\'' + + ", title='" + title + '\'' + + ", contents='" + contents + '\'' + + '}'; + } +} From 5054a4e9ad7508d45be27a3754a63dd285b9b092 Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Sun, 25 Sep 2022 22:06:43 +0900 Subject: [PATCH 05/32] =?UTF-8?q?feat:=20=EC=A7=88=EB=AC=B8=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=20=EC=8B=9C=EA=B0=84=20=EA=B4=80=EB=A6=AC=EB=A5=BC=20?= =?UTF-8?q?=EC=9C=84=ED=95=9C=20BaseTimeEntity=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/codesquad/entity/BaseTimeEntity.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/main/java/codesquad/entity/BaseTimeEntity.java diff --git a/src/main/java/codesquad/entity/BaseTimeEntity.java b/src/main/java/codesquad/entity/BaseTimeEntity.java new file mode 100644 index 0000000..be0ca18 --- /dev/null +++ b/src/main/java/codesquad/entity/BaseTimeEntity.java @@ -0,0 +1,20 @@ +package codesquad.entity; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import javax.persistence.MappedSuperclass; +import java.time.LocalDateTime; + +@Getter +@Setter +@MappedSuperclass +public abstract class BaseTimeEntity { + + @CreatedDate + private LocalDateTime createdDate; + + @LastModifiedDate + private LocalDateTime modifiedDate; +} From 8218760055d71f343a45a6cb284cd3ccae3bb97a Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Sun, 25 Sep 2022 22:07:39 +0900 Subject: [PATCH 06/32] =?UTF-8?q?feat:=20Question=20=EC=9D=B8=ED=84=B0?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=8A=A4=EC=99=80=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?=EA=B0=9D=EC=B2=B4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/ArrayQuestionRepository.java | 26 +++++++++++++++++++ .../repository/QuestionRepository.java | 13 ++++++++++ 2 files changed, 39 insertions(+) create mode 100644 src/main/java/codesquad/repository/ArrayQuestionRepository.java create mode 100644 src/main/java/codesquad/repository/QuestionRepository.java diff --git a/src/main/java/codesquad/repository/ArrayQuestionRepository.java b/src/main/java/codesquad/repository/ArrayQuestionRepository.java new file mode 100644 index 0000000..f889ca7 --- /dev/null +++ b/src/main/java/codesquad/repository/ArrayQuestionRepository.java @@ -0,0 +1,26 @@ +package codesquad.repository; + +import codesquad.entity.QuestionEntity; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +public class ArrayQuestionRepository implements QuestionRepository { + private final List questions = new ArrayList<>(); + + @Override + public void post(QuestionEntity questionEntity) { + questions.add(questionEntity); + } + + @Override + public List findAll() { + return questions; + } + + @Override + public void setBaseTime(QuestionEntity questionEntity) { + questionEntity.setCreatedDate(LocalDateTime.now()); + } +} diff --git a/src/main/java/codesquad/repository/QuestionRepository.java b/src/main/java/codesquad/repository/QuestionRepository.java new file mode 100644 index 0000000..76e3cdb --- /dev/null +++ b/src/main/java/codesquad/repository/QuestionRepository.java @@ -0,0 +1,13 @@ +package codesquad.repository; + +import codesquad.entity.QuestionEntity; + +import java.util.List; + +public interface QuestionRepository { + void post(QuestionEntity questionEntity); + + List findAll(); + + void setBaseTime(QuestionEntity questionEntity); +} From 97a4aa22da50e45cf9736b3915518ee2fec9e89b Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Sun, 25 Sep 2022 22:09:08 +0900 Subject: [PATCH 07/32] =?UTF-8?q?feat:=20=EC=A7=88=EB=AC=B8=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1=20=EC=8B=9C,=20Dto=20->=20Entity=EC=9D=84=20=EC=9C=84?= =?UTF-8?q?=ED=95=9C=20Dto=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/question/QuestionRequestDto.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/main/java/codesquad/dto/question/QuestionRequestDto.java diff --git a/src/main/java/codesquad/dto/question/QuestionRequestDto.java b/src/main/java/codesquad/dto/question/QuestionRequestDto.java new file mode 100644 index 0000000..8d969b4 --- /dev/null +++ b/src/main/java/codesquad/dto/question/QuestionRequestDto.java @@ -0,0 +1,23 @@ +package codesquad.dto.question; + +import lombok.*; + +@NoArgsConstructor +@AllArgsConstructor +@Getter +@Setter +@Builder +public class QuestionRequestDto { + private String writer; + private String title; + private String contents; + + @Override + public String toString() { + return "QuestionDto{" + + "writer='" + writer + '\'' + + ", title='" + title + '\'' + + ", contents='" + contents + '\'' + + '}'; + } +} From 123f64e8f008b20dc5216fe7c3daf97802ef82a5 Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Sun, 25 Sep 2022 22:10:29 +0900 Subject: [PATCH 08/32] =?UTF-8?q?feat:=20Question=20=EB=B9=84=EC=A6=88?= =?UTF-8?q?=EB=8B=88=EC=8A=A4=20=EB=A1=9C=EC=A7=81=20=EC=9D=B8=ED=84=B0?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=8A=A4,=20=EA=B5=AC=ED=98=84=EC=B2=B4=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20-=20=EC=83=88=EB=A1=9C=EC=9A=B4=20?= =?UTF-8?q?=EC=A7=88=EB=AC=B8=20=EC=9E=91=EC=84=B1=20-=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=EB=90=9C=20=EC=A7=88=EB=AC=B8=20=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codesquad/service/QuestionService.java | 11 ++++++++ .../service/QuestionServiceImpl.java | 27 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/main/java/codesquad/service/QuestionService.java create mode 100644 src/main/java/codesquad/service/QuestionServiceImpl.java diff --git a/src/main/java/codesquad/service/QuestionService.java b/src/main/java/codesquad/service/QuestionService.java new file mode 100644 index 0000000..7c87940 --- /dev/null +++ b/src/main/java/codesquad/service/QuestionService.java @@ -0,0 +1,11 @@ +package codesquad.service; + +import codesquad.entity.QuestionEntity; + +import java.util.List; + +public interface QuestionService { + void postQuestion(QuestionEntity questionEntity); + + List findQuestions(); +} diff --git a/src/main/java/codesquad/service/QuestionServiceImpl.java b/src/main/java/codesquad/service/QuestionServiceImpl.java new file mode 100644 index 0000000..dad1c73 --- /dev/null +++ b/src/main/java/codesquad/service/QuestionServiceImpl.java @@ -0,0 +1,27 @@ +package codesquad.service; + +import codesquad.entity.QuestionEntity; +import codesquad.repository.QuestionRepository; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class QuestionServiceImpl implements QuestionService { + private final QuestionRepository questionRepository; + + public QuestionServiceImpl(QuestionRepository questionRepository) { + this.questionRepository = questionRepository; + } + + @Override + public void postQuestion(QuestionEntity questionEntity) { + questionRepository.post(questionEntity); + questionRepository.setBaseTime(questionEntity); + } + + @Override + public List findQuestions() { + return questionRepository.findAll(); + } +} From 45154302ffea8a1906a794880d3f084d971ccf8d Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Sun, 25 Sep 2022 22:12:29 +0900 Subject: [PATCH 09/32] =?UTF-8?q?feat:=20=EC=A7=88=EB=AC=B8=20=EC=84=9C?= =?UTF-8?q?=EB=B9=84=EC=8A=A4=20=EC=83=9D=EC=84=B1=EC=9E=90=20=EC=A3=BC?= =?UTF-8?q?=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/codesquad/AppConfig.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/codesquad/AppConfig.java b/src/main/java/codesquad/AppConfig.java index 5729379..e029999 100644 --- a/src/main/java/codesquad/AppConfig.java +++ b/src/main/java/codesquad/AppConfig.java @@ -1,7 +1,11 @@ package codesquad; +import codesquad.repository.ArrayQuestionRepository; import codesquad.repository.ArrayUserRepository; +import codesquad.repository.QuestionRepository; import codesquad.repository.UserRepository; +import codesquad.service.QuestionService; +import codesquad.service.QuestionServiceImpl; import codesquad.service.UserService; import codesquad.service.UserServiceImpl; import org.springframework.context.annotation.Bean; @@ -9,7 +13,7 @@ @Configuration public class AppConfig { - + @Bean public UserService userService() { return new UserServiceImpl(userRepository()); @@ -19,4 +23,14 @@ public UserService userService() { public UserRepository userRepository() { return new ArrayUserRepository(); } + + @Bean + public QuestionService questionService() { + return new QuestionServiceImpl(questionRepository()); + } + + @Bean + public QuestionRepository questionRepository() { + return new ArrayQuestionRepository(); + } } From 63c99cefd3dd683d71eaccee0acc930a3d5ce021 Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Sun, 25 Sep 2022 22:15:01 +0900 Subject: [PATCH 10/32] =?UTF-8?q?chores=20-=20mockito,=20mapstruct,=20lomb?= =?UTF-8?q?ok=20=EC=82=AC=EC=9A=A9=EC=9D=84=20=EC=9C=84=ED=95=9C=20?= =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=EB=9F=AC=EB=A6=AC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20-=20=EB=B6=88=ED=95=84=EC=9A=94=ED=95=9C=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=82=AD=EC=A0=9C=20-=20=EA=B2=BD?= =?UTF-8?q?=EB=A1=9C=20=EC=88=98=EC=A0=95=20-=20=EB=B6=88=ED=95=84?= =?UTF-8?q?=EC=9A=94=ED=95=9C=20=EC=BD=94=EB=93=9C=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 8 ++++++-- src/main/java/codesquad/dto/UserDto.java | 16 ---------------- src/main/resources/static/index.html | 2 +- src/main/resources/templates/user/form.html | 1 - src/test/java/empty.txt | 0 5 files changed, 7 insertions(+), 20 deletions(-) delete mode 100644 src/test/java/empty.txt diff --git a/build.gradle b/build.gradle index c2a742e..5d51539 100755 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,6 @@ buildscript { } apply plugin: 'java' -apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' @@ -23,7 +22,7 @@ repositories { } dependencies { - implementation 'org.junit.jupiter:junit-jupiter:5.9.0' + implementation 'org.junit.jupiter:junit-jupiter:5.3.2' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' @@ -37,6 +36,11 @@ dependencies { implementation 'org.modelmapper:modelmapper:3.0.0' implementation 'org.springdoc:springdoc-openapi-ui:1.6.11' implementation 'com.h2database:h2' + implementation 'org.mapstruct:mapstruct:1.5.2.Final' + implementation 'org.mockito:mockito-core:2.22.0' + implementation 'org.mockito:mockito-junit-jupiter:2.22.0' + annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.2.Final' + annotationProcessor 'org.projectlombok:lombok:1.18.24' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.assertj:assertj-core:3.23.1' } \ No newline at end of file diff --git a/src/main/java/codesquad/dto/UserDto.java b/src/main/java/codesquad/dto/UserDto.java index 3d2bbee..13d7422 100644 --- a/src/main/java/codesquad/dto/UserDto.java +++ b/src/main/java/codesquad/dto/UserDto.java @@ -23,22 +23,6 @@ public UserDto(UserEntity userEntity) { email = userEntity.getEmail(); } - public String getUserId() { - return userId; - } - - public String getPassword() { - return password; - } - - public String getName() { - return name; - } - - public String getEmail() { - return email; - } - @Override public String toString() { return "UserDto{" + diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html index ed14d9f..377e856 100755 --- a/src/main/resources/static/index.html +++ b/src/main/resources/static/index.html @@ -134,7 +134,7 @@ diff --git a/src/main/resources/templates/user/form.html b/src/main/resources/templates/user/form.html index 0f5dd0f..8a30987 100755 --- a/src/main/resources/templates/user/form.html +++ b/src/main/resources/templates/user/form.html @@ -1,7 +1,6 @@ - SLiPP Java Web Programming diff --git a/src/test/java/empty.txt b/src/test/java/empty.txt deleted file mode 100644 index e69de29..0000000 From 9e2d8ae430c3d84a21a6cae1255bbcef5dee5b36 Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Sun, 25 Sep 2022 22:15:45 +0900 Subject: [PATCH 11/32] =?UTF-8?q?feat:=20Dto=20->=20entity=EB=A5=BC=20?= =?UTF-8?q?=EC=9C=84=ED=95=9C=20Mapper=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codesquad/mapper/QuestionMapperImpl.java | 28 +++++++++++++++++++ .../java/codesquad/mapper/QuestionMapper.java | 13 +++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/main/generated/codesquad/mapper/QuestionMapperImpl.java create mode 100644 src/main/java/codesquad/mapper/QuestionMapper.java diff --git a/src/main/generated/codesquad/mapper/QuestionMapperImpl.java b/src/main/generated/codesquad/mapper/QuestionMapperImpl.java new file mode 100644 index 0000000..0b81799 --- /dev/null +++ b/src/main/generated/codesquad/mapper/QuestionMapperImpl.java @@ -0,0 +1,28 @@ +package codesquad.mapper; + +import codesquad.dto.question.QuestionRequestDto; +import codesquad.entity.QuestionEntity; +import javax.annotation.Generated; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2022-09-25T21:39:37+0900", + comments = "version: 1.5.2.Final, compiler: javac, environment: Java 1.8.0_332 (Amazon.com Inc.)" +) +public class QuestionMapperImpl implements QuestionMapper { + + @Override + public QuestionEntity dtoToEntity(QuestionRequestDto questionRequestDto) { + if ( questionRequestDto == null ) { + return null; + } + + QuestionEntity.QuestionEntityBuilder questionEntity = QuestionEntity.builder(); + + questionEntity.writer( questionRequestDto.getWriter() ); + questionEntity.title( questionRequestDto.getTitle() ); + questionEntity.contents( questionRequestDto.getContents() ); + + return questionEntity.build(); + } +} diff --git a/src/main/java/codesquad/mapper/QuestionMapper.java b/src/main/java/codesquad/mapper/QuestionMapper.java new file mode 100644 index 0000000..2316eff --- /dev/null +++ b/src/main/java/codesquad/mapper/QuestionMapper.java @@ -0,0 +1,13 @@ +package codesquad.mapper; + +import codesquad.dto.question.QuestionRequestDto; +import codesquad.entity.QuestionEntity; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper +public interface QuestionMapper { + QuestionMapper questionMapper = Mappers.getMapper(QuestionMapper.class); + + QuestionEntity dtoToEntity(QuestionRequestDto questionRequestDto); +} \ No newline at end of file From 382a57dab66bd33800429c9a12b3718fa079c759 Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Sun, 25 Sep 2022 22:17:00 +0900 Subject: [PATCH 12/32] =?UTF-8?q?test:=20=EC=A7=88=EB=AC=B8=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/QuestionServiceImplTest.java | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/test/java/QuestionServiceImplTest.java diff --git a/src/test/java/QuestionServiceImplTest.java b/src/test/java/QuestionServiceImplTest.java new file mode 100644 index 0000000..d71af0d --- /dev/null +++ b/src/test/java/QuestionServiceImplTest.java @@ -0,0 +1,45 @@ +import codesquad.entity.QuestionEntity; +import codesquad.repository.ArrayQuestionRepository; +import codesquad.repository.QuestionRepository; +import codesquad.service.QuestionService; +import codesquad.service.QuestionServiceImpl; +import org.junit.jupiter.api.Assertions; +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 java.util.List; + +@ExtendWith(MockitoExtension.class) +public class QuestionServiceImplTest { + + @Mock + private QuestionRepository questionRepository = new ArrayQuestionRepository(); + + @InjectMocks + private QuestionService questionService = new QuestionServiceImpl(questionRepository); + + @Test + void 질문_등록_테스트() { + // given + QuestionEntity questionEntity = QuestionEntity.builder() + .writer("작성자") + .title("제목") + .contents("제목") + .build(); + + // when + questionService.postQuestion(questionEntity); + List questionEntityList = questionService.findQuestions(); + + // then + Assertions.assertEquals(questionEntityList.get(0).getWriter(), questionEntity.getWriter()); + } + + @Test + void contextLoads() { + System.out.println(org.springframework.core.SpringVersion.getVersion()); + } +} \ No newline at end of file From 92f9a9be780c686e16f1815703883d4c6ec666a6 Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Sun, 25 Sep 2022 22:17:21 +0900 Subject: [PATCH 13/32] =?UTF-8?q?feat:=20=EC=A7=88=EB=AC=B8=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/QuestionController.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/java/codesquad/controller/QuestionController.java b/src/main/java/codesquad/controller/QuestionController.java index c3e4282..16c151b 100644 --- a/src/main/java/codesquad/controller/QuestionController.java +++ b/src/main/java/codesquad/controller/QuestionController.java @@ -1,12 +1,33 @@ package codesquad.controller; +import codesquad.AppConfig; +import codesquad.dto.question.QuestionRequestDto; +import codesquad.entity.QuestionEntity; +import codesquad.mapper.QuestionMapper; +import codesquad.service.QuestionService; +import lombok.RequiredArgsConstructor; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; @Controller +@RequiredArgsConstructor public class QuestionController { + ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); + QuestionService questionService = applicationContext.getBean("questionService", QuestionService.class); + @GetMapping("/question/post") public String getQuestionForm() { return "qna/form"; } + + @PostMapping("/question") + public String postQuestion(QuestionRequestDto questionRequestDto) { + QuestionEntity questionEntity = QuestionMapper.questionMapper.dtoToEntity(questionRequestDto); + questionService.postQuestion(questionEntity); + + return "redirect:/"; + } } From d913d6e14b0238d873911d4679e7d1cf937197d9 Mon Sep 17 00:00:00 2001 From: mywnajsldkf Date: Sun, 2 Oct 2022 02:00:31 +0900 Subject: [PATCH 14/32] =?UTF-8?q?chores:=20=EA=B2=BD=EB=A1=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/static/index.html | 3 +-- src/main/resources/templates/layout/navigation.html | 2 +- src/main/resources/templates/qna/form.html | 10 +++++----- src/main/resources/templates/qna/show.html | 4 ++-- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html index 377e856..e9570a3 100755 --- a/src/main/resources/static/index.html +++ b/src/main/resources/static/index.html @@ -119,7 +119,6 @@ -
@@ -134,7 +133,7 @@
diff --git a/src/main/resources/templates/layout/navigation.html b/src/main/resources/templates/layout/navigation.html index a0d5b60..341671f 100644 --- a/src/main/resources/templates/layout/navigation.html +++ b/src/main/resources/templates/layout/navigation.html @@ -1,7 +1,7 @@