diff options
author | Marco Bubke <marco.bubke@qt.io> | 2016-09-15 17:41:41 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2016-09-19 15:17:54 +0000 |
commit | 47c01daeb27436e90121b7438c1b28e09fc2ebbc (patch) | |
tree | 9a12c73c979ec94d065d9f5a62b0fc4630362d4c /tests/unit/unittest/sqlitedatabase-test.cpp | |
parent | f717064a914bca312118b1951ea2c87abd2c6a61 (diff) | |
download | qt-creator-47c01daeb27436e90121b7438c1b28e09fc2ebbc.tar.gz |
UnitTest: Cleanup
Improve naming and introduce googletest.h.
Change-Id: I445c13db4c23d6dd5682ce0db3b83055cc6b8a89
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'tests/unit/unittest/sqlitedatabase-test.cpp')
-rw-r--r-- | tests/unit/unittest/sqlitedatabase-test.cpp | 104 |
1 files changed, 104 insertions, 0 deletions
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 <sqlitedatabase.h> +#include <sqlitetable.h> +#include <utf8string.h> + +#include <QSignalSpy> +#include <QVariant> + +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(); +} +} |