From 1d69c2331c8ad621d05d33266399fb619704f504 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EB=B0=B1=ED=96=89?= Date: Fri, 20 Sep 2024 21:32:59 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[=EA=B2=8C=EC=8B=9C=ED=8C=90=EC=83=9D?= =?UTF-8?q?=EC=84=B1=EA=B4=80=EB=A6=AC][BBSAttributeManageDAO.insertBBSMas?= =?UTF-8?q?terInf]=20DAO=20=EB=8B=A8=EC=9C=84=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...teManageDAOTestInsertBBSMasterInfTest.java | 67 ++++++++++++++ ...ServiceImplTestInsertBBSMastetInfTest.java | 63 +++++++++++++ ...iControllerTestInsertBBSMasterInfTest.java | 88 +++++++++++++++++++ 3 files changed, 218 insertions(+) create mode 100644 src/test/java/egovframework/let/cop/bbs/service/impl/BBSAttributeManageDAOTestInsertBBSMasterInfTest.java create mode 100644 src/test/java/egovframework/let/cop/bbs/service/impl/EgovBBSUseInfoManageServiceImplTestInsertBBSMastetInfTest.java create mode 100644 src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.java diff --git a/src/test/java/egovframework/let/cop/bbs/service/impl/BBSAttributeManageDAOTestInsertBBSMasterInfTest.java b/src/test/java/egovframework/let/cop/bbs/service/impl/BBSAttributeManageDAOTestInsertBBSMasterInfTest.java new file mode 100644 index 0000000..bd87763 --- /dev/null +++ b/src/test/java/egovframework/let/cop/bbs/service/impl/BBSAttributeManageDAOTestInsertBBSMasterInfTest.java @@ -0,0 +1,67 @@ +package egovframework.let.cop.bbs.service.impl; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import org.egovframe.rte.fdl.idgnr.EgovIdGnrService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import egovframework.let.cop.bbs.service.BoardMaster; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +/** + * [게시판생성관리][BBSAttributeManageDAO.insertBBSMasterInf] DAO 단위 테스트 + * + * @author 이백행 + * @since 2024-09-20 + * + */ +@SpringBootTest +@RequiredArgsConstructor +@Slf4j +class BBSAttributeManageDAOTestInsertBBSMasterInfTest { + + /** + * 게시판 속성정보 관리를 위한 데이터 접근 클래스 + */ + @Autowired + private BBSAttributeManageDAO bbsAttributeManageDAO; + + /** + * + */ + @Autowired + private EgovIdGnrService egovBBSMstrIdGnrService; + + @Test + void test() throws Exception { + // given + final BoardMaster boardMaster = new BoardMaster(); + + boardMaster.setBbsId(egovBBSMstrIdGnrService.getNextStringId()); + + final String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSSSSSSS")); + + boardMaster.setBbsNm("test 이백행 게시판명 " + now); + + boardMaster.setPosblAtchFileSize("0"); + + final int expected = 1; + + // when + final int result = bbsAttributeManageDAO.insertBBSMasterInf(boardMaster); + + // then + if (log.isDebugEnabled()) { + log.debug("result={}, {}", expected, result); + } + + assertEquals(expected, result, "신규 게시판 속성정보를 등록한다."); + } + +} diff --git a/src/test/java/egovframework/let/cop/bbs/service/impl/EgovBBSUseInfoManageServiceImplTestInsertBBSMastetInfTest.java b/src/test/java/egovframework/let/cop/bbs/service/impl/EgovBBSUseInfoManageServiceImplTestInsertBBSMastetInfTest.java new file mode 100644 index 0000000..ad2b132 --- /dev/null +++ b/src/test/java/egovframework/let/cop/bbs/service/impl/EgovBBSUseInfoManageServiceImplTestInsertBBSMastetInfTest.java @@ -0,0 +1,63 @@ +package egovframework.let.cop.bbs.service.impl; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import egovframework.let.cop.bbs.service.BoardMaster; +import egovframework.let.cop.bbs.service.BoardMasterVO; +import egovframework.let.cop.bbs.service.EgovBBSAttributeManageService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +/** + * [게시판생성관리][EgovBBSUseInfoManageServiceImpl.insertBBSMastetInf] ServiceImpl 단위 + * 테스트 + * + * @author 이백행 + * @since 2024-09-20 + * + */ +@SpringBootTest +@RequiredArgsConstructor +@Slf4j +class EgovBBSUseInfoManageServiceImplTestInsertBBSMastetInfTest { + + /** + * 게시판 속성정보 관리를 위한 데이터 접근 클래스 + */ + @Autowired + private EgovBBSAttributeManageService egovBBSAttributeManageService; + + @Test + void test() throws Exception { + // given + final BoardMaster boardMaster = new BoardMaster(); + + final String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSSSSSSS")); + + boardMaster.setBbsNm("test 이백행 게시판명 " + now); + + boardMaster.setPosblAtchFileSize("0"); + + // when + final String result = egovBBSAttributeManageService.insertBBSMastetInf(boardMaster); + + // then + final BoardMasterVO resultBoardMasterVO = egovBBSAttributeManageService.selectBBSMasterInf(boardMaster); + + if (log.isDebugEnabled()) { + log.debug("result={}", result); + log.debug("resultBoardMasterVO={}", resultBoardMasterVO); + log.debug("getBbsId={}", resultBoardMasterVO.getBbsId()); + } + + assertEquals(result, resultBoardMasterVO.getBbsId(), "신규 게시판 속성정보를 생성한다."); + } + +} diff --git a/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.java b/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.java new file mode 100644 index 0000000..df74670 --- /dev/null +++ b/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.java @@ -0,0 +1,88 @@ +package egovframework.let.cop.bbs.web; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.web.servlet.MockMvc; + +import egovframework.let.cop.bbs.service.BoardMaster; +import egovframework.let.cop.bbs.service.EgovBBSAttributeManageService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +/** + * [게시판생성관리][EgovBBSAttributeManageApiController.insertBBSMasterInf] Controller + * 단위 테스트 + * + * @author 이백행 + * @since 2024-09-20 + * + */ +@SpringBootTest +@AutoConfigureMockMvc(addFilters = false) +@RequiredArgsConstructor +@Slf4j +class EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest { + + /** + * + */ + @Autowired + private MockMvc mockMvc; + + /** + * 게시판 속성정보 관리를 위한 데이터 접근 클래스 + */ + @Autowired + private EgovBBSAttributeManageService egovBBSAttributeManageService; + + @Test + void test() throws Exception { + // testData + final BoardMaster boardMaster = new BoardMaster(); + + final String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSSSSSSS")); + + boardMaster.setBbsNm("test 이백행 게시판명 " + now); + + boardMaster.setPosblAtchFileSize("0"); + + final String bbsId = egovBBSAttributeManageService.insertBBSMastetInf(boardMaster); + + // given + + // when + mockMvc.perform( + + get("/bbsMaster") + + .param("searchCnd", "0") + + .param("searchWrd", boardMaster.getBbsNm()) + + ) + + .andDo(print()) + + .andExpect(status().isOk()) + + ; + + // then + if (log.isDebugEnabled()) { + log.debug("bbsId={}", bbsId); + } + + assertEquals("", "", "게시판 마스터 목록을 조회한다."); + } + +} From e072685453b94778ca8cef73e1bde540cbc7f36e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EB=B0=B1=ED=96=89?= Date: Fri, 20 Sep 2024 21:53:55 +0900 Subject: [PATCH 2/3] =?UTF-8?q?andExpect=20jsonPath=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...iControllerTestInsertBBSMasterInfTest.java | 31 ++++++++- ...iControllerTestInsertBBSMasterInfTest.json | 65 +++++++++++++++++++ 2 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.json diff --git a/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.java b/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.java index df74670..2a119a3 100644 --- a/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.java +++ b/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.java @@ -1,8 +1,10 @@ package egovframework.let.cop.bbs.web; +import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import java.time.LocalDateTime; @@ -56,7 +58,7 @@ class EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest { boardMaster.setPosblAtchFileSize("0"); - final String bbsId = egovBBSAttributeManageService.insertBBSMastetInf(boardMaster); + final String resultBbsId = egovBBSAttributeManageService.insertBBSMastetInf(boardMaster); // given @@ -75,11 +77,36 @@ class EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest { .andExpect(status().isOk()) + // resultCode + .andExpect(jsonPath("$.resultCode").value(200)) + + .andExpect(jsonPath("$.resultCode").value(equalTo(200))) + + // resultMessage + .andExpect(jsonPath("$.resultMessage").value("성공했습니다.")) + + .andExpect(jsonPath("$.resultMessage").value(equalTo("성공했습니다."))) + + // resultCnt + .andExpect(jsonPath("$.result.resultCnt").value("1")) + + .andExpect(jsonPath("$.result.resultCnt").value(equalTo("1"))) + + // bbsNm + .andExpect(jsonPath("$.result.resultList[0].bbsNm").value(boardMaster.getBbsNm())) + + .andExpect(jsonPath("$.result.resultList[0].bbsNm").value(equalTo(boardMaster.getBbsNm()))) + + // bbsId + .andExpect(jsonPath("$.result.resultList[0].bbsId").value(resultBbsId)) + + .andExpect(jsonPath("$.result.resultList[0].bbsId").value(equalTo(resultBbsId))) + ; // then if (log.isDebugEnabled()) { - log.debug("bbsId={}", bbsId); + log.debug("resultBbsId={}", resultBbsId); } assertEquals("", "", "게시판 마스터 목록을 조회한다."); diff --git a/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.json b/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.json new file mode 100644 index 0000000..7fb329c --- /dev/null +++ b/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.json @@ -0,0 +1,65 @@ +{ + "resultCode": 200, + "resultMessage": "성공했습니다.", + "result": { + "resultCnt": "1", + "paginationInfo": { + "currentPageNo": 1, + "recordCountPerPage": 10, + "pageSize": 10, + "totalRecordCount": 1, + "totalPageCount": 1, + "firstPageNoOnPageList": 1, + "lastPageNoOnPageList": 1, + "firstRecordIndex": 0, + "lastRecordIndex": 10, + "firstPageNo": 1, + "lastPageNo": 1 + }, + "resultList": [ + { + "bbsAttrbCode": " ", + "bbsId": "BBSMSTR_000000000001", + "bbsIntrcn": "", + "bbsNm": "test 이백행 게시판명 2024-09-20T21:31:36.026000000", + "bbsTyCode": " ", + "fileAtchPosblAt": "", + "frstRegisterId": "", + "frstRegisterPnttm": "2024-09-20", + "lastUpdusrId": "", + "lastUpdusrPnttm": "", + "posblAtchFileNumber": 0, + "posblAtchFileSize": "", + "replyPosblAt": "", + "tmplatId": " ", + "useAt": " ", + "bbsUseFlag": "", + "trgetId": "", + "registSeCode": "", + "uniqId": "", + "tmplatNm": "", + "option": "", + "commentAt": "", + "stsfdgAt": "", + "searchBgnDe": "", + "searchCnd": "", + "searchEndDe": "", + "searchWrd": "", + "sortOrdr": "", + "searchUseYn": "", + "pageIndex": 1, + "pageUnit": 10, + "pageSize": 10, + "firstIndex": 1, + "lastIndex": 1, + "recordCountPerPage": 10, + "rowNo": 0, + "frstRegisterNm": "", + "bbsTyCodeNm": "", + "bbsAttrbCodeNm": "", + "lastUpdusrNm": "", + "authFlag": "" + } + ] + } +} \ No newline at end of file From 850e298a7778ffbd558cd1d367fca68300b79d17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EB=B0=B1=ED=96=89?= Date: Fri, 20 Sep 2024 23:37:46 +0900 Subject: [PATCH 3/3] =?UTF-8?q?JWT=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...iControllerTestInsertBBSMasterInfTest.java | 57 ++++++++++++++++++- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.java b/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.java index 2a119a3..f36ae1d 100644 --- a/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.java +++ b/src/test/java/egovframework/let/cop/bbs/web/EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest.java @@ -14,11 +14,17 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.client.TestRestTemplate; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import egovframework.let.cop.bbs.service.BoardMaster; import egovframework.let.cop.bbs.service.EgovBBSAttributeManageService; +import lombok.Getter; import lombok.RequiredArgsConstructor; +import lombok.Setter; import lombok.extern.slf4j.Slf4j; /** @@ -29,8 +35,10 @@ import lombok.extern.slf4j.Slf4j; * @since 2024-09-20 * */ -@SpringBootTest -@AutoConfigureMockMvc(addFilters = false) +//@SpringBootTest +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@AutoConfigureMockMvc +//@AutoConfigureMockMvc(addFilters = false) @RequiredArgsConstructor @Slf4j class EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest { @@ -41,6 +49,12 @@ class EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest { @Autowired private MockMvc mockMvc; + /** + * + */ + @Autowired + private TestRestTemplate restTemplate; + /** * 게시판 속성정보 관리를 위한 데이터 접근 클래스 */ @@ -62,6 +76,8 @@ class EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest { // given + JwtResponse jwtResponse = getJwtResponse(); + // when mockMvc.perform( @@ -71,6 +87,8 @@ class EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest { .param("searchWrd", boardMaster.getBbsNm()) + .header("Authorization", jwtResponse.getJToken()) + ) .andDo(print()) @@ -112,4 +130,39 @@ class EgovBBSAttributeManageApiControllerTestInsertBBSMasterInfTest { assertEquals("", "", "게시판 마스터 목록을 조회한다."); } + @Getter + @Setter + static class JwtRequest { + private String userSe; + private String id; + private String password; + } + + @Getter + @Setter + static class JwtResponse { + private int resultCode; + private String jToken; + } + + private JwtResponse getJwtResponse() { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + final JwtRequest jwtRequest = new JwtRequest(); + jwtRequest.setUserSe("USR"); + jwtRequest.setId("admin"); + jwtRequest.setPassword("1"); + HttpEntity request = new HttpEntity<>(jwtRequest, headers); +// final JwtResponse jwtResponse = restTemplate.postForObject("/auth/login-jwt", request, JwtResponse.class); + final String content = restTemplate.postForObject("/auth/login-jwt", request, String.class); + final String content2 = content.substring(content.indexOf("\"jToken\":\"") + 10); + final String content3 = content2.substring(0, content2.indexOf("\"")); +// final ObjectMapper mapper = new ObjectMapper(); +// mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); +// final JwtResponse jwtResponse = mapper.readValue(content, JwtResponse.class); + final JwtResponse jwtResponse = new JwtResponse(); + jwtResponse.setJToken(content3); + return jwtResponse; + } + }