51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
define("dstore/tests/extensions/RqlQuery", [
|
|
'intern!object',
|
|
'intern/chai!assert',
|
|
'dojo/_base/declare',
|
|
'dstore/extensions/RqlQuery',
|
|
'dstore/Memory'
|
|
], function (registerSuite, assert, declare, RqlQuery, Memory) {
|
|
|
|
var TestModel = declare(null, {
|
|
describe: function () {
|
|
return this.name + ' is ' + (this.prime ? '' : 'not ') + 'a prime';
|
|
}
|
|
});
|
|
|
|
var TestStore = declare([ Memory, RqlQuery ]);
|
|
|
|
var rqlMemory = new TestStore({
|
|
data: [
|
|
{id: 1, name: 'one', prime: false, mappedTo: 'E'},
|
|
{id: 2, name: 'two', prime: true, mappedTo: 'D', even: true},
|
|
{id: 3, name: 'three', prime: true, mappedTo: 'C'},
|
|
{id: 4, name: 'four', prime: false, mappedTo: null, even: true},
|
|
{id: 5, name: 'five', prime: true, mappedTo: 'A'}
|
|
],
|
|
Model: TestModel
|
|
});
|
|
|
|
registerSuite({
|
|
name: 'dstore RqlMemory',
|
|
|
|
'get': function () {
|
|
assert.strictEqual(rqlMemory.getSync(1).name, 'one');
|
|
assert.strictEqual(rqlMemory.getSync(4).name, 'four');
|
|
assert.strictEqual(rqlMemory.getSync(1).describe(), 'one is not a prime');
|
|
},
|
|
|
|
'filter': function () {
|
|
assert.strictEqual(rqlMemory.filter('prime=true').fetchSync().length, 3);
|
|
assert.strictEqual(rqlMemory.filter('prime=true').fetchRangeSync({start: 1, end: 2}).totalLength, 3);
|
|
assert.strictEqual(rqlMemory.filter('prime=true').fetchRangeSync({start: 1, end: 2}).length, 1);
|
|
assert.strictEqual(rqlMemory.filter({prime: true}).fetchSync().length, 3);
|
|
assert.strictEqual(rqlMemory.filter('prime=true&even!=true').fetchSync().length, 2);
|
|
assert.strictEqual(rqlMemory.filter('prime=true&id>3').fetchSync().length, 1);
|
|
|
|
assert.strictEqual(rqlMemory.filter('(prime=true|id>3)').fetchSync().length, 4);
|
|
assert.strictEqual(rqlMemory.filter('(prime=true|id>3)').fetchRangeSync({start: 1, end: 3}).length, 2);
|
|
}
|
|
});
|
|
|
|
});
|