From 412cf51c3f17dae312465e044ec0564a9e6918af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A7=88=ED=98=84=EC=9A=B0?= Date: Mon, 15 Apr 2024 00:12:02 +0900 Subject: [PATCH 01/15] =?UTF-8?q?fix(test):=20application.yml=20jwt=20?= =?UTF-8?q?=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/resources/application.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index cf5d125..0fc6f6b 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -35,13 +35,12 @@ decorator: p6spy: enable-logging: true -auth: - jwt: - header: Authorization - secret: whfioydwfgiyodsgfionuasnfiuodsoiweqngfbkcjbwbdgfxhghfxjyuafgxasdfxyuyxfgqweiyrxftyqoifxyqiqwoixfniwoeqxfeiwunfxgiweuhfwqihwkefxhiwhfiuxnewhnfouxw - accessExp: 1800 - refreshExp: 2592000 - prefix: Bearer +jwt: + header: Authorization + secret: whfioydwfgiyodsgfionuasnfiuodsoiweqngfbkcjbwbdgfxhghfxjyuafgxasdfxyuyxfgqweiyrxftyqoifxyqiqwoixfniwoeqxfeiwunfxgiweuhfwqihwkefxhiwhfiuxnewhnfouxw + accessExp: 1800 + refreshExp: 2592000 + prefix: Bearer bsm: client-id: ${BSM_CLIENT_ID} From c4db65e9fcb141537bcef515ce8fe64c8d77605b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A7=88=ED=98=84=EC=9A=B0?= Date: Mon, 15 Apr 2024 00:12:25 +0900 Subject: [PATCH 02/15] =?UTF-8?q?feat(test):=20TransactionalCommandDocsSer?= =?UTF-8?q?viceTest=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TransactionalCommandDocsServiceTest.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/test/java/com/project/bumawiki/domain/docs/service/TransactionalCommandDocsServiceTest.java diff --git a/src/test/java/com/project/bumawiki/domain/docs/service/TransactionalCommandDocsServiceTest.java b/src/test/java/com/project/bumawiki/domain/docs/service/TransactionalCommandDocsServiceTest.java new file mode 100644 index 0000000..b677c6f --- /dev/null +++ b/src/test/java/com/project/bumawiki/domain/docs/service/TransactionalCommandDocsServiceTest.java @@ -0,0 +1,51 @@ +package com.project.bumawiki.domain.docs.service; + +import static org.assertj.core.api.AssertionsForClassTypes.*; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.transaction.annotation.Transactional; + +import com.project.bumawiki.domain.docs.domain.Docs; +import com.project.bumawiki.domain.docs.domain.type.DocsType; +import com.project.bumawiki.domain.docs.implementation.DocsReader; +import com.project.bumawiki.domain.user.domain.User; +import com.project.bumawiki.domain.user.domain.authority.Authority; +import com.project.bumawiki.domain.user.domain.repository.UserRepository; + +@Transactional +@SpringBootTest +class TransactionalCommandDocsServiceTest { + + @Autowired + private CommandDocsService commandDocsService; + + @Autowired + private DocsReader docsReader; + + @Autowired + private UserRepository userRepository; + + @Test + void create() { + // given + Docs docs = new Docs("부마코인 1000만원 달성", 2024, DocsType.ACCIDENT); + User user = User.builder() + .email("2022038@bssm.hs.kr") + .name("마현우") + .enroll(2022) + .nickName("마현우") + .authority(Authority.USER) + .build(); + String contents = "실시간 부붕이 X됐다 지금 시세 뭐냐 이거"; + + // when + userRepository.save(user); + commandDocsService.create(docs, user, contents); + + // then + Docs findDocs = docsReader.findByTitle(docs.getTitle()); + assertThat(findDocs).isNotNull(); + } +} From 2721dd3dcf42166a5ef004db2e0324c2e5f478d4 Mon Sep 17 00:00:00 2001 From: NameIsUser06 Date: Mon, 15 Apr 2024 00:13:46 +0900 Subject: [PATCH 03/15] =?UTF-8?q?feat(test):=20truncate=20setup=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/com/project/bumawiki/SetUp.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/test/java/com/project/bumawiki/SetUp.java diff --git a/src/test/java/com/project/bumawiki/SetUp.java b/src/test/java/com/project/bumawiki/SetUp.java new file mode 100644 index 0000000..bbbe69d --- /dev/null +++ b/src/test/java/com/project/bumawiki/SetUp.java @@ -0,0 +1,52 @@ +package com.project.bumawiki; + +import com.project.bumawiki.domain.docs.domain.Docs; + +import com.project.bumawiki.domain.docs.domain.type.DocsType; + +import com.project.bumawiki.domain.user.domain.User; + +import com.project.bumawiki.domain.user.domain.authority.Authority; + +import jakarta.persistence.EntityManager; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +@Component +public class SetUp { + @Autowired + private JdbcTemplate jdbcTemplate; + @Autowired + private EntityManager entityManager; + + @Transactional + public void cleanUp() { + jdbcTemplate.execute("SET REFERENTIAL_INTEGRITY FALSE"); + + entityManager.getMetamodel().getEntities().stream().map(entity ->{ + jdbcTemplate.execute("TRUNCATE TABLE "+ entity.getName()); + return null; + }); + + jdbcTemplate.execute("SET REFERENTIAL_INTEGRITY TRUE"); + + setUpTestData(); + } + + private void setUpTestData() { + // Docs docs = new Docs("testTitle", 2024, DocsType.STUDENT); + // entityManager.persist(docs); + + User user = User.builder() + .name("test") + .email("test@bssm.hs.kr") + .enroll(2024) + .authority(Authority.USER) + .nickName("test nickname") + .build(); + entityManager.persist(user); + } +} From dd04e9bb14d2158930f9763807687ccc9d5930dc Mon Sep 17 00:00:00 2001 From: NameIsUser06 Date: Mon, 15 Apr 2024 00:14:05 +0900 Subject: [PATCH 04/15] =?UTF-8?q?feat(test):=20TruncateCommandDocsServiceT?= =?UTF-8?q?est=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TruncateCommandDocsServiceTest.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/test/java/com/project/bumawiki/TruncateCommandDocsServiceTest.java diff --git a/src/test/java/com/project/bumawiki/TruncateCommandDocsServiceTest.java b/src/test/java/com/project/bumawiki/TruncateCommandDocsServiceTest.java new file mode 100644 index 0000000..fe65ddb --- /dev/null +++ b/src/test/java/com/project/bumawiki/TruncateCommandDocsServiceTest.java @@ -0,0 +1,52 @@ +package com.project.bumawiki; + +import com.project.bumawiki.domain.docs.domain.Docs; +import com.project.bumawiki.domain.docs.domain.type.DocsType; +import com.project.bumawiki.domain.docs.implementation.DocsReader; +import com.project.bumawiki.domain.docs.service.CommandDocsService; + +import com.project.bumawiki.domain.user.domain.User; + +import com.project.bumawiki.domain.user.service.UserInfoService; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import static org.assertj.core.api.AssertionsForClassTypes.*; + +@SpringBootTest +class TruncateCommandDocsServiceTest { + @Autowired + private SetUp setUp; + @Autowired + private CommandDocsService commandDocsService; + @Autowired + private DocsReader docsReader; + @Autowired + private UserInfoService userInfoService; + + @BeforeEach + public void setUp() { + setUp.cleanUp(); + } + + @Test + void 문서_생성_테스트() { + // given + Docs docs = new Docs("testTitle", 2024, DocsType.STUDENT); + Docs duplicateDocs = new Docs("testTitle", 2023, DocsType.TEACHER); + User user = userInfoService.findAnotherInfo(1L); + + //when + commandDocsService.create(docs, user, "이건 테스트용 content 입니다"); + + //then + Docs checkDocs = docsReader.findByTitle(docs.getTitle()); + + assertThat(checkDocs).isNotNull(); + + commandDocsService.create(duplicateDocs, user, "이건 테스트용 content 입니다"); // exception + } +} From 1534964045ed5c5860880e812c4e770bb6bad147 Mon Sep 17 00:00:00 2001 From: NameIsUser06 Date: Mon, 15 Apr 2024 00:15:01 +0900 Subject: [PATCH 05/15] =?UTF-8?q?refactor(test):=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docs/service}/TruncateCommandDocsServiceTest.java | 5 +++-- .../java/com/project/bumawiki/{ => global/test}/SetUp.java | 6 +----- 2 files changed, 4 insertions(+), 7 deletions(-) rename src/test/java/com/project/bumawiki/{ => domain/docs/service}/TruncateCommandDocsServiceTest.java (93%) rename src/test/java/com/project/bumawiki/{ => global/test}/SetUp.java (89%) diff --git a/src/test/java/com/project/bumawiki/TruncateCommandDocsServiceTest.java b/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java similarity index 93% rename from src/test/java/com/project/bumawiki/TruncateCommandDocsServiceTest.java rename to src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java index fe65ddb..9e4b7bb 100644 --- a/src/test/java/com/project/bumawiki/TruncateCommandDocsServiceTest.java +++ b/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java @@ -1,14 +1,15 @@ -package com.project.bumawiki; +package com.project.bumawiki.domain.docs.service; import com.project.bumawiki.domain.docs.domain.Docs; import com.project.bumawiki.domain.docs.domain.type.DocsType; import com.project.bumawiki.domain.docs.implementation.DocsReader; -import com.project.bumawiki.domain.docs.service.CommandDocsService; import com.project.bumawiki.domain.user.domain.User; import com.project.bumawiki.domain.user.service.UserInfoService; +import com.project.bumawiki.global.test.SetUp; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/test/java/com/project/bumawiki/SetUp.java b/src/test/java/com/project/bumawiki/global/test/SetUp.java similarity index 89% rename from src/test/java/com/project/bumawiki/SetUp.java rename to src/test/java/com/project/bumawiki/global/test/SetUp.java index bbbe69d..1600611 100644 --- a/src/test/java/com/project/bumawiki/SetUp.java +++ b/src/test/java/com/project/bumawiki/global/test/SetUp.java @@ -1,8 +1,4 @@ -package com.project.bumawiki; - -import com.project.bumawiki.domain.docs.domain.Docs; - -import com.project.bumawiki.domain.docs.domain.type.DocsType; +package com.project.bumawiki.global.test; import com.project.bumawiki.domain.user.domain.User; From 1bb81752bb500b07c2f9e295f16c9471fc3a8338 Mon Sep 17 00:00:00 2001 From: NameIsUser06 Date: Mon, 15 Apr 2024 00:26:24 +0900 Subject: [PATCH 06/15] =?UTF-8?q?refactor(test):=20contents=20given=20?= =?UTF-8?q?=EC=9C=84=EC=B9=98=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/docs/service/TruncateCommandDocsServiceTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java b/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java index 9e4b7bb..3941983 100644 --- a/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java +++ b/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java @@ -39,15 +39,16 @@ public void setUp() { Docs docs = new Docs("testTitle", 2024, DocsType.STUDENT); Docs duplicateDocs = new Docs("testTitle", 2023, DocsType.TEACHER); User user = userInfoService.findAnotherInfo(1L); + String contents = "이건 테스트용 content 입니다"; //when - commandDocsService.create(docs, user, "이건 테스트용 content 입니다"); + commandDocsService.create(docs, user, contents); //then Docs checkDocs = docsReader.findByTitle(docs.getTitle()); assertThat(checkDocs).isNotNull(); - commandDocsService.create(duplicateDocs, user, "이건 테스트용 content 입니다"); // exception + commandDocsService.create(duplicateDocs, user, contents); // exception } } From f8b4850df635baef60f2e006fc6ae90edd167a34 Mon Sep 17 00:00:00 2001 From: NameIsUser06 Date: Mon, 15 Apr 2024 13:16:19 +0900 Subject: [PATCH 07/15] =?UTF-8?q?test(docs):=20truncate=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TransactionalCommandDocsServiceTest.java | 37 ++++++++++------ .../TruncateCommandDocsServiceTest.java | 16 +++++-- .../project/bumawiki/global/test/SetUp.java | 43 ++++++++----------- .../bumawiki/global/test/SetUpTestData.java | 32 ++++++++++++++ src/test/resources/application.yml | 1 + 5 files changed, 88 insertions(+), 41 deletions(-) create mode 100644 src/test/java/com/project/bumawiki/global/test/SetUpTestData.java diff --git a/src/test/java/com/project/bumawiki/domain/docs/service/TransactionalCommandDocsServiceTest.java b/src/test/java/com/project/bumawiki/domain/docs/service/TransactionalCommandDocsServiceTest.java index b677c6f..960f277 100644 --- a/src/test/java/com/project/bumawiki/domain/docs/service/TransactionalCommandDocsServiceTest.java +++ b/src/test/java/com/project/bumawiki/domain/docs/service/TransactionalCommandDocsServiceTest.java @@ -2,6 +2,10 @@ import static org.assertj.core.api.AssertionsForClassTypes.*; +import com.project.bumawiki.domain.user.service.UserInfoService; +import com.project.bumawiki.global.test.SetUpTestData; + +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -11,11 +15,9 @@ import com.project.bumawiki.domain.docs.domain.type.DocsType; import com.project.bumawiki.domain.docs.implementation.DocsReader; import com.project.bumawiki.domain.user.domain.User; -import com.project.bumawiki.domain.user.domain.authority.Authority; -import com.project.bumawiki.domain.user.domain.repository.UserRepository; -@Transactional @SpringBootTest +@Transactional class TransactionalCommandDocsServiceTest { @Autowired @@ -25,27 +27,36 @@ class TransactionalCommandDocsServiceTest { private DocsReader docsReader; @Autowired - private UserRepository userRepository; + private SetUpTestData setUpTestData; + + @Autowired + private UserInfoService userInfoService; + + @BeforeEach + public void setUp() { + setUpTestData.setUpTestData(); + } @Test void create() { // given Docs docs = new Docs("부마코인 1000만원 달성", 2024, DocsType.ACCIDENT); - User user = User.builder() - .email("2022038@bssm.hs.kr") - .name("마현우") - .enroll(2022) - .nickName("마현우") - .authority(Authority.USER) - .build(); - String contents = "실시간 부붕이 X됐다 지금 시세 뭐냐 이거"; + String contents = "ㄷㄷㄷㄷ"; + User user = userInfoService.findAnotherInfo(1L); // when - userRepository.save(user); commandDocsService.create(docs, user, contents); // then Docs findDocs = docsReader.findByTitle(docs.getTitle()); assertThat(findDocs).isNotNull(); } + + @Test + void title_update() { + User user = userInfoService.findAnotherInfo(2L); + Docs docs = docsReader.findById(1L); + // commandDocsService.titleUpdate(docs.getTitle(), "update title"); + // assertThat(docs.getTitle()).isEqualTo("update title"); + } } diff --git a/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java b/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java index 3941983..5f6ca9d 100644 --- a/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java +++ b/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java @@ -30,25 +30,35 @@ class TruncateCommandDocsServiceTest { @BeforeEach public void setUp() { - setUp.cleanUp(); + setUp.beforeEach(); } @Test void 문서_생성_테스트() { // given Docs docs = new Docs("testTitle", 2024, DocsType.STUDENT); - Docs duplicateDocs = new Docs("testTitle", 2023, DocsType.TEACHER); + // Docs duplicateDocs = new Docs("testTitle", 2023, DocsType.TEACHER); User user = userInfoService.findAnotherInfo(1L); String contents = "이건 테스트용 content 입니다"; //when + System.out.println(user.getEmail()); commandDocsService.create(docs, user, contents); //then Docs checkDocs = docsReader.findByTitle(docs.getTitle()); assertThat(checkDocs).isNotNull(); + System.out.println("end"); - commandDocsService.create(duplicateDocs, user, contents); // exception + // commandDocsService.create(duplicateDocs, user, contents); // exception + } + + @Test + void title_update() { + User user = userInfoService.findAnotherInfo(1L); + Docs docs = docsReader.findById(1L); + // commandDocsService.titleUpdate(docs.getTitle(), "update title"); + // assertThat(docs.getTitle()).isEqualTo("update title"); } } diff --git a/src/test/java/com/project/bumawiki/global/test/SetUp.java b/src/test/java/com/project/bumawiki/global/test/SetUp.java index 1600611..1f321bf 100644 --- a/src/test/java/com/project/bumawiki/global/test/SetUp.java +++ b/src/test/java/com/project/bumawiki/global/test/SetUp.java @@ -1,9 +1,5 @@ package com.project.bumawiki.global.test; -import com.project.bumawiki.domain.user.domain.User; - -import com.project.bumawiki.domain.user.domain.authority.Authority; - import jakarta.persistence.EntityManager; import org.springframework.beans.factory.annotation.Autowired; @@ -11,38 +7,35 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + @Component public class SetUp { @Autowired private JdbcTemplate jdbcTemplate; @Autowired private EntityManager entityManager; + @Autowired + private SetUpTestData setUpTestData; @Transactional - public void cleanUp() { - jdbcTemplate.execute("SET REFERENTIAL_INTEGRITY FALSE"); - - entityManager.getMetamodel().getEntities().stream().map(entity ->{ - jdbcTemplate.execute("TRUNCATE TABLE "+ entity.getName()); - return null; - }); + public void beforeEach() { + final List truncateQueries = getTruncateQueries(jdbcTemplate); + truncateTables(jdbcTemplate, truncateQueries); + setUpTestData.setUpTestData(); + } - jdbcTemplate.execute("SET REFERENTIAL_INTEGRITY TRUE"); + private List getTruncateQueries(final JdbcTemplate jdbcTemplate) { + return jdbcTemplate.queryForList("SELECT Concat('TRUNCATE TABLE ', TABLE_NAME, ' RESTART IDENTITY;') AS q FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'PUBLIC'", String.class); + } - setUpTestData(); + private void truncateTables(final JdbcTemplate jdbcTemplate, final List truncateQueries) { + execute(jdbcTemplate, "SET REFERENTIAL_INTEGRITY FALSE"); + truncateQueries.forEach(v -> execute(jdbcTemplate, v)); + execute(jdbcTemplate, "SET REFERENTIAL_INTEGRITY TRUE"); } - private void setUpTestData() { - // Docs docs = new Docs("testTitle", 2024, DocsType.STUDENT); - // entityManager.persist(docs); - - User user = User.builder() - .name("test") - .email("test@bssm.hs.kr") - .enroll(2024) - .authority(Authority.USER) - .nickName("test nickname") - .build(); - entityManager.persist(user); + private void execute(final JdbcTemplate jdbcTemplate, final String query) { + jdbcTemplate.execute(query); } } diff --git a/src/test/java/com/project/bumawiki/global/test/SetUpTestData.java b/src/test/java/com/project/bumawiki/global/test/SetUpTestData.java new file mode 100644 index 0000000..9d35c8b --- /dev/null +++ b/src/test/java/com/project/bumawiki/global/test/SetUpTestData.java @@ -0,0 +1,32 @@ +package com.project.bumawiki.global.test; + +import com.project.bumawiki.domain.user.domain.User; +import com.project.bumawiki.domain.user.domain.authority.Authority; + +import jakarta.persistence.EntityManager; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +@Component +public class SetUpTestData { + + @Autowired + private EntityManager entityManager; + + @Transactional + public void setUpTestData() { + // Docs docs = new Docs("testTitle", 2024, DocsType.STUDENT); + // entityManager.persist(docs); + + User user = User.builder() + .name("test") + .email("test1@bssm.hs.kr") + .enroll(2024) + .authority(Authority.USER) + .nickName("test nickname") + .build(); + entityManager.persist(user); + } +} diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index 0fc6f6b..665b455 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -23,6 +23,7 @@ spring: org: hibernate: SQL: debug + show-sql: true servlet: multipart: From 41c25a19093f3cc66e0ad4e20241aaddb5cac284 Mon Sep 17 00:00:00 2001 From: NameIsUser06 Date: Mon, 15 Apr 2024 21:30:52 +0900 Subject: [PATCH 08/15] =?UTF-8?q?test(test):=20USER=20=EC=98=88=EC=95=BD?= =?UTF-8?q?=EC=96=B4=20=EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94=20=EB=B0=8F=20?= =?UTF-8?q?ddl-auto=20create=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/resources/application.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index 665b455..2ea5b12 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -1,6 +1,6 @@ spring: datasource: - url: jdbc:h2:mem:test + url: jdbc:h2:mem:test;MODE=MYSQL;NON_KEYWORDS=USER driverClassName: org.h2.Driver username: sa password: @@ -14,7 +14,7 @@ spring: jpa: hibernate: - ddl-auto: create-drop + ddl-auto: create database-platform: org.hibernate.dialect.H2Dialect generate-ddl: true From 21ef50d17d9986af87bc38925ceaf425c763efe7 Mon Sep 17 00:00:00 2001 From: NameIsUser06 Date: Mon, 15 Apr 2024 21:31:06 +0900 Subject: [PATCH 09/15] =?UTF-8?q?refactor(test):=20truncate=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/project/bumawiki/global/test/SetUp.java | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/test/java/com/project/bumawiki/global/test/SetUp.java b/src/test/java/com/project/bumawiki/global/test/SetUp.java index 1f321bf..a04bfed 100644 --- a/src/test/java/com/project/bumawiki/global/test/SetUp.java +++ b/src/test/java/com/project/bumawiki/global/test/SetUp.java @@ -1,7 +1,5 @@ package com.project.bumawiki.global.test; -import jakarta.persistence.EntityManager; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; @@ -13,16 +11,13 @@ public class SetUp { @Autowired private JdbcTemplate jdbcTemplate; - @Autowired - private EntityManager entityManager; - @Autowired - private SetUpTestData setUpTestData; @Transactional public void beforeEach() { final List truncateQueries = getTruncateQueries(jdbcTemplate); + execute(jdbcTemplate, "SET REFERENTIAL_INTEGRITY FALSE"); truncateTables(jdbcTemplate, truncateQueries); - setUpTestData.setUpTestData(); + execute(jdbcTemplate, "SET REFERENTIAL_INTEGRITY TRUE"); } private List getTruncateQueries(final JdbcTemplate jdbcTemplate) { @@ -30,9 +25,7 @@ private List getTruncateQueries(final JdbcTemplate jdbcTemplate) { } private void truncateTables(final JdbcTemplate jdbcTemplate, final List truncateQueries) { - execute(jdbcTemplate, "SET REFERENTIAL_INTEGRITY FALSE"); truncateQueries.forEach(v -> execute(jdbcTemplate, v)); - execute(jdbcTemplate, "SET REFERENTIAL_INTEGRITY TRUE"); } private void execute(final JdbcTemplate jdbcTemplate, final String query) { From 15a07908eb20c28eed9c364f7e33542e9627b233 Mon Sep 17 00:00:00 2001 From: NameIsUser06 Date: Mon, 15 Apr 2024 22:56:47 +0900 Subject: [PATCH 10/15] =?UTF-8?q?feat(test):=20ServiceTest=20=EC=BB=A4?= =?UTF-8?q?=EC=8A=A4=ED=85=80=20=EC=96=B4=EB=85=B8=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EC=85=98=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/annotation/ServiceTest.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/test/java/com/project/bumawiki/global/annotation/ServiceTest.java diff --git a/src/test/java/com/project/bumawiki/global/annotation/ServiceTest.java b/src/test/java/com/project/bumawiki/global/annotation/ServiceTest.java new file mode 100644 index 0000000..c862aa3 --- /dev/null +++ b/src/test/java/com/project/bumawiki/global/annotation/ServiceTest.java @@ -0,0 +1,20 @@ +package com.project.bumawiki.global.annotation; + +import org.junit.jupiter.api.DisplayNameGeneration; +import org.junit.jupiter.api.DisplayNameGenerator; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.transaction.annotation.Transactional; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.*; +import static java.lang.annotation.RetentionPolicy.*; + +@Target(TYPE) +@Retention(RUNTIME) +@Transactional +@SpringBootTest +@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class) +public @interface ServiceTest { +} From 50b17cf970fe07f61651b4cd343a83ef164801b0 Mon Sep 17 00:00:00 2001 From: NameIsUser06 Date: Mon, 15 Apr 2024 22:58:56 +0900 Subject: [PATCH 11/15] =?UTF-8?q?refactor(test):=20SetUpTestData=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bumawiki/global/test/SetUpTestData.java | 32 ------------------- 1 file changed, 32 deletions(-) delete mode 100644 src/test/java/com/project/bumawiki/global/test/SetUpTestData.java diff --git a/src/test/java/com/project/bumawiki/global/test/SetUpTestData.java b/src/test/java/com/project/bumawiki/global/test/SetUpTestData.java deleted file mode 100644 index 9d35c8b..0000000 --- a/src/test/java/com/project/bumawiki/global/test/SetUpTestData.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.project.bumawiki.global.test; - -import com.project.bumawiki.domain.user.domain.User; -import com.project.bumawiki.domain.user.domain.authority.Authority; - -import jakarta.persistence.EntityManager; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -@Component -public class SetUpTestData { - - @Autowired - private EntityManager entityManager; - - @Transactional - public void setUpTestData() { - // Docs docs = new Docs("testTitle", 2024, DocsType.STUDENT); - // entityManager.persist(docs); - - User user = User.builder() - .name("test") - .email("test1@bssm.hs.kr") - .enroll(2024) - .authority(Authority.USER) - .nickName("test nickname") - .build(); - entityManager.persist(user); - } -} From ea9b97f88be9a8a07c1b6697c9848c6f6fce65a5 Mon Sep 17 00:00:00 2001 From: NameIsUser06 Date: Tue, 16 Apr 2024 08:52:38 +0900 Subject: [PATCH 12/15] =?UTF-8?q?refactor(test):=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TransactionalCommandDocsServiceTest.java | 62 ------------------ .../TruncateCommandDocsServiceTest.java | 64 ------------------- 2 files changed, 126 deletions(-) delete mode 100644 src/test/java/com/project/bumawiki/domain/docs/service/TransactionalCommandDocsServiceTest.java delete mode 100644 src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java diff --git a/src/test/java/com/project/bumawiki/domain/docs/service/TransactionalCommandDocsServiceTest.java b/src/test/java/com/project/bumawiki/domain/docs/service/TransactionalCommandDocsServiceTest.java deleted file mode 100644 index 960f277..0000000 --- a/src/test/java/com/project/bumawiki/domain/docs/service/TransactionalCommandDocsServiceTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.project.bumawiki.domain.docs.service; - -import static org.assertj.core.api.AssertionsForClassTypes.*; - -import com.project.bumawiki.domain.user.service.UserInfoService; -import com.project.bumawiki.global.test.SetUpTestData; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.transaction.annotation.Transactional; - -import com.project.bumawiki.domain.docs.domain.Docs; -import com.project.bumawiki.domain.docs.domain.type.DocsType; -import com.project.bumawiki.domain.docs.implementation.DocsReader; -import com.project.bumawiki.domain.user.domain.User; - -@SpringBootTest -@Transactional -class TransactionalCommandDocsServiceTest { - - @Autowired - private CommandDocsService commandDocsService; - - @Autowired - private DocsReader docsReader; - - @Autowired - private SetUpTestData setUpTestData; - - @Autowired - private UserInfoService userInfoService; - - @BeforeEach - public void setUp() { - setUpTestData.setUpTestData(); - } - - @Test - void create() { - // given - Docs docs = new Docs("부마코인 1000만원 달성", 2024, DocsType.ACCIDENT); - String contents = "ㄷㄷㄷㄷ"; - User user = userInfoService.findAnotherInfo(1L); - - // when - commandDocsService.create(docs, user, contents); - - // then - Docs findDocs = docsReader.findByTitle(docs.getTitle()); - assertThat(findDocs).isNotNull(); - } - - @Test - void title_update() { - User user = userInfoService.findAnotherInfo(2L); - Docs docs = docsReader.findById(1L); - // commandDocsService.titleUpdate(docs.getTitle(), "update title"); - // assertThat(docs.getTitle()).isEqualTo("update title"); - } -} diff --git a/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java b/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java deleted file mode 100644 index 5f6ca9d..0000000 --- a/src/test/java/com/project/bumawiki/domain/docs/service/TruncateCommandDocsServiceTest.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.project.bumawiki.domain.docs.service; - -import com.project.bumawiki.domain.docs.domain.Docs; -import com.project.bumawiki.domain.docs.domain.type.DocsType; -import com.project.bumawiki.domain.docs.implementation.DocsReader; - -import com.project.bumawiki.domain.user.domain.User; - -import com.project.bumawiki.domain.user.service.UserInfoService; - -import com.project.bumawiki.global.test.SetUp; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import static org.assertj.core.api.AssertionsForClassTypes.*; - -@SpringBootTest -class TruncateCommandDocsServiceTest { - @Autowired - private SetUp setUp; - @Autowired - private CommandDocsService commandDocsService; - @Autowired - private DocsReader docsReader; - @Autowired - private UserInfoService userInfoService; - - @BeforeEach - public void setUp() { - setUp.beforeEach(); - } - - @Test - void 문서_생성_테스트() { - // given - Docs docs = new Docs("testTitle", 2024, DocsType.STUDENT); - // Docs duplicateDocs = new Docs("testTitle", 2023, DocsType.TEACHER); - User user = userInfoService.findAnotherInfo(1L); - String contents = "이건 테스트용 content 입니다"; - - //when - System.out.println(user.getEmail()); - commandDocsService.create(docs, user, contents); - - //then - Docs checkDocs = docsReader.findByTitle(docs.getTitle()); - - assertThat(checkDocs).isNotNull(); - System.out.println("end"); - - // commandDocsService.create(duplicateDocs, user, contents); // exception - } - - @Test - void title_update() { - User user = userInfoService.findAnotherInfo(1L); - Docs docs = docsReader.findById(1L); - // commandDocsService.titleUpdate(docs.getTitle(), "update title"); - // assertThat(docs.getTitle()).isEqualTo("update title"); - } -} From 23d811a774be864c7116524c316266a9785c85f3 Mon Sep 17 00:00:00 2001 From: NameIsUser06 Date: Tue, 16 Apr 2024 08:52:54 +0900 Subject: [PATCH 13/15] =?UTF-8?q?refactor(test):=20yml=20=EC=99=B8?= =?UTF-8?q?=EB=B6=80=20=ED=99=98=EA=B2=BD=EB=B3=80=EC=88=98=20=EC=A3=BC?= =?UTF-8?q?=EC=9E=85=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/resources/application.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index 2ea5b12..a9aa196 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -44,16 +44,16 @@ jwt: prefix: Bearer bsm: - client-id: ${BSM_CLIENT_ID} - secret-key: ${BSM_SECRET_KEY} - redirect-url: ${BSM_REDIRECT_URL} + client-id: test-bsm-client-id + secret-key: test-bsm-client-secret + redirect-url: test-redirect-uri #S3 aws: s3: - bucket: ${S3_BUCKET} - access-key: ${S3_ACCESSKEY} - secret-key: ${S3_SECRET} + bucket: test-bucket + access-key: test-access-key + secret-key: test-secret-key server: port: 8080 \ No newline at end of file From 99266c95230c52c5092cfa2912cea0a008703ad3 Mon Sep 17 00:00:00 2001 From: NameIsUser06 Date: Tue, 16 Apr 2024 08:53:09 +0900 Subject: [PATCH 14/15] =?UTF-8?q?refactor(test):=20SetUp=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=EB=AA=85=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/{test/SetUp.java => truncate/Truncate.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename src/test/java/com/project/bumawiki/global/{test/SetUp.java => truncate/Truncate.java} (94%) diff --git a/src/test/java/com/project/bumawiki/global/test/SetUp.java b/src/test/java/com/project/bumawiki/global/truncate/Truncate.java similarity index 94% rename from src/test/java/com/project/bumawiki/global/test/SetUp.java rename to src/test/java/com/project/bumawiki/global/truncate/Truncate.java index a04bfed..7f978ee 100644 --- a/src/test/java/com/project/bumawiki/global/test/SetUp.java +++ b/src/test/java/com/project/bumawiki/global/truncate/Truncate.java @@ -1,4 +1,4 @@ -package com.project.bumawiki.global.test; +package com.project.bumawiki.global.truncate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; @@ -8,7 +8,7 @@ import java.util.List; @Component -public class SetUp { +public class Truncate { @Autowired private JdbcTemplate jdbcTemplate; From 91d1f14155700ac79c28bfcfdb59946a21b642b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A7=88=ED=98=84=EC=9A=B0?= Date: Tue, 16 Apr 2024 14:12:26 +0900 Subject: [PATCH 15/15] =?UTF-8?q?test(docs):=20=EB=AC=B8=EC=84=9C=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1,=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docs/service/CommandDocsServiceTest.java | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/test/java/com/project/bumawiki/domain/docs/service/CommandDocsServiceTest.java diff --git a/src/test/java/com/project/bumawiki/domain/docs/service/CommandDocsServiceTest.java b/src/test/java/com/project/bumawiki/domain/docs/service/CommandDocsServiceTest.java new file mode 100644 index 0000000..e2618a6 --- /dev/null +++ b/src/test/java/com/project/bumawiki/domain/docs/service/CommandDocsServiceTest.java @@ -0,0 +1,83 @@ +package com.project.bumawiki.domain.docs.service; + +import static org.assertj.core.api.AssertionsForClassTypes.*; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import com.project.bumawiki.domain.docs.domain.Docs; +import com.project.bumawiki.domain.docs.domain.VersionDocs; +import com.project.bumawiki.domain.docs.domain.repository.DocsRepository; +import com.project.bumawiki.domain.docs.domain.repository.VersionDocsRepository; +import com.project.bumawiki.domain.docs.domain.type.DocsType; +import com.project.bumawiki.domain.user.domain.User; +import com.project.bumawiki.domain.user.domain.authority.Authority; +import com.project.bumawiki.domain.user.domain.repository.UserRepository; +import com.project.bumawiki.global.annotation.ServiceTest; + +@ServiceTest +class CommandDocsServiceTest { + + @Autowired + private UserRepository userRepository; + @Autowired + private CommandDocsService commandDocsService; + @Autowired + private DocsRepository docsRepository; + @Autowired + private VersionDocsRepository versionDocsRepository; + + @Test + void 문서_생성하기() { + // given + User user = User.builder() + .email("2022038@bssm.hs.kr") + .name("마현우") + .enroll(2022) + .nickName("마현우") + .authority(Authority.USER) + .build(); + userRepository.save(user); + + String title = "제목"; + String contents = "본문"; + int enroll = 2024; + Docs docs = new Docs(title, enroll, DocsType.ACCIDENT); + + // when + commandDocsService.create(docs, user, contents); + + // then + assertThat(docsRepository.findByTitle(title).get().getTitle()).isEqualTo(title); + assertThat(versionDocsRepository.findFirstByDocsOrderByVersionDesc(docs).getContents()).isEqualTo(contents); + } + + @Test + void 문서_업데이트하기() { + // given + User user = User.builder() + .email("2022038@bssm.hs.kr") + .name("마현우") + .enroll(2022) + .nickName("마현우") + .authority(Authority.USER) + .build(); + userRepository.save(user); + + String title = "제목"; + String contents = "본문"; + String updatedContents = "본문본문"; + int enroll = 2024; + Docs docs = new Docs(title, enroll, DocsType.ACCIDENT); + commandDocsService.create(docs, user, contents); + + // when + commandDocsService.update(user, title, updatedContents, 0); + + // then + VersionDocs versionDocs = versionDocsRepository.findFirstByDocsOrderByVersionDesc(docs); + assertThat(versionDocs.getContents()).isEqualTo(updatedContents); + assertThat(versionDocs.getVersion()).isEqualTo(1); + } +} \ No newline at end of file