Function toJSONHierarchy
string toJSONHierarchy(T)
(
const(T)[][string] items
);
Example
convert an assoc array to JSON hierarchy
struct Mock {
string val;
string toString() inout {
return `"` ~ val ~ `"`;
}
}
const(Mock)[][string] mocks;
mocks["a.b"] = [ Mock("val1"), Mock("val2") ];
mocks["a.c"] = [ Mock("val3") ];
auto result = mocks .toJSONHierarchy;
result .should .contain(`
"b": [
"val1",
"val2"
]`);
result .should .contain(`"c": [
"val3"
]`);
result .should .startWith(`{
"a": {`);
result .should .endWith(`
]
}
}`);
Example
it should have an empty key for items that contain both values and childs
struct Mock {
string val;
string toString() inout {
return `"` ~ val ~ `"`;
}
}
const(Mock)[][string] mocks;
mocks["a.b"] = [ Mock("val1"), Mock("val2") ];
mocks["a.b.c"] = [ Mock("val3") ];
mocks .toJSONHierarchy .should .equal(`{
"a": {
"b": {
"c": [
"val3"
],
"": [
"val1",
"val2"
]
}
}
}`);
Example
describeTests should return the tests cases serialised in json format
void TestMock() @system { }
TestCase[] tests;
tests ~= TestCase("a.b", "some test", &TestMock, [ Label("some label", "label value") ]);
tests ~= TestCase("a.c", "other test", &TestMock);
auto result = describeTests(tests);
result .values .length .should .equal(2);
result .keys .should .containOnly([ "a.b", "a.c" ]);
result["a.b"] .length .should .equal(1);
result["a.c"] .length .should .equal(1);