From db31e22f40903497a316602d96aa87ff53cffe12 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sun, 12 Jul 2015 13:18:41 +0100 Subject: [PATCH] Added equality operator to Location class. --- src/backend/metadata/location.cpp | 4 ++++ src/backend/metadata/location.h | 1 + src/tests/backend/metadata/test_location.h | 17 +++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/src/backend/metadata/location.cpp b/src/backend/metadata/location.cpp index 523d1507..0ca3b4ba 100644 --- a/src/backend/metadata/location.cpp +++ b/src/backend/metadata/location.cpp @@ -39,6 +39,10 @@ namespace loot { return boost::ilexicographical_compare(_url, rhs.URL()); } + bool Location::operator == (const Location& rhs) const { + return boost::iequals(_url, rhs.URL()); + } + std::string Location::URL() const { return _url; } diff --git a/src/backend/metadata/location.h b/src/backend/metadata/location.h index 25157261..896e4c4f 100644 --- a/src/backend/metadata/location.h +++ b/src/backend/metadata/location.h @@ -37,6 +37,7 @@ namespace loot { Location(const std::string& url, const std::vector& versions); bool operator < (const Location& rhs) const; + bool operator == (const Location& rhs) const; std::string URL() const; std::vector Versions() const; diff --git a/src/tests/backend/metadata/test_location.h b/src/tests/backend/metadata/test_location.h index 36805daa..c0c0bd1d 100644 --- a/src/tests/backend/metadata/test_location.h +++ b/src/tests/backend/metadata/test_location.h @@ -48,6 +48,23 @@ TEST(Location, ConstructorsAndDataAccess) { }), loc.Versions()); } +TEST(Location, EqualityOperator) { + Location loc1, loc2; + EXPECT_TRUE(loc1 == loc2); + + loc1 = Location("http://www.example.com"); + loc2 = Location("HTTP://WWW.EXAMPLE.COM"); + EXPECT_TRUE(loc1 == loc2); + + loc1 = Location("http://www.example.com", {"1.0"}); + loc2 = Location("http://www.example.com", {"1.1"}); + EXPECT_TRUE(loc1 == loc2); + + loc1 = Location("http://www.example1.com"); + loc2 = Location("http://www.example2.com"); + EXPECT_FALSE(loc1 == loc2); +} + TEST(Location, LessThanOperator) { Location loc1, loc2; EXPECT_FALSE(loc1 < loc2);