From e9686b6ab684785d5f9acbc98942beae94817562 Mon Sep 17 00:00:00 2001 From: MetroWind Date: Sun, 21 Sep 2025 21:34:34 -0700 Subject: Implement dir handler. Unit test WIP. --- src/data_test.cpp | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) (limited to 'src/data_test.cpp') diff --git a/src/data_test.cpp b/src/data_test.cpp index 633a102..309d44f 100644 --- a/src/data_test.cpp +++ b/src/data_test.cpp @@ -10,10 +10,48 @@ using ::testing::IsEmpty; +TEST(DataSource, CanGetUser) +{ + ASSIGN_OR_FAIL(std::unique_ptr data, + DataSourceSQLite::newFromMemory()); + User u; + u.openid_uid = "aaa"; + u.name = "bbb"; + EXPECT_TRUE(data->addUser(std::move(u)).has_value()); + ASSIGN_OR_FAIL(auto user_maybe, data->userByOpenIDUID("aaa")); + EXPECT_TRUE(user_maybe.has_value()); + EXPECT_EQ(user_maybe->name, "bbb"); + + ASSIGN_OR_FAIL(user_maybe, data->userByOpenIDUID("bbb")); + EXPECT_FALSE(user_maybe.has_value()); +} + +TEST(DataSource, WontAddDuplicateUser) +{ + ASSIGN_OR_FAIL(std::unique_ptr data, + DataSourceSQLite::newFromMemory()); + User u0; + u0.openid_uid = "aaa"; + u0.name = "bbb"; + User u1; + u1.openid_uid = "aaa"; + u1.name = "ccc"; + User u2; + u2.openid_uid = "ddd"; + u2.name = "bbb"; + EXPECT_TRUE(data->addUser(std::move(u0)).has_value()); + EXPECT_FALSE(data->addUser(std::move(u1)).has_value()); + EXPECT_FALSE(data->addUser(std::move(u2)).has_value()); +} + TEST(DataSource, CanAddLink) { ASSIGN_OR_FAIL(std::unique_ptr data, DataSourceSQLite::newFromMemory()); + User u; + u.openid_uid = "aaa"; + u.name = "bbb"; + EXPECT_TRUE(data->addUser(std::move(u)).has_value()); LinkItem l0; l0.owner_id = 1; l0.parent_id = std::nullopt; @@ -34,8 +72,10 @@ TEST(DataSource, CanAddLink) EXPECT_EQ(l0id, 1); ASSIGN_OR_FAIL(int64_t l1id, data->addLink(std::move(l1))); EXPECT_EQ(l1id, 2); - ASSIGN_OR_FAIL(auto ls, data->items(1)); + ASSIGN_OR_FAIL(auto ls, data->itemsTopLevelByUser(1)); + ASSERT_EQ(ls.size(), 1); + EXPECT_EQ(ls[0].name, "aaa"); + ASSIGN_OR_FAIL(ls, data->itemsByParent(1)); ASSERT_EQ(ls.size(), 1); - EXPECT_EQ(ls[0].parent_id, 1); - EXPECT_EQ(ls[0].visibility, LinkItem::PRIVATE); + EXPECT_EQ(ls[0].name, "ddd"); } -- cgit v1.2.3-70-g09d2