source: Dev/trunk/src/client/dojo/tests/data/ObjectStore.js

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

Added Dojo 1.9.3 release.

File size: 3.8 KB
Line 
1dojo.provide("dojo.tests.data.ObjectStore");
2dojo.require("dojo.data.ObjectStore");
3dojo.require("dojo.store.JsonRest");
4dojo.require("dojo.store.Memory");
5
6(function(){
7var restStore = new dojo.store.JsonRest({target: dojo.moduleUrl("dojo.tests.store", "/")});
8var memoryStore = new dojo.store.Memory({
9        data: [
10                {id: 1, name: "one", prime: false},
11                {id: 2, name: "two", even: true, prime: true},
12                {id: 3, name: "three", prime: true},
13                {id: 4, name: "four", even: true, prime: false},
14                {id: 5, name: "five", prime: true}
15        ]
16});
17
18var dataStore = new dojo.data.ObjectStore({objectStore: restStore});
19var memoryDataStore = new dojo.data.ObjectStore({objectStore: memoryStore});
20tests.register("tests.data.ObjectStore",
21        [
22                function testFetchByIdentity(t){
23                        var d = new doh.Deferred();
24                        dataStore.fetchItemByIdentity({identity: "node1.1", onItem: function(object){
25                                t.is(object.name, "node1.1");
26                                t.is(object.someProperty, "somePropertyA1");
27                                d.callback(true);
28                        }});
29                        return d;
30                },
31                function testQuery(t){
32                        var d = new doh.Deferred();
33                        dataStore.fetch({query:"treeTestRoot", onComplete: function(results){
34                                var object = results[0];
35                                t.is(object.name, "node1");
36                                t.is(object.someProperty, "somePropertyA");
37                                d.callback(true);
38                        }});
39                        return d;
40                },
41                function testNewItem(t){
42                        var newItem = memoryDataStore.newItem({
43                                foo: "bar",
44                                id: Math.random()
45                        });
46                        memoryDataStore.setValue(newItem, "prop1", 1);
47                        memoryDataStore.save();
48                        memoryDataStore.setValue(newItem, "prop1", 10);
49                        memoryDataStore.revert();
50                        t.is(memoryDataStore.getValue(newItem, "prop1"), 1);
51                        memoryDataStore.fetchItemByIdentity({
52                                identity: memoryDataStore.getIdentity(newItem),
53                                onItem: function(item){
54                                        t.is(memoryDataStore.getValue(item, "foo"), "bar");
55                                        memoryDataStore.setValue(newItem, "prop2", 2);
56                                        t.is(memoryDataStore.getValue(item, "prop1"), 1);
57                                        t.is(memoryDataStore.getValue(item, "prop2"), 2);
58                                }});
59                        var newItem = memoryDataStore.newItem({
60                                foo: "bar",
61                                id: Math.random()
62                        });
63                        memoryDataStore.deleteItem(newItem);
64                        memoryDataStore.save();
65                        memoryDataStore.fetchItemByIdentity({
66                                identity: memoryDataStore.getIdentity(newItem),
67                                onItem: function(item){
68                                        t.is(item, null);
69                                }
70                        });
71                },
72                function testMemoryQuery(t){
73                        var d = new doh.Deferred();
74                        memoryDataStore.fetch({query:{name:"one"}, onComplete: function(results){
75                                var object = results[0];
76                                t.is(results.length, 1);
77                                t.is(object.name, "one");
78                                d.callback(true);
79                        }});
80                        return d;
81                },
82                function testMemoryQueryEmpty(t){
83                        var d = new doh.Deferred();
84                        memoryDataStore.fetch({query:{name:"o"}, onComplete: function(results){
85                                t.is(results.length, 0);
86                                d.callback(true);
87                        }});
88                        return d;
89                },
90                function testMemoryQueryWithWildcard(t){
91                        var d = new doh.Deferred();
92                        memoryDataStore.fetch({query:{name:"f*"}, onComplete: function(results){
93                                var object = results[0];
94                                t.is(results.length, 2);
95                                t.is(object.name, "four");
96                                d.callback(true);
97                        }});
98                        return d;
99                },
100                function testMemoryQueryWithEscapedWildcard(t){
101                        var d = new doh.Deferred();
102                        memoryDataStore.fetch({query:{name:"s\\*"}, onComplete: function(results){
103                                t.is(results.length, 0);
104                        }});
105                        var newItem = memoryDataStore.newItem({
106                                name: "s*",
107                                id: Math.random()
108                        });
109                        memoryDataStore.save();
110                        memoryDataStore.fetch({query:{name:"s\\*"}, onComplete: function(results){
111                                var object = results[0];
112                                t.is(results.length, 1);
113                                t.is(object.name, "s*");
114                                d.callback(true);
115                        }});
116                        return d;
117                },
118                function testMemoryQueryWithWildcardCaseInsensitive(t){
119                        var d = new doh.Deferred();
120                        memoryDataStore.fetch({query:{name:"F*"}, queryOptions: {ignoreCase: true}, onComplete: function(results){
121                                var object = results[0];
122                                t.is(results.length, 2);
123                                t.is(object.name, "four");
124                                d.callback(true);
125                        }});
126                        return d;
127                }
128        ]
129);
130
131})();
Note: See TracBrowser for help on using the repository browser.