X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/2e847cf21b8ab9d15fa167b315ca5b2fa92638fc..6a7e4474cba9d8be4b2ec445e10f1691f7277c50:/test/unit/data/JsonReader.js diff --git a/test/unit/data/JsonReader.js b/test/unit/data/JsonReader.js new file mode 100644 index 00000000..64a5b652 --- /dev/null +++ b/test/unit/data/JsonReader.js @@ -0,0 +1,171 @@ +/*! + * Ext JS Library 3.2.0 + * Copyright(c) 2006-2010 Ext JS, Inc. + * licensing@extjs.com + * http://www.extjs.com/license + */ +var suite = Ext.test.session.getSuite('JsonReader'); + +suite.add(new Y.Test.Case({ + name: 'buildExtractors', + setUp: function() { + this.reader = new Ext.data.JsonReader({ + root: 'data', + idProperty: 'id', + totalProperty: 'totalProp', + messageProperty: 'messageProp', + successProperty: 'successProp', + fields: [ + {mapping: 'mappy', name: 'inter', type: 'integer'} + ] + }); + this.reader.buildExtractors(); + }, + tearDown: function() { + delete this.reader; + }, + test_getTotal: function() { + Y.Assert.areSame(this.reader.getTotal({ totalProp: 500}), 500); + }, + test_getSuccess: function() { + Y.Assert.areSame(this.reader.getSuccess({ successProp: false }), false); + }, + test_getMessage: function() { + Y.Assert.areSame(this.reader.getMessage({ messageProp: 'Hello' }), 'Hello'); + }, + test_getRoot: function() { + Y.Assert.areSame(this.reader.getRoot({ data: 'data' }), 'data'); + }, + test_getId: function() { + Y.Assert.areSame(this.reader.getId({ id: 100 }), 100); + }, + test_mapping: function() { + Y.Assert.areSame(this.reader.ef[0]({ mappy: 200 }), 200); + } +})); + +suite.add(new Y.Test.Case({ + name: 'readRecords', + setUp: function() { + this.reader = new Ext.data.JsonReader({ + root: 'data', + idProperty: 'id', + totalProperty: 'totalProp', + messageProperty: 'Hello World', + successProperty: 'successProp', + fields: [ + {name: 'id'}, + {name: 'floater', type: 'float'}, + {name: 'bool', type: 'boolean'}, + {name: 'inter', type: 'integer'} + ] + }); + this.data1 = { + id: 1, + floater: 1.23, + bool: true, + inter: 8675 + }; + this.rec1 = this.reader.readRecords({ + data: [this.data1], + successProp: true, + totalProp: 2 + }); + this.rec2 = this.reader.readRecords({ + data: [{ + id: 2, + floater: 4.56, + bool: false, + inter: 309 + }], + successProp: false, + totalProp: 6 + }); + }, + test_tearDown: function() { + delete this.reader; + delete this.data1; + delete this.rec1; + delete this.rec2; + }, + test_SuccessProperty: function() { + Y.Assert.areSame(this.rec1.success, true); + Y.Assert.areSame(this.rec2.success, false); + }, + test_TotalRecords: function() { + Y.Assert.areSame(this.rec1.totalRecords, 2); + Y.Assert.areSame(this.rec2.totalRecords, 6); + }, + test_Records: function() { + Y.Assert.areSame(this.rec1.records[0].data.id, this.data1.id); + Y.Assert.areSame(this.rec1.records[0].data.floater, this.data1.floater); + Y.Assert.areSame(this.rec1.records[0].data.bool, this.data1.bool); + Y.Assert.areSame(this.rec1.records[0].data.inter, this.data1.inter); + } +})); + +suite.add(new Y.Test.Case({ + name: 'readResponse', + setUp: function() { + this.reader = new Ext.data.JsonReader({ + root: 'data', + idProperty: 'id', + totalProperty: 'totalProp', + messageProperty: 'messageProp', + successProperty: 'successProp', + fields: [ + {name: 'id'}, + {name: 'floater', type: 'float'}, + {name: 'bool', type: 'boolean'}, + {name: 'inter', type: 'integer'} + ] + }); + this.data1 = { + id: 1, + floater: 1.23, + bool: true, + inter: 8675 + }; + this.rec1 = this.reader.readResponse('read', { + data: [this.data1], + successProp: true, + totalProp: 2, + messageProp: 'Hello' + }); + this.rec2 = this.reader.readResponse('read', { + data: [{ + id: 2, + floater: 4.56, + bool: false, + inter: 309 + }], + successProp: false, + totalProp: 6 + }); + }, + tearDown: function() { + delete this.reader; + delete this.data1; + delete this.rec1; + delete this.rec2; + }, + test_SuccessProperty: function() { + Y.Assert.areSame(this.rec1.success, true); + Y.Assert.areSame(this.rec2.success, false); + }, + test_Records: function() { + Y.Assert.areSame(this.rec1.data[0].id, this.data1.id); + Y.Assert.areSame(this.rec1.data[0].floater, this.data1.floater); + Y.Assert.areSame(this.rec1.data[0].bool, this.data1.bool); + Y.Assert.areSame(this.rec1.data[0].inter, this.data1.inter); + }, + test_ActionProperty: function() { + Y.Assert.areSame(this.rec1.action, 'read'); + }, + test_MessageProperty: function() { + Y.Assert.areSame(this.rec1.message, 'Hello'); + }, + test_RawProperty: function() { + Y.Assert.areSame(this.rec1.raw.data[0].id, this.data1.id); + } +}));