Enhancement - Task::operator==

- Implemented Task::operator==.
- Implemented unit tests.
This commit is contained in:
Paul Beckingham 2009-06-25 17:08:39 -04:00
parent a56eeb9ec2
commit 1cfe879409
3 changed files with 24 additions and 1 deletions

View file

@ -59,6 +59,21 @@ Task& Task::operator= (const Task& other)
return *this; return *this;
} }
////////////////////////////////////////////////////////////////////////////////
// The uuid and id attributes must be exempt for comparison.
bool Task::operator== (const Task& other)
{
if (size () != other.size ())
return false;
foreach (att, *this)
if (att->first != "uuid")
if (att->second.value () != other.get (att->first))
return false;
return true;
}
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Attempt an FF4 parse first, using Record::parse, and in the event of an error // Attempt an FF4 parse first, using Record::parse, and in the event of an error
// try a legacy parse (F3, FF2). Note that FF1 is no longer supported. // try a legacy parse (F3, FF2). Note that FF1 is no longer supported.

View file

@ -38,6 +38,7 @@ public:
Task (); // Default constructor Task (); // Default constructor
Task (const Task&); // Copy constructor Task (const Task&); // Copy constructor
Task& operator= (const Task&); // Assignment operator Task& operator= (const Task&); // Assignment operator
bool operator== (const Task&); // Comparison operator
Task (const std::string&); // Parse Task (const std::string&); // Parse
~Task (); // Destructor ~Task (); // Destructor

View file

@ -32,7 +32,7 @@ Context context;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
int main (int argc, char** argv) int main (int argc, char** argv)
{ {
UnitTest test (34); UnitTest test (36);
test.is ((int)Task::textToStatus ("pending"), (int)Task::pending, "textToStatus pending"); test.is ((int)Task::textToStatus ("pending"), (int)Task::pending, "textToStatus pending");
test.is ((int)Task::textToStatus ("completed"), (int)Task::completed, "textToStatus completed"); test.is ((int)Task::textToStatus ("completed"), (int)Task::completed, "textToStatus completed");
@ -146,6 +146,13 @@ TODO Task::*Annotation*
*/ */
// Task::operator==
Task left ("[one:1 two:2 three:3]");
Task right (left);
test.ok (left == right, "left == right -> true");
left.set ("one", "1.0");
test.notok (left == right, "left == right -> false");
return 0; return 0;
} }