Files
Superalgos/node_modules/json-edm-parser/test/edm.js
T
2018-02-10 11:53:55 +01:00

107 lines
3.4 KiB
JavaScript

var test = require('tape');
var Parser = require('../');
test('type number', function (t) {
t.plan(2);
var p = new Parser();
var expected = [ 1, {number: 1} ];
expected.push(expected.slice());
p.onValue = function (value) {
t.deepEqual(value, expected.shift());
};
p.write('{ "number": 1 }');
});
test('type double', function (t) {
t.plan(3);
var p = new Parser();
var expected = [ 'Edm.Double', '1.0', {doubleNumber: '1.0', 'doubleNumber@odata.type': 'Edm.Double'} ];
expected.push(expected.slice());
p.onValue = function (value) {
t.deepEqual(value, expected.shift());
};
p.write('{ "doubleNumber": 1.0 }');
});
test('type large double', function (t) {
t.plan(3);
var p = new Parser();
var expected = [ 'Edm.Double', '1234567898765432123456.0123456789876543210', {doubleNumber: '1234567898765432123456.0123456789876543210', 'doubleNumber@odata.type': 'Edm.Double'} ];
expected.push(expected.slice());
p.onValue = function (value) {
t.deepEqual(value, expected.shift());
};
p.write('{ "doubleNumber": 1234567898765432123456.0123456789876543210 }');
});
test('full odata entity', function (t) {
t.plan(17);
var p = new Parser();
var expected = [ 'http://test.table.core.windows.net/$metadata#tty/@Element',
'test.tty',
'http://test.table.core.windows.net/tty(PartitionKey=\'AAA\',RowKey=\'0001\')',
'W/\"datetime\'2016-01-07T02%3A59%3A28.6909359Z\'\"',
'tty(PartitionKey=\'AAA\',RowKey=\'0001\')',
'AAA',
'0001',
'Edm.DateTime',
'2016-01-07T02:59:28.6909359Z',
'Edm.Double',
'1.0',
'Edm.Double',
'1234567898765432123456.0123456789876543210',
2,
'Edm.Int64',
'1234567890123456789',
{ DoubleValue: '1.0',
'DoubleValue@odata.type': 'Edm.Double',
DoubleLargeValue: '1234567898765432123456.0123456789876543210',
'DoubleLargeValue@odata.type': 'Edm.Double',
Int32Value: 2,
'Int64Value@odata.type': 'Edm.Int64',
Int64Value: "1234567890123456789",
PartitionKey: 'AAA',
RowKey: '0001',
Timestamp: '2016-01-07T02:59:28.6909359Z',
'Timestamp@odata.type': 'Edm.DateTime',
'odata.editLink': 'tty(PartitionKey=\'AAA\',RowKey=\'0001\')',
'odata.etag': 'W/\"datetime\'2016-01-07T02%3A59%3A28.6909359Z\'\"',
'odata.id': 'http://test.table.core.windows.net/tty(PartitionKey=\'AAA\',RowKey=\'0001\')',
'odata.metadata': 'http://test.table.core.windows.net/$metadata#tty/@Element',
'odata.type': 'test.tty'
}
];
expected.push(expected.slice());
p.onValue = function (value) {
t.deepEqual(value, expected.shift());
};
p.write('{');
p.write('"odata.metadata":"http://test.table.core.windows.net/$metadata#tty/@Element",');
p.write('"odata.type":"test.tty",');
p.write('"odata.id":"http://test.table.core.windows.net/tty(PartitionKey=\'AAA\',RowKey=\'0001\')",');
p.write('"odata.etag":"W/\\\"datetime\'2016-01-07T02%3A59%3A28.6909359Z\'\\\"",');
p.write('"odata.editLink":"tty(PartitionKey=\'AAA\',RowKey=\'0001\')",');
p.write('"PartitionKey":"AAA",');
p.write('"RowKey":"0001",');
p.write('"Timestamp@odata.type":"Edm.DateTime",');
p.write('"Timestamp":"2016-01-07T02:59:28.6909359Z",');
p.write('"DoubleValue":1.0,');
p.write('"DoubleLargeValue":1234567898765432123456.0123456789876543210,');
p.write('"Int32Value":2,');
p.write('"Int64Value@odata.type":"Edm.Int64",');
p.write('"Int64Value":1234567890123456789');
p.write('}');
});