@@ -187,22 +187,132 @@ test('Server subscribe client object', function(t) {
187187 t . equal ( objectDataClient . node [ client . token ] . owner , false , 'Server is not owner' ) ;
188188 t . equal ( objectDataServer . node [ nodeClient . token ] . subscribed , false , 'Client is not subscribed' ) ;
189189 t . equal ( objectDataServer . node [ nodeClient . token ] . owner , true , 'Client is owner' ) ;
190+ t . end ( ) ;
191+ } )
192+ } ) ;
193+
194+ test ( 'Server subscribe client object that is from server' , function ( t ) {
195+ var objServer = { test :Math . random ( ) } ,
196+ objClient ;
197+ dopServer . onsubscribe ( function ( ) {
198+ return objServer ;
199+ } ) ;
200+ dopClient . onsubscribe ( function ( ) {
201+ return objClient ;
202+ } ) ;
203+ client . subscribe ( ) . then ( function ( obj ) {
204+ objClient = obj ;
205+ nodeClient . subscribe ( ) . then ( function ( objServer2 ) {
206+ t . notEqual ( objServer2 , dopServer . getObjectProxy ( objServer ) ) ;
207+ t . equal ( dopServer . getObjectId ( objServer2 ) , dopServer . getObjectId ( objServer ) + 1 , 'Different ids' ) ;
208+ t . equal ( objServer2 . hasOwnProperty ( 'test' ) , true , 'obj hasOwnProperty test' ) ;
209+ t . deepEqual ( objServer , objClient ) ;
210+ t . deepEqual ( objServer , objServer2 ) ;
211+ t . deepEqual ( objClient , obj ) ;
212+
213+ var objectDataServer = dopServer . data . object [ dopServer . getObjectId ( objServer ) ] ;
214+ var objectDataServer2 = dopServer . data . object [ dopServer . getObjectId ( objServer2 ) ] ;
215+ var objectDataClient = dopClient . data . object [ dopServer . getObjectId ( objClient ) ] ;
216+ t . equal ( objectDataServer . node [ nodeClient . token ] . subscribed , true , 'Client is subscribed' ) ;
217+ t . equal ( objectDataServer . node [ nodeClient . token ] . owner , false , 'Client is not owner' ) ;
218+ t . equal ( objectDataServer2 . node [ nodeClient . token ] . subscribed , false , 'Client is not subscribed' ) ;
219+ t . equal ( objectDataServer2 . node [ nodeClient . token ] . owner , true , 'Client is owner' ) ;
220+ t . equal ( objectDataClient . node [ client . token ] . subscribed , true , 'Server is subscribed' ) ;
221+ t . equal ( objectDataClient . node [ client . token ] . owner , true , 'Server is not owner' ) ;
190222
223+ t . end ( ) ;
224+ } ) ;
191225 } )
192226} ) ;
193227
194- // test('Server subscribe client object that is from server', function(t) {
195228
196- // });
229+
230+ test ( 'Client subscribe into object that is not register yet' , function ( t ) {
231+ var objServer = { test :Math . random ( ) } ,
232+ objClient = { test :Math . random ( ) } ,
233+ objClientSnap = dopClient . util . merge ( { } , objClient ) ;
234+
235+ t . deepEqual ( objClient , objClientSnap , 'Are equivalent before subcribe' ) ;
236+ t . equal ( dopClient . isRegistered ( objClient ) , false , 'Is not registered' ) ;
237+
238+ dopServer . onsubscribe ( function ( ) {
239+ return objServer ;
240+ } ) ;
241+ client . subscribe ( ) . into ( objClient ) . then ( function ( obj ) {
242+ t . equal ( dopClient . isRegistered ( objClient ) , true , 'Is registered' ) ;
243+ t . notDeepEqual ( objClient , objClientSnap , 'Are not equivalent before subcribe' ) ;
244+ t . deepEqual ( objClient , objServer , 'Are equivalent with server objetc' ) ;
245+ t . equal ( obj , dopClient . getObjectProxy ( objClient ) , 'objClient and obj are the same object' ) ;
246+ t . end ( ) ;
247+ } ) ;
248+ } ) ;
249+
250+
251+
252+ test ( 'Client subscribe into object that is already registered' , function ( t ) {
253+ var objServer = { test :Math . random ( ) } ,
254+ objClient = dopClient . register ( { test :Math . random ( ) } ) ,
255+ objClientSnap = dopClient . util . merge ( { } , objClient ) ;
256+
257+ t . deepEqual ( objClient , objClientSnap , 'Are equivalent before subcribe' ) ;
258+ t . equal ( dopClient . isRegistered ( objClient ) , true , 'Is registered' ) ;
259+
260+ dopServer . onsubscribe ( function ( ) {
261+ return objServer ;
262+ } ) ;
263+ client . subscribe ( ) . into ( objClient ) . then ( function ( obj ) {
264+ t . equal ( dopClient . isRegistered ( obj ) , true , 'Is registered' ) ;
265+ t . notDeepEqual ( objClient , objClientSnap , 'Are not equivalent before subcribe' ) ;
266+ t . deepEqual ( objClient , objServer , 'Are equivalent with server objetc' ) ;
267+ t . equal ( obj , objClient , 'objClient and obj are the same object' ) ;
268+ t . end ( ) ;
269+ } ) ;
270+ } )
271+
272+
273+
274+ test ( 'Server and client subscribe into the same object' , function ( t ) {
275+ var objServer = { test :Math . random ( ) } ,
276+ objClient = { test :Math . random ( ) } ;
277+
278+ dopServer . onsubscribe ( function ( ) {
279+ return objServer ;
280+ } ) ;
281+ dopClient . onsubscribe ( function ( ) {
282+ return objClient ;
283+ } ) ;
284+
285+ client . subscribe ( ) . into ( objClient ) . then ( function ( obj ) {
286+ t . equal ( obj , dopClient . getObjectProxy ( objClient ) , 'Same object client' ) ;
287+ nodeClient . subscribe ( ) . into ( objServer ) . then ( function ( obj2 ) {
288+ t . equal ( obj2 , dopServer . getObjectProxy ( objServer ) , 'Same object server' ) ;
289+ t . deepEqual ( objClient , objServer ) ;
290+ var objectDataServer = dopServer . data . object [ dopServer . getObjectId ( objServer ) ] ;
291+ var objectDataClient = dopClient . data . object [ dopServer . getObjectId ( objClient ) ] ;
292+ t . equal ( objectDataServer . node [ nodeClient . token ] . subscribed , true , 'Client is subscribed' ) ;
293+ t . equal ( objectDataServer . node [ nodeClient . token ] . owner , true , 'Client is owner' ) ;
294+ t . equal ( objectDataClient . node [ client . token ] . subscribed , true , 'Server is subscribed' ) ;
295+ t . equal ( objectDataClient . node [ client . token ] . owner , true , 'Server is not owner' ) ;
296+ t . end ( ) ;
297+ } )
298+ } )
299+ } )
300+
301+
197302
198303
199304
200- // test('Into...', function(t) {});
201305
202306
203307
204308
205309
310+ // test('Multiple Clients subscribe Same object', function(t) {});
311+ // test('Multiple Clients subscribe different objects', function(t) {});
312+ // test('Client2 subscribe Client1 and this subscribe Server', function(t) {});
313+ // test('Circle object subscription', function(t) {});
314+ //
315+ // test('observeProperty', function(t) {
206316
207317 // dopClient.observeProperty(o, 'paco', function(mutation){
208318 // console.log( mutation );
@@ -211,3 +321,4 @@ test('Server subscribe client object', function(t) {
211321 // dopClient.observe(o, function(mutations){
212322 // console.log( mutations );
213323 // })
324+ // })
0 commit comments