//>>built define("dstore/tests/Store",["../Store","dojo/_base/declare","dojo/_base/lang","intern!object","intern/chai!assert"],function(e,f,m,k,b){var n=f(null,{constructor:function(a){f.safeMixin(this,a)}}),d;k({name:"dstore Store",beforeEach:function(){d=new e},"getIdentity and _setIdentity":{"direct property access and assignment":function(){var a={id:"default","custom-id":"custom"};b.strictEqual(d.getIdentity(a),"default");d._setIdentity(a,"assigned-id");b.strictEqual(a.id,"assigned-id");b.strictEqual(d.getIdentity(a), a.id);d.idProperty="custom-id";b.strictEqual(d.getIdentity(a),"custom");d._setIdentity(a,"assigned-id");b.strictEqual(a["custom-id"],"assigned-id");b.strictEqual(d.getIdentity(a),a["custom-id"])},"getter and setter":function(){var a={_properties:{id:"default","custom-id":"custom"},get:function(a){return this._properties[a]},set:function(a,b){this._properties[a]=b}};b.strictEqual(d.getIdentity(a),"default");d._setIdentity(a,"assigned-id");b.strictEqual(a._properties.id,"assigned-id");b.strictEqual(d.getIdentity(a), a._properties.id);d.idProperty="custom-id";b.strictEqual(d.getIdentity(a),"custom");d._setIdentity(a,"assigned-id");b.strictEqual(a._properties["custom-id"],"assigned-id");b.strictEqual(d.getIdentity(a),a._properties["custom-id"])}},filter:function(){var a={prop1:"one"},c=[{type:"filter",arguments:[a],normalizedArguments:[{type:"eq",args:{0:"prop1",1:"one"}}]}],h=function(){},l=c.concat({type:"filter",arguments:[h],normalizedArguments:[{type:"function",args:[h]}]}),a=d.filter(a);b.equal(JSON.stringify(a.queryLog), JSON.stringify(c));a=a.filter(h);b.equal(JSON.stringify(a.queryLog),JSON.stringify(l))},sort:function(){var a={property:"prop1",descending:!0},c=[a,{property:"prop2"}],h=function(){},l=[{type:"sort",arguments:[a.property,a.descending],normalizedArguments:[[a]]}],e=[{type:"sort",arguments:[a],normalizedArguments:[[a]]}],f=e.concat({type:"sort",arguments:[c],normalizedArguments:[[a,m.mixin({descending:!1},c[1])]]}),k=f.concat({type:"sort",arguments:[h],normalizedArguments:[h]}),g;g=d.sort(a.property, a.descending);b.deepEqual(g.queryLog,l);g=d.sort(a);b.deepEqual(g.queryLog,e);g=g.sort(c);b.deepEqual(g.queryLog,f);g=g.sort(h);b.deepEqual(g.queryLog,k)},restore:function(){var a=f(n,{_restore:function(a){a=new a(this);a.restored=!0;return a}}),c=(new e({Model:a}))._restore({foo:"original"});b.strictEqual(c.foo,"original");b.strictEqual(c.restored,!0);b.isTrue(c instanceof a)},events:function(){var a=[],c=[],d=new (f(e,{put:function(b){a.push("put");return b},add:function(b){a.push("add");return b}, remove:function(b){a.push("remove")}}));d.on("add",function(a){c.push(a.type)});d.on("update, delete",function(a){c.push(a.type)});d.put({});d.add({});d.remove(1);b.deepEqual(a,["put","add","remove"]);b.deepEqual(c,["update","add","delete"])},"events with beforeId":function(){var a=new e,c=[];a.on("add, update",function(a){c.push(a.beforeId)});a.add({},{beforeId:123});a.put({},{beforeId:321});b.deepEqual(c,[123,321])},"emit should catch errors thrown by listeners":function(){var a=new e,c=m.hitch(a, "emit","test-event");b.doesNotThrow(c);a.on("test-event",function(){throw Error("listener error");});b.doesNotThrow(c)},forEach:function(){var a=new (f(e,{fetch:function(){return[0,1,2]}})),c=[];a.forEach(function(d,e,f){b.strictEqual(d,e);c.push(d);b.strictEqual(f,a)});b.deepEqual(c,[0,1,2])},"extends declare-based Model constructors and adds a _store reference on the prototype":function(){var a=f(null),c=new e({Model:a});b.notStrictEqual(c.Model,a);b.instanceOf(new c.Model,a)},"does not extend Model constructors not based on declare":function(){function a(){} var c=new e({Model:a});b.strictEqual(c.Model,a)}})}); //# sourceMappingURL=Store.js.map