PropertyObject ::create tests.

This commit is contained in:
James Turner
2010-11-20 04:25:11 -08:00
parent c3c97f2956
commit 203d1c2b45
2 changed files with 49 additions and 0 deletions

View File

@@ -143,7 +143,34 @@ public:
}
// copy-constructor
PropertyObject(const PropertyObject<std::string>& aOther) :
PropertyObjectBase(aOther)
{
}
// create form
static PropertyObject<std::string> create(const char* aPath, const std::string& aValue)
{
PropertyObject<std::string> p(aPath);
p = aValue;
return p;
}
static PropertyObject<std::string> create(SGPropertyNode* aNode, const std::string& aValue)
{
PropertyObject<std::string> p(aNode);
p = aValue;
return p;
}
static PropertyObject<std::string> create(SGPropertyNode* aNode, const char* aChild, const std::string& aValue)
{
PropertyObject<std::string> p(aNode, aChild);
p = aValue;
return p;
}
operator std::string () const
{

View File

@@ -149,6 +149,27 @@ void testReadMissing()
}
}
void testCreate()
{
PropertyObject<bool> a = PropertyObject<bool>::create("a/lemon", true);
assert(a == true);
assert(testRoot->getBoolValue("a/lemon") == true);
PropertyObject<int> b(PropertyObject<int>::create("a/pear", 3142));
assert(b == 3142);
PropertyObject<std::string> c(PropertyObject<std::string>::create("a/lime", "fofofo"));
assert(c == "fofofo");
// check overloads for string version
SGPropertyNode* n = testRoot->getNode("b", true);
PropertyObject<std::string> d(PropertyObject<std::string>::create(n, "grape", "xyz"));
assert(!strcmp(testRoot->getStringValue("b/grape"), "xyz"));
}
int main(int argc, char* argv[])
{
testRoot = new SGPropertyNode();
@@ -170,6 +191,7 @@ int main(int argc, char* argv[])
testString();
testAssignment();
testSTLContainer();
testCreate();
return EXIT_SUCCESS;
}