From 14eaa5e64d66f390679267448362e42efb7df14c Mon Sep 17 00:00:00 2001
From: kongr45gpen <electrovesta@gmail.com>
Date: Sun, 18 Nov 2018 03:38:45 +0200
Subject: [PATCH] Add basic tests for the Message class

---
 tests/Message.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++
 tests/tests.cpp   |  3 +++
 2 files changed, 46 insertions(+)
 create mode 100644 tests/Message.cpp
 create mode 100644 tests/tests.cpp

diff --git a/tests/Message.cpp b/tests/Message.cpp
new file mode 100644
index 00000000..7fc23a77
--- /dev/null
+++ b/tests/Message.cpp
@@ -0,0 +1,43 @@
+#include <catch2/catch.hpp>
+#include <Message.hpp>
+
+TEST_CASE("1: Message is usable", "[message]") {
+	Message message(5, 17, Message::TC, 3);
+
+	REQUIRE(message.serviceType == 5);
+	REQUIRE(message.messageType == 17);
+	REQUIRE(message.packetType == Message::TC);
+	REQUIRE(message.applicationId == 3);
+	REQUIRE(message.dataSize == 0);
+
+	message.appendByte(250);
+	REQUIRE(message.dataSize == 1);
+	REQUIRE(message.readByte() == 250);
+}
+
+TEST_CASE("2: Bit manipulations", "[message]") {
+	Message message(0, 0, Message::TC, 0);
+
+	message.appendBits(10, 0x357);
+	message.appendBits(4, 0xb);
+	message.appendBits(2, 0);
+	message.appendByte(248);
+	message.appendBits(7, 0x16);
+	message.appendBits(1, 0x1);
+	message.appendBits(8, 0xff);
+
+	REQUIRE(message.dataSize == 5);
+
+	CHECK(message.readBits(10) == 0x357);
+	CHECK(message.readBits(4) == 0xb);
+	CHECK(message.readBits(2) == 0);
+	CHECK(message.readBits(5) == 0x1f);
+	CHECK(message.readBits(3) == 0);
+	CHECK(message.readByte() == 0x2d);
+	CHECK(message.readByte() == 0xff);
+
+	message.resetRead();
+
+	CHECK(message.readUint32() == 0xd5ecf82d);
+	CHECK(message.readBits(8) == 0xff);
+}
diff --git a/tests/tests.cpp b/tests/tests.cpp
new file mode 100644
index 00000000..58d82872
--- /dev/null
+++ b/tests/tests.cpp
@@ -0,0 +1,3 @@
+#define CATCH_CONFIG_MAIN
+#include <catch2/catch.hpp>
+
-- 
GitLab