Skip to content

Commit

Permalink
test: GDSC-PKNU-Official#3 Notion 테이블 plainText 추출
Browse files Browse the repository at this point in the history
  • Loading branch information
coke98 committed Sep 18, 2022
1 parent b379e6e commit e77e480
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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 = "[email protected]";

ResultPage<Page> simpleQueryResultPage = client.getDatabases().queryDatabase(
notionTable.getDATABASE_ID(),
null,
null,
new Pagination()
);

//when
/**
* KlibNotion 라이브러리에서 개별 plainText를 받아올 수 없어 정규식으로 추출하였음
*/
String resultInString = simpleQueryResultPage.results.toString();
List<String> 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);
}

}

0 comments on commit e77e480

Please sign in to comment.