UNPKG

jsdk-offical

Version:

JSDK is the most comprehensive TypeScript framework, like JDK.

145 lines (120 loc) 5.37 kB
/// <reference path="../../dist/jsdk.d.ts" /> /// <reference path="model.ts" /> @klass('ListPerson') class ListPerson extends Model { static DEFAULT_FIELDS = [ { name: 'id', type: 'int'}, { name: 'name', nameMapping: 'field1', type: 'string' }, { name: 'age', nameMapping: 'field2', type: 'float', defaultValue: 99.99 } ] } module JS { export namespace test { @klass('JS.test.ListModelTest') export class ListModelTest extends TestCase { private persons: ListModel; protected setUp() { this.persons = new ListModel().modelKlass(Person); } test1() { this.persons.add({ code: 1001, name: 'Arthur' }); this.persons.add(new Person().setData({ code: 2001, name: 'Bill' })); Assert.equal(2, this.persons.size()); this.persons.add([ { code: 3001, name: 'Smith' }, { code: 4001, name: 'David' } ]); Assert.equal(4, this.persons.size()); Assert.equal('David', this.persons.getRowModel<Person>(3).get('name')); } test2() { this.persons.insert(0, { code: 1001, name: 'Arthur' }); Assert.equal(1, this.persons.size()); this.persons.insert(0, [ { code: 3001, name: 'Smith' }, { code: 4001, name: 'David' } ]); Assert.equal(3, this.persons.size()); Assert.equal('Smith', this.persons.getRow(0)['name']); Assert.equal('David', this.persons.getRowModel<Person>(1).get('name')); } test3() { this.persons.insert(1, [ { code: 3001, name: 'Smith' }, { code: 4001, name: 'David' }, { code: 5001, name: 'Xman' }, { code: 6001, name: 'Zoro' } ]); Assert.equal(2, this.persons.indexOfId(5001)); this.persons.clear(); Assert.equal(0, this.persons.size()); Assert.true(this.persons.isEmpty()); } test4() { this.persons.insert(0, [ { code: 3001, name: 'Smith' }, { code: 4001, name: 'David' }, { code: 5001, name: 'Xman' }, { code: 6001, name: 'Zoro' } ]); this.persons.removeAt(0); Assert.equal(3, this.persons.size()); Assert.equal('David', this.persons.getRowModel<Person>(0).get('name')); this.persons.removeAt(1); Assert.equal(2, this.persons.size()); Assert.equal('David', this.persons.getRowModel<Person>(0).get('name')); this.persons.insert(0, [ { code: 3001, name: 'Smith' } ]); Assert.equal(3, this.persons.size()); Assert.equal('Smith', this.persons.getRowModel<Person>(0).get('name')); Assert.equal('David', this.persons.getRowModel<Person>(1).get('name')); Assert.equal('Zoro', this.persons.getRowModel<Person>(2).get('name')); } test5() { this.persons.iniData([ { code: 3001, name: 'Smith' }, { code: 4001, name: 'David' }, { code: 5001, name: 'Xman' }, { code: 6001, name: 'Zoro' } ]); Assert.equal(4, this.persons.iniData().length); Assert.equal(0, this.persons.size()); this.persons.setData([ { code: 3001, name: 'Smith' }, { code: 4001, name: 'David' } ]); Assert.equal(2, this.persons.getData().length); Assert.equal(2, this.persons.size()); this.persons.reset(); Assert.equal(4, this.persons.getData().length); Assert.equal(4, this.persons.size()); this.persons.clear(); Assert.equal(null, this.persons.getData()); Assert.equal(4, this.persons.iniData().length); } test6() { let persons = new ListModel().modelKlass(ListPerson); persons.load('test-data/persons-list.json').then((result) => { Assert.equal(3, result.count()); Assert.equal('Smith', persons.getRowModel<ListPerson>(2).get('name')); }) } test7() { let persons = new ListModel({ sorters: [{ field:'gmtCreated' },{ field:'name', dir:'asc' }] }).modelKlass(ListPerson); persons.addSorter('name', 'desc'); persons.load('test-data/persons-list.json').then((result) => { Assert.equal(3, result.count()); Assert.equal('Smith', persons.getRowModel<ListPerson>(2).get('name')); }) } } } }