@@ -357,6 +357,90 @@ describe('bacstack - Services layer', function() {
357357 ]
358358 } ) ;
359359 } ) ;
360+
361+ it ( 'should successfully encode and decode a cov-subscription value' , function ( ) {
362+ var buffer = utils . getBuffer ( ) ;
363+ baServices . EncodeReadPropertyAcknowledge ( buffer , { type : 222 , instance : 3 } , 152 , 0xFFFFFFFF , [
364+ { Tag : 111 , Value : {
365+ Recipient : { net : 12 , adr : [ 0 , 1 ] } ,
366+ subscriptionProcessIdentifier : 3 ,
367+ monitoredObjectIdentifier : { type : 2 , instance : 1 } ,
368+ monitoredProperty : { propertyIdentifier : 85 , propertyArrayIndex : 0 } ,
369+ IssueConfirmedNotifications : false ,
370+ TimeRemaining : 5 ,
371+ COVIncrement : 1
372+ } } ,
373+ { Tag : 111 , Value : {
374+ Recipient : { net : 0xFFFF , adr : [ ] } ,
375+ subscriptionProcessIdentifier : 3 ,
376+ monitoredObjectIdentifier : { type : 2 , instance : 1 } ,
377+ monitoredProperty : { propertyIdentifier : 85 , propertyArrayIndex : 5 } ,
378+ IssueConfirmedNotifications : true ,
379+ TimeRemaining : 5
380+ } }
381+ ] ) ;
382+ var result = baServices . DecodeReadPropertyAcknowledge ( buffer . buffer , 0 , buffer . offset ) ;
383+ delete result . len ;
384+ expect ( result ) . to . deep . equal ( {
385+ objectId : {
386+ type : 222 ,
387+ instance : 3
388+ } ,
389+ property : {
390+ propertyArrayIndex : 0xFFFFFFFF ,
391+ propertyIdentifier : 152
392+ } ,
393+ valueList : [
394+ { type : 111 , value : {
395+ recipient : { net : 12 , adr : [ 0 , 1 ] } ,
396+ subscriptionProcessIdentifier : 3 ,
397+ monitoredObjectIdentifier : { type : 2 , instance : 1 } ,
398+ monitoredProperty : { propertyIdentifier : 85 , propertyArrayIndex : 0 } ,
399+ issueConfirmedNotifications : false ,
400+ timeRemaining : 5 ,
401+ covIncrement : 1
402+ } , len : 33 } ,
403+ { type : 111 , value : {
404+ recipient : { net : 0xFFFF , adr : [ ] } ,
405+ subscriptionProcessIdentifier : 3 ,
406+ monitoredObjectIdentifier : { type : 2 , instance : 1 } ,
407+ monitoredProperty : { propertyIdentifier : 85 , propertyArrayIndex : 5 } ,
408+ issueConfirmedNotifications : true ,
409+ timeRemaining : 5 ,
410+ } , len : 27 }
411+ ]
412+ } ) ;
413+ } ) ;
414+
415+ it ( 'should successfully encode and decode a read-access-specification value' , function ( ) {
416+ var buffer = utils . getBuffer ( ) ;
417+ baServices . EncodeReadPropertyAcknowledge ( buffer , { type : 223 , instance : 90000 } , 53 , 0xFFFFFFFF , [
418+ { Tag : 115 , Value : { objectIdentifier : { type : 3 , instance : 0 } , propertyReferences : [ ] } } ,
419+ { Tag : 115 , Value : { objectIdentifier : { type : 3 , instance : 50000 } , propertyReferences : [
420+ { propertyIdentifier : 85 } ,
421+ { propertyIdentifier : 1 , propertyArrayIndex : 2 }
422+ ] } } ,
423+ ] ) ;
424+ var result = baServices . DecodeReadPropertyAcknowledge ( buffer . buffer , 0 , buffer . offset ) ;
425+ delete result . len ;
426+ expect ( result ) . to . deep . equal ( {
427+ objectId : {
428+ type : 223 ,
429+ instance : 90000
430+ } ,
431+ property : {
432+ propertyArrayIndex : 0xFFFFFFFF ,
433+ propertyIdentifier : 53
434+ } ,
435+ valueList : [
436+ { type : 115 , value : { objectIdentifier : { type : 3 , instance : 0 } , propertyReferences : [ ] } , len : 7 } ,
437+ { type : 115 , value : { objectIdentifier : { type : 3 , instance : 50000 } , propertyReferences : [
438+ { propertyIdentifier : 85 , propertyArrayIndex : 0xFFFFFFFF } ,
439+ { propertyIdentifier : 1 , propertyArrayIndex : 2 }
440+ ] } , len : 13 }
441+ ]
442+ } ) ;
443+ } ) ;
360444 } ) ;
361445
362446 describe ( 'ReadPropertyMultipleAcknowledge' , function ( ) {
0 commit comments