Backport JSON funcs from v2
This commit is contained in:
@@ -65,6 +65,30 @@ describe('::array()', function () {
|
||||
});
|
||||
});
|
||||
|
||||
describe('::jsonArray()', function () {
|
||||
test('returns non-empty array when data found', function () {
|
||||
expect(Custom::jsonArray(Query::selectFromTable(ThrowawayDb::TABLE) . " WHERE data->>'sub' IS NOT NULL", []))
|
||||
->toContain('[{', '},{', '}]');
|
||||
});
|
||||
test('returns empty array when no data found', function () {
|
||||
expect(Custom::jsonArray(Query::selectFromTable(ThrowawayDb::TABLE) . " WHERE data->>'nothing' = '7'", []))
|
||||
->toBe('[]');
|
||||
});
|
||||
});
|
||||
|
||||
describe('::outputJsonArray()', function () {
|
||||
test('outputs non-empty array when data found', function () {
|
||||
$this->clearBuffer();
|
||||
Custom::outputJsonArray(Query::selectFromTable(ThrowawayDb::TABLE) . " WHERE data->>'sub' IS NOT NULL", []);
|
||||
expect($this->getBufferContents())->toContain('[{', '},{', '}]');
|
||||
});
|
||||
test('outputs empty array when no data found', function () {
|
||||
$this->clearBuffer();
|
||||
Custom::outputJsonArray(Query::selectFromTable(ThrowawayDb::TABLE) . " WHERE data->>'nothing' = '7'", []);
|
||||
expect($this->getBufferContents())->toBe('[]');
|
||||
});
|
||||
});
|
||||
|
||||
describe('::single()', function () {
|
||||
test('returns a document when one is found', function () {
|
||||
expect(Custom::single('SELECT data FROM ' . ThrowawayDb::TABLE . " WHERE data->>'id' = :id", [':id' => 'one'],
|
||||
@@ -79,6 +103,19 @@ describe('::single()', function () {
|
||||
});
|
||||
});
|
||||
|
||||
describe('::jsonSingle()', function () {
|
||||
test('returns a document when one is found', function () {
|
||||
expect(Custom::jsonSingle('SELECT data FROM ' . ThrowawayDb::TABLE . " WHERE data->>'id' = :id",
|
||||
[':id' => 'one']))
|
||||
->toStartWith('{"id":')->toContain('"one",')->toEndWith('}');
|
||||
});
|
||||
test('returns no document when one is not found', function () {
|
||||
expect(Custom::jsonSingle('SELECT data FROM ' . ThrowawayDb::TABLE . " WHERE data->>'id' = :id",
|
||||
[':id' => 'eighty']))
|
||||
->toBe('{}');
|
||||
});
|
||||
});
|
||||
|
||||
describe('::nonQuery()', function () {
|
||||
test('works when documents match the WHERE clause', function () {
|
||||
Custom::nonQuery('DELETE FROM ' . ThrowawayDb::TABLE, []);
|
||||
|
||||
Reference in New Issue
Block a user