source: Dev/trunk/src/client/dojo/tests/store/DataStore.js

Last change on this file was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 2.0 KB
Line 
1define(["doh", "dojo/store/DataStore", "dojo/data/ItemFileReadStore", "dojo/data/ItemFileWriteStore"],
2        function(doh, DataStore, ItemFileReadStore, ItemFileWriteStore){
3
4        var two = {id: 2, name: "two", even: true, prime: true},
5                        four = {id: 4, name: "four", even: true, prime: false};
6       
7        var dataStore = new ItemFileWriteStore({data:{
8                items: [
9                        {id: 1, name: "one", prime: false},
10                        {id: 2, name: "two", even: true, prime: true},
11                        {id: 3, name: "three", prime: true},
12                        {id: 4, name: "four", even: true, prime: false},
13                        {id: 5, name: "five", prime: true,
14                                children:[{_reference:1}, {_reference:2}, {_reference:3}]}
15                ],
16                identifier:"id"
17        }});
18        dataStore.fetchItemByIdentity({identity:null});
19        var store = new DataStore({store:dataStore});
20        doh.register("dojo.tests.store.DataStore",
21                [
22                        function testGet(t){
23                                t.is(store.get(1).name, "one");
24                                t.is(store.get(4).name, "four");
25                                t.t(store.get(5).prime);
26                                t.is(store.get(5).children[1].name, "two");
27                        },
28                        function testQuery1(t){
29                                var d = new doh.Deferred();
30                                store.query({prime: true}).then(d.getTestCallback(function(results){
31                                        t.is(results.length, 3);
32                                        t.is(results[2].children[2].name, "three");
33                                }));
34                                return d;
35                        },
36                        function testQuery2(t){
37                                var d = new doh.Deferred();
38                                var result = store.query({even: true});
39                                result.map(d.getTestErrback(function(object){
40                                        for(var i in object){
41                                                t.is(object[i], (object.id == 2 ? two : four)[i], "map of " + i);
42                                        }
43                                }));
44                                result.then(d.getTestCallback(function(results){
45                                        t.is("four", results[1].name, "then");
46                                }));
47                                return d;
48                        },
49                        function testPutUpdate(t){
50                                var four = store.get(4);
51                                four.square = true;
52                                store.put(four);
53                                four = store.get(4);
54                                t.t(four.square);
55                        },
56                        function testPutNew(t){
57                                store.put({
58                                        id: 6,
59                                        perfect: true
60                                });
61                                t.t(store.get(6).perfect);
62                        },
63                        function testNoWriteFeature(t){
64                                var readOnlyStore = new DataStore({store:new ItemFileReadStore({})});
65                                t.f(readOnlyStore.put);
66                        }
67                ]
68        );
69});
Note: See TracBrowser for help on using the repository browser.