From b813680192c7fd557338dabc2b56e4ef65e3ef4a Mon Sep 17 00:00:00 2001 From: sangelovic Date: Tue, 19 Feb 2019 08:57:24 +0100 Subject: [PATCH] Allow ObjectPath and Signature be created from std::string --- include/sdbus-c++/Types.h | 6 ++++++ test/unittests/Types_test.cpp | 28 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/include/sdbus-c++/Types.h b/include/sdbus-c++/Types.h index 4d05632..2f305c0 100644 --- a/include/sdbus-c++/Types.h +++ b/include/sdbus-c++/Types.h @@ -140,6 +140,9 @@ namespace sdbus { public: using std::string::string; using std::string::operator=; + ObjectPath(std::string path) + : std::string(std::move(path)) + {} }; class Signature : public std::string @@ -147,6 +150,9 @@ namespace sdbus { public: using std::string::string; using std::string::operator=; + Signature(std::string path) + : std::string(std::move(path)) + {} }; } diff --git a/test/unittests/Types_test.cpp b/test/unittests/Types_test.cpp index f09372c..8928995 100644 --- a/test/unittests/Types_test.cpp +++ b/test/unittests/Types_test.cpp @@ -212,3 +212,31 @@ TEST(AStruct, CreatesStructFromTuple) ASSERT_THAT(std::get<0>(valueStruct), Eq(std::get<0>(value))); ASSERT_THAT(std::get<1>(valueStruct), Eq(std::get<1>(value))); } + +TEST(AnObjectPath, CanBeConstructedFromCString) +{ + const char* aPath = "/some/path"; + + ASSERT_THAT(sdbus::ObjectPath{aPath}, Eq(aPath)); +} + +TEST(AnObjectPath, CanBeConstructedFromStdString) +{ + std::string aPath{"/some/path"}; + + ASSERT_THAT(sdbus::ObjectPath{aPath}, Eq(aPath)); +} + +TEST(ASignature, CanBeConstructedFromCString) +{ + const char* aSignature = "us"; + + ASSERT_THAT(sdbus::Signature{aSignature}, Eq(aSignature)); +} + +TEST(ASignature, CanBeConstructedFromStdString) +{ + std::string aSignature{"us"}; + + ASSERT_THAT(sdbus::Signature{aSignature}, Eq(aSignature)); +}