From e77e4808b7e1c0dd2c5b6be765d2a9567d65fde4 Mon Sep 17 00:00:00 2001 From: JoHyeonseok Date: Mon, 19 Sep 2022 03:44:39 +0900 Subject: [PATCH] =?UTF-8?q?test:=20#3=20Notion=20=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EB=B8=94=20plainText=20=EC=B6=94=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gdscpknu/notion/NotionApiTest.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java b/src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java index 3bdbda2..fc6a431 100644 --- a/src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java +++ b/src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java @@ -10,6 +10,11 @@ import org.jraf.klibnotion.model.pagination.ResultPage; import org.junit.jupiter.api.Test; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + import static org.assertj.core.api.Assertions.*; public class NotionApiTest { @@ -65,4 +70,39 @@ public void getRowByEmail() { assertThat(simpleQueryResultPage.results.get(0).getPropertyValues().toString().contains(name)).isEqualTo(true); } + @Test + void getPlainTexts(){ + + //given + String name = "가나다"; + String role = "Core"; + String email = "ganada@pukyong.ac.kr"; + + ResultPage simpleQueryResultPage = client.getDatabases().queryDatabase( + notionTable.getDATABASE_ID(), + null, + null, + new Pagination() + ); + + //when + /** + * KlibNotion 라이브러리에서 개별 plainText를 받아올 수 없어 정규식으로 추출하였음 + */ + String resultInString = simpleQueryResultPage.results.toString(); + List plainTextList = new ArrayList<>(); + // 문자열 중 "(plainText=" ~ "," 범위(이름, 이메일) OR " "name=" ~ "," 범위(역할) 문자열을 추출 + Pattern pattern = Pattern.compile("(?<=\\(plainText=)(.*?)(?=,)|(?<=\\(name=)(.*?)(?=,)"); + Matcher matcher = pattern.matcher(resultInString); + while (matcher.find()) { + plainTextList.add(matcher.group()); + } + + //then + assertThat(plainTextList.size()).isEqualTo(notionTable.getMemberNum() * 3); + assertThat(plainTextList.get(0)).isEqualTo(email); + assertThat(plainTextList.get(1)).isEqualTo(role); + assertThat(plainTextList.get(2)).isEqualTo(name); + } + } \ No newline at end of file