Skip to content

Commit a29b1e1

Browse files
committed
Add unit test for connection dialog
1 parent 0e2b3e5 commit a29b1e1

File tree

10 files changed

+63
-14
lines changed

10 files changed

+63
-14
lines changed

src/app/dialogs/connect.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ void ConnectionWindow::loadValuesFromConfig(const RedisClient::ConnectionConfig&
4444
ui.portSpinBox->setValue(config.port());
4545
ui.authEdit->setText(config.auth());
4646
ui.namespaceSeparator->setText(config.param<QString>("namespace_separator"));
47-
ui.connectionTimeout->setValue(config.connectionTimeout());
48-
ui.executionTimeout->setValue(config.executeTimeout());
47+
ui.connectionTimeout->setValue(config.connectionTimeout()/1000);
48+
ui.executionTimeout->setValue(config.executeTimeout()/1000);
4949

5050
if (!config.keysPattern().isEmpty()) {
5151
ui.keysPattern->setText(config.keysPattern());

src/app/dialogs/connect.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class ConnectionWindow : public QDialog
1414
public:
1515
ConnectionWindow(QWeakPointer<ConnectionsManager> manager, QWidget *parent = nullptr);
1616
void setConnectionConfig(const RedisClient::ConnectionConfig& config);
17+
RedisClient::ConnectionConfig getConectionConfigFromFormData();
1718

1819
private:
1920
Ui::connectionDialog ui;
@@ -26,7 +27,7 @@ class ConnectionWindow : public QDialog
2627
bool isSshSettingsValid();
2728
bool isAdvancedSettingsValid();
2829
bool isSshTunnelUsed();
29-
RedisClient::ConnectionConfig getConectionConfigFromFormData();
30+
3031
void loadValuesFromConfig(const RedisClient::ConnectionConfig& config);
3132

3233
void markFieldInvalid(QWidget *w);

src/modules/redisclient/connectionconfig.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ bool RedisClient::ConnectionConfig::isSshPasswordUsed()
5858
return !param<QString>("ssh_password").isEmpty();
5959
}
6060

61+
QVariantHash RedisClient::ConnectionConfig::getInternalParameters()
62+
{
63+
return m_parameters;
64+
}
65+
6166
void RedisClient::ConnectionConfig::setSshTunnelSettings(QString host, QString user, QString pass, int port, QString privateKey)
6267
{
6368
m_parameters.insert("ssh_host", host);

src/modules/redisclient/connectionconfig.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,14 @@ class ConnectionConfig
2525
int executeTimeout() const;
2626
int connectionTimeout() const;
2727

28-
2928
bool isNull() const;
3029
bool useSshTunnel() const;
3130
bool useAuth() const;
3231
bool isValid() const;
3332
bool isSshPasswordUsed();
3433

34+
QVariantHash getInternalParameters();
35+
3536
template <class T> inline T param(const QString& p) const
3637
{
3738
if (m_parameters.contains(p)) return m_parameters[p].value<T>();

tests/unit_tests/main.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ _INITIALIZE_EASYLOGGINGPP
1010
#include "testcases/app/test_treeoperations.h"
1111
#include "testcases/app/test_abstractkey.h"
1212
#include "testcases/app/test_keymodels.h"
13+
#include "testcases/app/test_dialogs.h"
1314
#include "testcases/redisclient/test_command.h"
1415
#include "testcases/redisclient/test_response.h"
1516
#include "testcases/redisclient/test_connection.h"
@@ -45,6 +46,7 @@ int main(int argc, char *argv[])
4546
+ QTest::qExec(new TestTreeOperations, argc, argv)
4647
+ QTest::qExec(new TestKeyModels, argc, argv)
4748
+ QTest::qExec(new TestAbstractKey, argc, argv)
49+
+ QTest::qExec(new TestDialogs, argc, argv)
4850

4951
// value-editor module
5052
+ QTest::qExec(new TestView, argc, argv)

tests/unit_tests/testcases/app/app-tests.pri

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ HEADERS += \
1515
$$APP_SRC_DIR/models/key-models/sortedsetkey.h \
1616
$$APP_SRC_DIR/models/key-models/hashkey.h \
1717
$$APP_SRC_DIR/models/consoleoperations.h \
18-
$$APP_SRC_DIR/widgets/consoletabs.h \
18+
$$APP_SRC_DIR/widgets/consoletabs.h \
19+
$$APP_SRC_DIR/dialogs/connect.h \
1920
2021
SOURCES += \
2122
$$PWD/test_*.cpp \
@@ -30,7 +31,11 @@ SOURCES += \
3031
$$APP_SRC_DIR/models/key-models/hashkey.cpp \
3132
$$APP_SRC_DIR/models/consoleoperations.cpp \
3233
$$APP_SRC_DIR/widgets/consoletabs.cpp \
34+
$$APP_SRC_DIR/dialogs/connect.cpp \
3335
3436
OTHER_FILES += \
3537
connections.xml
3638

39+
FORMS += \
40+
$$APP_SRC_DIR/forms/connection.ui \
41+

tests/unit_tests/testcases/app/test_abstractkey.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#pragma once
22

3-
#include <QObject>
3+
#include "basetestcase.h"
44

5-
class TestAbstractKey : public QObject
5+
class TestAbstractKey : public BaseTestCase
66
{
77
Q_OBJECT
88

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
1-
#ifndef TEST_REDISCONNECTIONSMANAGER_H
2-
#define TEST_REDISCONNECTIONSMANAGER_H
1+
#pragma once
2+
#include "basetestcase.h"
33

4-
#include <QObject>
5-
6-
class TestConnectionsManager : public QObject
4+
class TestConnectionsManager : public BaseTestCase
75
{
86
Q_OBJECT
97

108
private slots:
119
void LoadConnectionsConfigFromFile();
1210

1311
};
14-
15-
#endif // TEST_REDISCONNECTIONSMANAGER_H
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#include "test_dialogs.h"
2+
#include "app/dialogs/connect.h"
3+
#include "models/connectionsmanager.h"
4+
#include "app/widgets/consoletabs.h"
5+
6+
namespace ValueEditor {
7+
class ViewModel;
8+
}
9+
10+
void TestDialogs::testConnectionDialog()
11+
{
12+
//given
13+
QString configTestFile = "connections.xml";
14+
ConsoleTabs tabsWidget;
15+
QSharedPointer<ConnectionsManager> testManager(new ConnectionsManager(configTestFile, tabsWidget,
16+
QSharedPointer<ValueEditor::ViewModel>()));
17+
18+
ConnectionWindow window(testManager.toWeakRef());
19+
RedisClient::ConnectionConfig conf("fake_host", "fake_name");
20+
conf.setSshTunnelSettings("fake_ssh_host", "fake_ssh_user", "fake_ssh_pass");
21+
22+
//when
23+
window.setConnectionConfig(conf);
24+
RedisClient::ConnectionConfig actualResult = window.getConectionConfigFromFormData();
25+
26+
//then
27+
QCOMPARE(actualResult.getInternalParameters(), conf.getInternalParameters());
28+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#pragma once
2+
#include "basetestcase.h"
3+
4+
class TestDialogs : public BaseTestCase
5+
{
6+
Q_OBJECT
7+
8+
private slots:
9+
void testConnectionDialog();
10+
11+
};

0 commit comments

Comments
 (0)