diff --git a/src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java b/src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java index fc6a431..88c3b9f 100644 --- a/src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java +++ b/src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java @@ -72,7 +72,6 @@ public void getRowByEmail() { @Test void getPlainTexts(){ - //given String name = "가나다"; String role = "Core"; @@ -87,22 +86,32 @@ void getPlainTexts(){ //when /** - * KlibNotion 라이브러리에서 개별 plainText를 받아올 수 없어 정규식으로 추출하였음 + * KlibNotion 라이브러리에서 name, email, role 값을 정규식으로 추출하였음 */ 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()); + Pattern namePattern = Pattern.compile("(?<=\\(plainText=)(.*?)(?=,)"); + Pattern emailPattern = Pattern.compile("(?<=\\bname=이메일, value=)(.*?)(?=\\))"); + Pattern rolePattern = Pattern.compile("(?<=\\bname=역할, value=SelectOptionImpl\\(name=)(.*?)(?=,)"); + Matcher nameMatcher = namePattern.matcher(resultInString); + Matcher emailMatcher = emailPattern.matcher(resultInString); + Matcher roleMatcher = rolePattern.matcher(resultInString); + while (nameMatcher.find()) { + plainTextList.add(nameMatcher.group()); + } + while (emailMatcher.find()) { + plainTextList.add(emailMatcher.group()); + } + while (roleMatcher.find()) { + plainTextList.add(roleMatcher.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); + assertThat(plainTextList.get(0)).isEqualTo(name); + assertThat(plainTextList.get(3)).isEqualTo(email); + assertThat(plainTextList.get(6)).isEqualTo(role); } } \ No newline at end of file