From 6f3aea3b9297d6e1e0a6e44c8e5c9e16e3d3f551 Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Tue, 13 Sep 2022 16:15:46 +0900 Subject: [PATCH] =?UTF-8?q?Issue=20#3=20test:=20notion=20=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EB=B8=94=20=EA=B0=80=EC=A0=B8=EC=98=A4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gdscpknu/notion/NotionApiTest.java | 66 +++++++++++++++++++ .../gdscpknu/gdscpknu/notion/NotionTable.java | 34 ++++++++++ 2 files changed, 100 insertions(+) create mode 100644 src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java create mode 100644 src/test/java/com/gdscpknu/gdscpknu/notion/NotionTable.java diff --git a/src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java b/src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java new file mode 100644 index 0000000..78d48b9 --- /dev/null +++ b/src/test/java/com/gdscpknu/gdscpknu/notion/NotionApiTest.java @@ -0,0 +1,66 @@ +package com.gdscpknu.gdscpknu.notion; + +import org.jraf.klibnotion.client.blocking.BlockingNotionClient; +import org.jraf.klibnotion.model.database.Database; +import org.jraf.klibnotion.model.database.query.DatabaseQuery; +import org.jraf.klibnotion.model.database.query.filter.DatabaseQueryPredicate; +import org.jraf.klibnotion.model.database.query.filter.DatabaseQueryPropertyFilter; +import org.jraf.klibnotion.model.page.Page; +import org.jraf.klibnotion.model.pagination.Pagination; +import org.jraf.klibnotion.model.pagination.ResultPage; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.*; + +public class NotionApiTest { + + private final NotionTable notionTable = new NotionTable(); + private final BlockingNotionClient client = notionTable.initClient(); + + @Test + public void getTable() { + //given + + //when + Database database = client.getDatabases().getDatabase(notionTable.getDATABASE_ID()); + ResultPage simpleQueryResultPage = client.getDatabases().queryDatabase( + notionTable.getDATABASE_ID(), + null, + null, + new Pagination() + ); + + //then + assertThat(database.getTitle().getPlainText()).isEqualTo(notionTable.getTableName()); + assertThat(simpleQueryResultPage.results.size()).isEqualTo(notionTable.getMemberNum()); + } + + @Test + public void getRowByEmail() { + //given + String name = "가나다"; + String role = "Core"; + String email = "ganada@pukyong.ac.kr"; + + //when + ResultPage simpleQueryResultPage = client.getDatabases().queryDatabase( + notionTable.getDATABASE_ID(), + new DatabaseQuery() + .any( + new DatabaseQueryPropertyFilter.Text( + "이메일", + new DatabaseQueryPredicate.Text.Equals(email) + ) + ), + null, + new Pagination() + ); + + //then + assertThat(simpleQueryResultPage.results.size()).isEqualTo(1); + assertThat(simpleQueryResultPage.results.get(0).getPropertyValues().toString().contains(email)).isEqualTo(true); + assertThat(simpleQueryResultPage.results.get(0).getPropertyValues().toString().contains(role)).isEqualTo(true); + assertThat(simpleQueryResultPage.results.get(0).getPropertyValues().toString().contains(name)).isEqualTo(true); + } + +} diff --git a/src/test/java/com/gdscpknu/gdscpknu/notion/NotionTable.java b/src/test/java/com/gdscpknu/gdscpknu/notion/NotionTable.java new file mode 100644 index 0000000..626ffc4 --- /dev/null +++ b/src/test/java/com/gdscpknu/gdscpknu/notion/NotionTable.java @@ -0,0 +1,34 @@ +package com.gdscpknu.gdscpknu.notion; + +import org.jraf.klibnotion.client.*; +import org.jraf.klibnotion.client.blocking.BlockingNotionClient; +import org.jraf.klibnotion.client.blocking.BlockingNotionClientUtils; + +public class NotionTable { + + private final String TOKEN = "secret_hN9gav0QDqQMB2neSKszfY6jFHyPxpxYNuiMPNU4HKg"; + private final String DATABASE_ID = "1fea9e9c35984f4ba1cd9c114efc7608"; + private final String tableName = "MEMBER PROFILE"; + private final int memberNum = 3; + + public BlockingNotionClient initClient() { + NotionClient notionClient = NotionClient.newInstance( + new ClientConfiguration( + new Authentication(TOKEN) + ) + ); + return BlockingNotionClientUtils.asBlockingNotionClient(notionClient); + } + + public String getDATABASE_ID() { + return DATABASE_ID; + } + + public String getTableName() { + return tableName; + } + + public int getMemberNum() { + return memberNum; + } +}