1 | define(["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 | }); |
---|