an attempt to reproduce GH #491

This commit is contained in:
Alex Fabijanic 2014-10-11 18:25:32 -05:00
parent 63a9c7cd2a
commit ff07ee1c6e
2 changed files with 42 additions and 31 deletions

View File

@ -165,37 +165,10 @@ void JSONTest::testFalseProperty()
void JSONTest::testNumberProperty()
{
std::string json = "{ \"test\" : 1969 }";
Parser parser;
Var result;
try
{
result = parser.parse(json);
}
catch(JSONException& jsone)
{
std::cout << jsone.message() << std::endl;
assert(false);
}
assert(result.type() == typeid(Object::Ptr));
Object::Ptr object = result.extract<Object::Ptr>();
Var test = object->get("test");
assert(test.isInteger());
int value = test;
assert(value == 1969);
DynamicStruct ds = *object;
assert (!ds["test"].isEmpty());
assert (ds["test"].isNumeric());
assert (ds["test"] == 1969);
const DynamicStruct& rds = *object;
assert (!rds["test"].isEmpty());
assert (rds["test"].isNumeric());
assert (rds["test"] == 1969);
testNumber(1969);
testNumber(-1969);
testNumber(1969.5);
testNumber(-1969.5);
}

View File

@ -76,6 +76,44 @@ public:
private:
std::string getTestFilesPath(const std::string& type);
template <typename T>
void testNumber(T number)
{
std::ostringstream os;
os << "{ \"test\" : " << number << " }";
std::string json = os.str();
Parser parser;
Var result;
try
{
result = parser.parse(json);
}
catch (JSONException& jsone)
{
std::cout << jsone.message() << std::endl;
assert(false);
}
assert(result.type() == typeid(Object::Ptr));
Object::Ptr object = result.extract<Object::Ptr>();
Var test = object->get("test");
assert(test.isNumeric());
T value = test;
assert(value == number);
DynamicStruct ds = *object;
assert(!ds["test"].isEmpty());
assert(ds["test"].isNumeric());
assert(ds["test"] == number);
const DynamicStruct& rds = *object;
assert(!rds["test"].isEmpty());
assert(rds["test"].isNumeric());
assert(rds["test"] == number);
}
};