common/test/DataStore.cpp

110 lines
2.4 KiB
C++

#include "common/DataStore.hpp"
#include "test/Test.hpp"
#include <storm/String.hpp>
TEST_CASE("CDataStore::CDataStore", "[datastore]") {
SECTION("constructs new data store") {
CDataStore msg;
SUCCEED();
}
}
TEST_CASE("CDataStore::Get", "[datastore]") {
SECTION("gets uint8_t") {
uint8_t writeVal = 8;
uint8_t readVal = -1;
CDataStore msg;
msg.Put(writeVal);
msg.Finalize();
msg.Get(readVal);
REQUIRE(readVal == writeVal);
}
SECTION("gets uint16_t") {
uint16_t writeVal = 0x1234;
uint16_t readVal = -1;
CDataStore msg;
msg.Put(writeVal);
msg.Finalize();
msg.Get(readVal);
REQUIRE(readVal == writeVal);
}
SECTION("gets uint32_t") {
uint32_t writeVal = 0x12345678;
uint32_t readVal = 0x12345678;
CDataStore msg;
msg.Put(writeVal);
msg.Finalize();
msg.Get(readVal);
REQUIRE(readVal == writeVal);
}
SECTION("gets uint64_t") {
uint64_t writeVal = 0x1122334455667788;
uint64_t readVal = 0x1122334455667788;
CDataStore msg;
msg.Put(writeVal);
msg.Finalize();
msg.Get(readVal);
REQUIRE(readVal == writeVal);
}
SECTION("gets float") {
float writeVal = 1.5f;
float readVal = -1.0f;
CDataStore msg;
msg.Put(writeVal);
msg.Finalize();
msg.Get(readVal);
REQUIRE(readVal == writeVal);
}
SECTION("gets string") {
const char* writeVal = "foobar";
char readVal[7] = "barfoo";
CDataStore msg;
msg.PutString(writeVal);
msg.Finalize();
msg.GetString(readVal, sizeof(readVal));
REQUIRE(SStrCmp(readVal, writeVal, STORM_MAX_STR) == 0);
REQUIRE(msg.IsRead());
}
SECTION("gets string honoring maxchars > 0") {
const char* writeVal = "foobar";
char readVal[7] = "bar";
CDataStore msg;
msg.PutString(writeVal);
msg.Finalize();
msg.GetString(readVal, 3);
REQUIRE(SStrCmp(readVal, "foo", STORM_MAX_STR) == 0);
REQUIRE(msg.m_read == 3);
}
SECTION("gets string honoring maxchars of 0") {
const char* writeVal = "foobar";
char readVal[7] = "bar";
CDataStore msg;
msg.PutString(writeVal);
msg.Finalize();
msg.GetString(readVal, 0);
REQUIRE(msg.m_read == 0);
}
}