whatsappicloudtweetdeckhipchattelegramhangoutsslackgmailskypefacebook-workplaceoutlookemailmicrosoft-teamsdiscordmessengercustom-servicesmacoslinuxwindowsinbox
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
5.1 KiB
117 lines
5.1 KiB
9 years ago
|
describe("Ext.data.amf.Reader", function() {
|
||
|
var reader;
|
||
|
|
||
|
beforeEach(function() {
|
||
|
Ext.define('spec.Engineer', {
|
||
|
extend: 'Ext.data.Model',
|
||
|
fields: ['name']
|
||
|
});
|
||
|
reader = new Ext.data.amf.Reader({model: spec.Engineer});
|
||
|
});
|
||
|
|
||
|
afterEach(function() {
|
||
|
Ext.ModelManager.types = {};
|
||
|
Ext.undefine('spec.Engineer');
|
||
|
});
|
||
|
|
||
|
it("should read records in AMF0 format", function() {
|
||
|
var resultSet = reader.read({ responseBytes: [
|
||
|
0,0,0,0,0,1,0,16,109,101,115,115,97,103,101,47,111,110,82,101,115,
|
||
|
117,108,116,0,4,110,117,108,108,0,0,0,0,10,0,0,0,3,3,0,2,105,100,0,
|
||
|
63,240,0,0,0,0,0,0,0,4,110,97,109,101,2,0,4,80,104,105,108,0,0,9,3,
|
||
|
0,2,105,100,0,64,0,0,0,0,0,0,0,0,4,110,97,109,101,2,0,3,68,111,110,
|
||
|
0,0,9,3,0,2,105,100,0,64,8,0,0,0,0,0,0,0,4,110,97,109,101,2,0,5,75,
|
||
|
101,118,105,110,0,0,9
|
||
|
]});
|
||
|
|
||
|
expect(resultSet instanceof Ext.data.ResultSet).toBe(true);
|
||
|
|
||
|
expect(resultSet.success).toBe(true);
|
||
|
expect(resultSet.count).toBe(3);
|
||
|
|
||
|
expect(resultSet.records.length).toBe(3);
|
||
|
expect(resultSet.records.length).toBe(3);
|
||
|
expect(resultSet.records[0] instanceof spec.Engineer).toBe(true);
|
||
|
expect(resultSet.records[0].getId()).toBe(1);
|
||
|
expect(resultSet.records[0].get('name')).toBe('Phil');
|
||
|
expect(resultSet.records[1] instanceof spec.Engineer).toBe(true);
|
||
|
expect(resultSet.records[1].getId()).toBe(2);
|
||
|
expect(resultSet.records[1].get('name')).toBe('Don');
|
||
|
expect(resultSet.records[2] instanceof spec.Engineer).toBe(true);
|
||
|
expect(resultSet.records[2].getId()).toBe(3);
|
||
|
expect(resultSet.records[2].get('name')).toBe('Kevin');
|
||
|
});
|
||
|
|
||
|
it("should read records in AMF0 format when the record root is not the message body", function() {
|
||
|
reader = new Ext.data.amf.Reader({
|
||
|
model: spec.Engineer,
|
||
|
root: 'a.b[1].c'
|
||
|
});
|
||
|
|
||
|
var resultSet = reader.read({ responseBytes: [
|
||
|
0,0,0,0,0,1,0,16,109,101,115,115,97,103,101,47,111,110,82,101,115,
|
||
|
117,108,116,0,4,110,117,108,108,0,0,0,0,3,0,1,97,3,0,1,98,10,0,0,0,
|
||
|
2,0,63,240,0,0,0,0,0,0,3,0,1,99,10,0,0,0,3,3,0,2,105,100,0,63,240,0,
|
||
|
0,0,0,0,0,0,4,110,97,109,101,2,0,4,80,104,105,108,0,0,9,3,0,2,105,
|
||
|
100,0,64,0,0,0,0,0,0,0,0,4,110,97,109,101,2,0,3,68,111,110,0,0,9,3,
|
||
|
0,2,105,100,0,64,8,0,0,0,0,0,0,0,4,110,97,109,101,2,0,5,75,101,118,
|
||
|
105,110,0,0,9,0,0,9,0,0,9,0,0,9
|
||
|
]});
|
||
|
|
||
|
expect(resultSet instanceof Ext.data.ResultSet).toBe(true);
|
||
|
|
||
|
expect(resultSet.success).toBe(true);
|
||
|
expect(resultSet.count).toBe(3);
|
||
|
|
||
|
expect(resultSet.records.length).toBe(3);
|
||
|
expect(resultSet.records.length).toBe(3);
|
||
|
expect(resultSet.records[0] instanceof spec.Engineer).toBe(true);
|
||
|
expect(resultSet.records[0].getId()).toBe(1);
|
||
|
expect(resultSet.records[0].get('name')).toBe('Phil');
|
||
|
expect(resultSet.records[1] instanceof spec.Engineer).toBe(true);
|
||
|
expect(resultSet.records[1].getId()).toBe(2);
|
||
|
expect(resultSet.records[1].get('name')).toBe('Don');
|
||
|
expect(resultSet.records[2] instanceof spec.Engineer).toBe(true);
|
||
|
expect(resultSet.records[2].getId()).toBe(3);
|
||
|
expect(resultSet.records[2].get('name')).toBe('Kevin');
|
||
|
});
|
||
|
|
||
|
it("should read records in AMF3 format", function() {
|
||
|
var resultSet = reader.read({ responseBytes: [
|
||
|
0,3,0,0,0,1,0,16,109,101,115,115,97,103,101,47,111,110,82,101,115,
|
||
|
117,108,116,0,4,110,117,108,108,0,0,0,0,17,9,7,1,10,11,1,5,105,100,
|
||
|
4,1,9,110,97,109,101,6,9,80,104,105,108,1,10,1,0,4,2,2,6,7,68,111,
|
||
|
110,1,10,1,0,4,3,2,6,11,75,101,118,105,110,1
|
||
|
]});
|
||
|
|
||
|
expect(resultSet instanceof Ext.data.ResultSet).toBe(true);
|
||
|
|
||
|
expect(resultSet.success).toBe(true);
|
||
|
expect(resultSet.count).toBe(3);
|
||
|
|
||
|
expect(resultSet.records.length).toBe(3);
|
||
|
expect(resultSet.records.length).toBe(3);
|
||
|
expect(resultSet.records[0] instanceof spec.Engineer).toBe(true);
|
||
|
expect(resultSet.records[0].getId()).toBe(1);
|
||
|
expect(resultSet.records[0].get('name')).toBe('Phil');
|
||
|
expect(resultSet.records[1] instanceof spec.Engineer).toBe(true);
|
||
|
expect(resultSet.records[1].getId()).toBe(2);
|
||
|
expect(resultSet.records[1].get('name')).toBe('Don');
|
||
|
expect(resultSet.records[2] instanceof spec.Engineer).toBe(true);
|
||
|
expect(resultSet.records[2].getId()).toBe(3);
|
||
|
expect(resultSet.records[2].get('name')).toBe('Kevin');
|
||
|
});
|
||
|
|
||
|
it("should return a null result set if there are no data in the response", function() {
|
||
|
runs(function() {
|
||
|
var resultSet = reader.read({ responseBytes: [] });
|
||
|
|
||
|
expect(resultSet instanceof Ext.data.ResultSet).toBe(true);
|
||
|
expect(resultSet.total).toBe(0);
|
||
|
expect(resultSet.count).toBe(0);
|
||
|
expect(resultSet.records).toEqual([]);
|
||
|
expect(resultSet.success).toBe(true);
|
||
|
});
|
||
|
});
|
||
|
});
|