summaryrefslogtreecommitdiff
path: root/test/nodetreetest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/nodetreetest.cc')
-rw-r--r--test/nodetreetest.cc80
1 files changed, 80 insertions, 0 deletions
diff --git a/test/nodetreetest.cc b/test/nodetreetest.cc
new file mode 100644
index 0000000..09d4a7f
--- /dev/null
+++ b/test/nodetreetest.cc
@@ -0,0 +1,80 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set et sw=2 ts=2: */
+/***************************************************************************
+ * nodetreetest.cc
+ *
+ * Sat Jun 6 20:32:48 CEST 2020
+ * Copyright 2020 Bent Bisballe Nyeng
+ * deva@aasimon.org
+ ****************************************************************************/
+
+/*
+ * This file is part of Munia.
+ *
+ * Munia is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Munia is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Munia; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+#include "dgunit.h"
+
+#include <nodetree.h>
+
+#define ROOT_ID 0
+#define LOSTFOUND_ID 1
+#define FINISHED_ID 2
+#define BACKLOG_ID 3
+#define PROJECTS_ID 4
+#define FIRST_NODE_ID 10
+
+class NodeTreeTest
+ : public DGUnit
+{
+public:
+ NodeTreeTest()
+ {
+ DGUNIT_TEST(NodeTreeTest::test);
+ }
+
+ void test()
+ {
+ NodeTree tree;
+
+ node_t t;
+ t.attributes["title"] = "root";
+ t.id = ROOT_ID;
+ tree.insertAsChild(0, ROOT_ID, t);
+
+ t.attributes["title"] = "Finished";
+ t.id = FINISHED_ID;
+ tree.insertAsChild(ROOT_ID, FINISHED_ID, t);
+
+ t.attributes["title"] = "Backlog";
+ t.id = BACKLOG_ID;
+ tree.insertAsChild(ROOT_ID, BACKLOG_ID, t);
+
+ t.attributes["title"] = "Lost+Found";
+ t.id = LOSTFOUND_ID;
+ tree.insertAsChild(ROOT_ID, LOSTFOUND_ID, t);
+
+ t.attributes["title"] = "Projects";
+ t.id = PROJECTS_ID;
+ tree.insertAsChild(ROOT_ID, PROJECTS_ID, t);
+
+ DGUNIT_ASSERT_EQUAL(5, tree.bfs(0).size()); // Testing BFS function
+ DGUNIT_ASSERT_EQUAL(PROJECTS_ID, tree.data(PROJECTS_ID).id); // Testing project id
+ DGUNIT_ASSERT_EQUAL(ROOT_ID, tree.data(ROOT_ID).id); // Testing root id
+ }
+};
+
+// Registers the fixture into the 'registry'
+static NodeTreeTest test;