Commit 4feb8211 authored by Vitaliy's avatar Vitaliy

test (non)equality for alt_string implementation

parent e830bc50
...@@ -60,17 +60,36 @@ class alt_string ...@@ -60,17 +60,36 @@ class alt_string
} }
template <typename op_type> template <typename op_type>
bool operator==(op_type&& op) const typename std::enable_if< // disable for alt_string
!std::is_same< alt_string,
typename std::remove_reference<op_type>::type
>::value,
bool>::type
operator==(op_type&& op) const
{ {
return str_impl == op; return str_impl == op;
} }
bool operator==(const alt_string& op) const
{
return str_impl == op.str_impl;
}
template <typename op_type> template <typename op_type>
bool operator!=(op_type&& op) const typename std::enable_if< // disable for alt_string
!std::is_same< alt_string,
typename std::remove_reference<op_type>::type
>::value,
bool>::type
operator!=(op_type&& op) const
{ {
return str_impl != op; return str_impl != op;
} }
bool operator!=(const alt_string& op) const {
return str_impl != op.str_impl;
}
std::size_t size() const noexcept std::size_t size() const noexcept
{ {
return str_impl.size(); return str_impl.size();
...@@ -210,4 +229,26 @@ TEST_CASE("alternative string type") ...@@ -210,4 +229,26 @@ TEST_CASE("alternative string type")
alt_string dump = doc.dump(); alt_string dump = doc.dump();
CHECK(dump == R"({"foo":"bar"})"); CHECK(dump == R"({"foo":"bar"})");
} }
SECTION("equality")
{
alt_json doc;
doc["Who are you?"] = "I'm Batman";
CHECK("I'm Batman" == doc["Who are you?"]);
CHECK(doc["Who are you?"] == "I'm Batman");
CHECK("I'm Bruce Wayne" != doc["Who are you?"]);
CHECK(doc["Who are you?"] != "I'm Bruce Wayne");
{
const alt_json& const_doc = doc;
CHECK("I'm Batman" == const_doc["Who are you?"]);
CHECK(const_doc["Who are you?"] == "I'm Batman");
CHECK("I'm Bruce Wayne" != const_doc["Who are you?"]);
CHECK(const_doc["Who are you?"] != "I'm Bruce Wayne");
}
}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment