/* * libfud * Copyright 2024 Dominick Allen * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "fud_sqlite.hpp" #include "fud_string.hpp" #include "gtest/gtest.h" #include #include namespace fud { TEST(FudSqlite, Basic) { auto testNameResult = String::makeFromCString("./test.db.sqlite"); ASSERT_TRUE(testNameResult.isOkay()); auto testName{std::move(testNameResult).takeOkay()}; auto result = unlink(testName.c_str()); if (result != 0) { ASSERT_EQ(errno, ENOENT); } auto sqliteDbResult{SqliteDb::make(testName, SqliteOpenMode::ReadOnly)}; ASSERT_FALSE(sqliteDbResult.isOkay()); sqliteDbResult = SqliteDb::make(testName, SqliteOpenMode::ReadWrite); ASSERT_FALSE(sqliteDbResult.isOkay()); sqliteDbResult = SqliteDb::make(testName, SqliteOpenMode::ReadWriteCreate); ASSERT_TRUE(sqliteDbResult.isOkay()); auto sqliteDb{std::move(sqliteDbResult).takeOkay()}; ASSERT_TRUE(sqliteDb.valid()); ASSERT_EQ(sqliteDb.errorCode(), SQLITE_OK); } } // namespace fud