aboutsummaryrefslogtreecommitdiff
path: root/launcher/tasks/Task_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/tasks/Task_test.cpp')
-rw-r--r--launcher/tasks/Task_test.cpp68
1 files changed, 68 insertions, 0 deletions
diff --git a/launcher/tasks/Task_test.cpp b/launcher/tasks/Task_test.cpp
new file mode 100644
index 00000000..9b6cc2e5
--- /dev/null
+++ b/launcher/tasks/Task_test.cpp
@@ -0,0 +1,68 @@
+#include <QTest>
+#include "TestUtil.h"
+
+#include "Task.h"
+
+/* Does nothing. Only used for testing. */
+class BasicTask : public Task {
+ Q_OBJECT
+
+ friend class TaskTest;
+
+ private:
+ void executeTask() override {};
+};
+
+/* Does nothing. Only used for testing. */
+class BasicTask_MultiStep : public Task {
+ Q_OBJECT
+
+ friend class TaskTest;
+
+ private:
+ auto isMultiStep() const -> bool override { return true; }
+
+ void executeTask() override {};
+};
+
+class TaskTest : public QObject {
+ Q_OBJECT
+
+ private slots:
+ void test_SetStatus_NoMultiStep(){
+ BasicTask t;
+ QString status {"test status"};
+
+ t.setStatus(status);
+
+ QCOMPARE(t.getStatus(), status);
+ QCOMPARE(t.getStepStatus(), status);
+ }
+
+ void test_SetStatus_MultiStep(){
+ BasicTask_MultiStep t;
+ QString status {"test status"};
+
+ t.setStatus(status);
+
+ QCOMPARE(t.getStatus(), status);
+ // Even though it is multi step, it does not override the getStepStatus method,
+ // so it should remain the same.
+ QCOMPARE(t.getStepStatus(), status);
+ }
+
+ void test_SetProgress(){
+ BasicTask t;
+ int current = 42;
+ int total = 207;
+
+ t.setProgress(current, total);
+
+ QCOMPARE(t.getProgress(), current);
+ QCOMPARE(t.getTotalProgress(), total);
+ }
+};
+
+QTEST_GUILESS_MAIN(TaskTest)
+
+#include "Task_test.moc"