mirror of
https://github.com/pocoproject/poco.git
synced 2025-02-20 22:31:23 +01:00
an attempt to reproduce GH #491
This commit is contained in:
parent
63a9c7cd2a
commit
ff07ee1c6e
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user