From 47c01daeb27436e90121b7438c1b28e09fc2ebbc Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 15 Sep 2016 17:41:41 +0200 Subject: UnitTest: Cleanup Improve naming and introduce googletest.h. Change-Id: I445c13db4c23d6dd5682ce0db3b83055cc6b8a89 Reviewed-by: Tim Jenssen --- tests/unit/unittest/sqlitedatabase-test.cpp | 104 ++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 tests/unit/unittest/sqlitedatabase-test.cpp (limited to 'tests/unit/unittest/sqlitedatabase-test.cpp') diff --git a/tests/unit/unittest/sqlitedatabase-test.cpp b/tests/unit/unittest/sqlitedatabase-test.cpp new file mode 100644 index 0000000000..1e417aefb6 --- /dev/null +++ b/tests/unit/unittest/sqlitedatabase-test.cpp @@ -0,0 +1,104 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#include "googletest.h" + +#include "spydummy.h" + +#include +#include +#include + +#include +#include + +namespace { + +class SqliteDatabase : public ::testing::Test +{ +protected: + void SetUp() override; + void TearDown() override; + + SpyDummy spyDummy; + QString databaseFilePath = QStringLiteral(":memory:"); + ::SqliteDatabase database; +}; + +TEST_F(SqliteDatabase, SetDatabaseFilePath) +{ + ASSERT_THAT(database.databaseFilePath(), databaseFilePath); +} + +TEST_F(SqliteDatabase, SetJournalMode) +{ + database.setJournalMode(JournalMode::Memory); + + ASSERT_THAT(database.journalMode(), JournalMode::Memory); +} + +TEST_F(SqliteDatabase, OpenDatabase) +{ + database.close(); + QSignalSpy signalSpy(&spyDummy, &SpyDummy::databaseIsOpened); + database.open(); + + ASSERT_TRUE(signalSpy.wait(100000)); + ASSERT_TRUE(database.isOpen()); +} + +TEST_F(SqliteDatabase, CloseDatabase) +{ + QSignalSpy signalSpy(&spyDummy, &SpyDummy::databaseIsClosed); + + database.close(); + + ASSERT_TRUE(signalSpy.wait(100000)); + ASSERT_FALSE(database.isOpen()); +} + +TEST_F(SqliteDatabase, AddTable) +{ + SqliteTable *sqliteTable = new SqliteTable; + + database.addTable(sqliteTable); + + ASSERT_THAT(database.tables().first(), sqliteTable); +} + +void SqliteDatabase::SetUp() +{ + QObject::connect(&database, &::SqliteDatabase::databaseIsOpened, &spyDummy, &SpyDummy::databaseIsOpened); + QObject::connect(&database, &::SqliteDatabase::databaseIsClosed, &spyDummy, &SpyDummy::databaseIsClosed); + + database.setJournalMode(JournalMode::Memory); + database.setDatabaseFilePath(databaseFilePath); +} + +void SqliteDatabase::TearDown() +{ + database.close(); +} +} -- cgit v1.2.1