From 77f0c38b1718dcd8c76b0fdff342550549082968 Mon Sep 17 00:00:00 2001 From: Tristan Cormier Date: Sat, 11 Mar 2023 00:49:55 -0500 Subject: [PATCH] feat(string): add assignment operator for const char* rvalue --- common/string/RCString.cpp | 4 ++++ common/string/RCString.hpp | 1 + test/String.cpp | 9 +++++++++ 3 files changed, 14 insertions(+) diff --git a/common/string/RCString.cpp b/common/string/RCString.cpp index 2f13ffc..083c367 100644 --- a/common/string/RCString.cpp +++ b/common/string/RCString.cpp @@ -36,3 +36,7 @@ const char* RCString::GetString() const { return nullptr; } } + +void RCString::operator=(const char* rval) { + this->Copy(rval); +} diff --git a/common/string/RCString.hpp b/common/string/RCString.hpp index d41e2a9..1944bb2 100644 --- a/common/string/RCString.hpp +++ b/common/string/RCString.hpp @@ -15,6 +15,7 @@ class RCString : public TRefCnt { void Copy(const RCString& source); void Get(char* buf, size_t bufSize) const; const char* GetString() const; + void operator=(const char* rval); }; #endif diff --git a/test/String.cpp b/test/String.cpp index 807b612..8049116 100644 --- a/test/String.cpp +++ b/test/String.cpp @@ -40,3 +40,12 @@ TEST_CASE("RCString::GetString", "[string]") { REQUIRE(rcStr1.GetString() != rcStr2.GetString()); } } + +TEST_CASE("RCString::operator=", "string") { + SECTION("assigns the value of const char* rval to the calling RCString object") { + auto str = "foo"; + RCString rcStr; + rcStr = str; + REQUIRE(!SStrCmp(str, rcStr.GetString(), STORM_MAX_STR)); + } +}