Skip to content

Commit

Permalink
Added APISettings tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
Ugnius committed Jun 15, 2018
1 parent 8e4e142 commit 30c80d8
Show file tree
Hide file tree
Showing 2 changed files with 136 additions and 0 deletions.
3 changes: 3 additions & 0 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ include_directories("${PROJECT_SOURCE_DIR}/src")

# Source files.
set(SOURCE_FILES
utils/apisettings_test.cpp
${PROJECT_SOURCE_DIR}/src/utils/apisettings.cpp
${PROJECT_SOURCE_DIR}/src/utils/apisettings.h
utils/customnetworkreply_test.cpp
${PROJECT_SOURCE_DIR}/src/utils/customnetworkreply.cpp
${PROJECT_SOURCE_DIR}/src/utils/customnetworkreply.h
Expand Down
133 changes: 133 additions & 0 deletions tests/utils/apisettings_test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
#include <gtest/gtest.h>
#include <QApplication>
#include <QSettings>
#include <QString>
#include "utils/apisettings.h"

TEST(APISettingsTests, APISettings_checkIfValuesIsNotSet_True) {
APISettings apiSettings;
ASSERT_EQ("", apiSettings.getName());
ASSERT_EQ("", apiSettings.getFullName());
ASSERT_EQ("", apiSettings.getApiKey());
ASSERT_EQ("", apiSettings.getTextType());
ASSERT_EQ("", apiSettings.getDefaultSourceLanguage());
ASSERT_EQ("", apiSettings.getDefaultTargetLanguage());
}

TEST(APISettingsTests, APISettings_checkIfValuesIsSet_True) {
APISettings apiSettings(nullptr, "google", "Google Translate API");
ASSERT_EQ("google", apiSettings.getName());
ASSERT_EQ("Google Translate API", apiSettings.getFullName());
ASSERT_EQ("", apiSettings.getApiKey());
ASSERT_EQ("", apiSettings.getTextType());
ASSERT_EQ("", apiSettings.getDefaultSourceLanguage());
ASSERT_EQ("", apiSettings.getDefaultTargetLanguage());
}

TEST(APISettingsTests, setName_checkIfNameIsSet_True) {
APISettings apiSettings;
apiSettings.setName("google");

ASSERT_EQ("google", apiSettings.getName());
}

TEST(APISettingsTests, setFullName_checkIfFullNameIsSet_True) {
APISettings apiSettings;
apiSettings.setFullName("Google Translate API");

ASSERT_EQ("Google Translate API", apiSettings.getFullName());
}

TEST(APISettingsTests, setApiKey_checkIfApiKeyIsSet_True) {
APISettings apiSettings;
apiSettings.setApiKey("API_KEY");

ASSERT_EQ("API_KEY", apiSettings.getApiKey());
}

TEST(APISettingsTests, setTextType_checkIfTextTypeIsSet_True) {
APISettings apiSettings;
apiSettings.setTextType("text");

ASSERT_EQ("text", apiSettings.getTextType());
}

TEST(APISettingsTests, getDefaultSourceLanguage_checkIfDefaultSourceLanguageIsSet_True) {
APISettings apiSettings;
apiSettings.setDefaultSourceLanguage("lt");

ASSERT_EQ("lt", apiSettings.getDefaultSourceLanguage());
}

TEST(APISettingsTests, getDefaultTargetLanguage_checkIfDefaultTargetLanguageIsSet_True) {
APISettings apiSettings;
apiSettings.setDefaultTargetLanguage("en");

ASSERT_EQ("en", apiSettings.getDefaultTargetLanguage());
}


TEST(APISettingsTests, readSettings_checkIfValuesAreRead_True_True) {
QSettings::setDefaultFormat(QSettings::IniFormat);
QApplication::setOrganizationName("instant_translator");
QApplication::setApplicationName("unit_tests");

QSettings settings;

QString name = "test";
QString fullName = "Test";
QString apiKey = "SOME_API_KEY";
QString textType = "html";
QString defaultSourceLanguage = "lv";
QString defaultTargetLanguage = "et";
settings.setValue(name + "/key", apiKey);
settings.setValue(name + "/text_type", textType);
settings.setValue(name + "/source", defaultSourceLanguage);
settings.setValue(name + "/target", defaultTargetLanguage);

APISettings apiSettings(nullptr, name, fullName);
apiSettings.readSettings();

settings.clear();

ASSERT_EQ(name, apiSettings.getName());
ASSERT_EQ(fullName, apiSettings.getFullName());
ASSERT_EQ("SOME_API_KEY", apiSettings.getApiKey());
ASSERT_EQ(textType, apiSettings.getTextType());
ASSERT_EQ(defaultSourceLanguage, apiSettings.getDefaultSourceLanguage());
ASSERT_EQ(defaultTargetLanguage, apiSettings.getDefaultTargetLanguage());
}

TEST(APISettingsTests, writeSettings_checkIfValuesAreWritten) {
QSettings::setDefaultFormat(QSettings::IniFormat);
QApplication::setOrganizationName("instant_translator");
QApplication::setApplicationName("unit_tests");

QSettings settings;

QString name = "test";
QString fullName = "Test";
QString apiKey = "SOME_API_KEY";
QString textType = "html";
QString defaultSourceLanguage = "lv";
QString defaultTargetLanguage = "et";

APISettings apiSettings(nullptr, name, fullName);
apiSettings.setApiKey(apiKey);
apiSettings.setTextType(textType);
apiSettings.setDefaultSourceLanguage(defaultSourceLanguage);
apiSettings.setDefaultTargetLanguage(defaultTargetLanguage);
apiSettings.writeSettings();

QString actualApiKey = settings.value(name + "/key").toString();
QString actualTextType = settings.value(name + "/text_type").toString();
QString actualDefaultSourceLanguage = settings.value(name + "/source").toString();
QString actualDefaultTargetLanguage = settings.value(name + "/target").toString();

settings.clear();

ASSERT_EQ(apiKey, actualApiKey);
ASSERT_EQ(textType, actualTextType);
ASSERT_EQ(defaultSourceLanguage, actualDefaultSourceLanguage);
ASSERT_EQ(defaultTargetLanguage, actualDefaultTargetLanguage);
}

0 comments on commit 30c80d8

Please sign in to comment.