mirror of
https://github.com/pocoproject/poco.git
synced 2025-04-24 17:18:32 +02: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()
|
void JSONTest::testNumberProperty()
|
||||||
{
|
{
|
||||||
std::string json = "{ \"test\" : 1969 }";
|
testNumber(1969);
|
||||||
Parser parser;
|
testNumber(-1969);
|
||||||
Var result;
|
testNumber(1969.5);
|
||||||
|
testNumber(-1969.5);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,6 +76,44 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::string getTestFilesPath(const std::string& type);
|
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