@@ -32,6 +32,7 @@ describe('long.test.js', function () {
3232
3333 it ( 'should read long 300' , function ( ) {
3434 hessian . decode ( longBuffer ) . should . equal ( 300 ) ;
35+ hessian . decode ( longBuffer , true ) . should . eql ( { $class : 'long' , $ : 300 } ) ;
3536 } ) ;
3637
3738 it ( 'should write long 300' , function ( ) {
@@ -53,14 +54,19 @@ describe('long.test.js', function () {
5354 it ( 'should write and read equal java impl' , function ( ) {
5455 hessian . encode ( java . long ( 0 ) , '1.0' ) . should . eql ( utils . bytes ( 'v1/long/0' ) ) ;
5556 hessian . decode ( utils . bytes ( 'v1/long/0' ) ) . should . equal ( 0 ) ;
57+ hessian . decode ( utils . bytes ( 'v1/long/0' ) , true ) . should . eql ( { $class : 'long' , $ : 0 } ) ;
5658 hessian . encode ( java . long ( - 8 ) , '1.0' ) . should . eql ( utils . bytes ( 'v1/long/-8' ) ) ;
5759 hessian . decode ( utils . bytes ( 'v1/long/-8' ) ) . should . equal ( - 8 ) ;
60+ hessian . decode ( utils . bytes ( 'v1/long/-8' ) , true ) . should . eql ( { $class : 'long' , $ : - 8 } ) ;
5861 hessian . encode ( java . long ( - 7 ) , '1.0' ) . should . eql ( utils . bytes ( 'v1/long/-7' ) ) ;
5962 hessian . decode ( utils . bytes ( 'v1/long/-7' ) ) . should . equal ( - 7 ) ;
63+ hessian . decode ( utils . bytes ( 'v1/long/-7' ) , true ) . should . eql ( { $class : 'long' , $ : - 7 } ) ;
6064 hessian . encode ( java . long ( 15 ) , '1.0' ) . should . eql ( utils . bytes ( 'v1/long/15' ) ) ;
6165 hessian . decode ( utils . bytes ( 'v1/long/15' ) ) . should . equal ( 15 ) ;
66+ hessian . decode ( utils . bytes ( 'v1/long/15' ) , true ) . should . eql ( { $class : 'long' , $ : 15 } ) ;
6267 hessian . encode ( java . long ( 14 ) , '1.0' ) . should . eql ( utils . bytes ( 'v1/long/14' ) ) ;
6368 hessian . decode ( utils . bytes ( 'v1/long/14' ) ) . should . equal ( 14 ) ;
69+ hessian . decode ( utils . bytes ( 'v1/long/14' ) , true ) . should . eql ( { $class : 'long' , $ : 14 } ) ;
6470 hessian . encode ( java . long ( - 9 ) , '1.0' ) . should . eql ( utils . bytes ( 'v1/long/-9' ) ) ;
6571 hessian . decode ( utils . bytes ( 'v1/long/-9' ) ) . should . equal ( - 9 ) ;
6672 hessian . encode ( java . long ( 16 ) , '1.0' ) . should . eql ( utils . bytes ( 'v1/long/16' ) ) ;
@@ -81,6 +87,7 @@ describe('long.test.js', function () {
8187 hessian . decode ( utils . bytes ( 'v1/long/-2049' ) ) . should . equal ( - 2049 ) ;
8288 hessian . encode ( java . long ( - 2147483648 ) , '1.0' ) . should . eql ( utils . bytes ( 'v1/long/-2147483648' ) ) ;
8389 hessian . decode ( utils . bytes ( 'v1/long/-2147483648' ) ) . should . equal ( - 2147483648 ) ;
90+ hessian . decode ( utils . bytes ( 'v1/long/-2147483648' ) , true ) . should . eql ( { $class : 'long' , $ : - 2147483648 } ) ;
8491 hessian . encode ( java . long ( - 2147483647 ) , '1.0' ) . should . eql ( utils . bytes ( 'v1/long/-2147483647' ) ) ;
8592 hessian . decode ( utils . bytes ( 'v1/long/-2147483647' ) ) . should . equal ( - 2147483647 ) ;
8693 hessian . encode ( java . long ( 2147483647 ) , '1.0' ) . should . eql ( utils . bytes ( 'v1/long/2147483647' ) ) ;
@@ -89,36 +96,43 @@ describe('long.test.js', function () {
8996 hessian . decode ( utils . bytes ( 'v1/long/2147483646' ) ) . should . equal ( 2147483646 ) ;
9097 hessian . encode ( java . long ( 2147483648 ) , '1.0' ) . should . eql ( utils . bytes ( 'v1/long/2147483648' ) ) ;
9198 hessian . decode ( utils . bytes ( 'v1/long/2147483648' ) ) . should . equal ( 2147483648 ) ;
99+ hessian . decode ( utils . bytes ( 'v1/long/2147483648' ) , true ) . should . eql ( { $class : 'long' , $ : 2147483648 } ) ;
92100 } ) ;
93101
94102 describe ( 'v2.0' , function ( ) {
95103 it ( 'should read compact long' , function ( ) {
96104 hessian . decode ( new Buffer ( [ 0xe0 ] ) , '2.0' ) . should . equal ( 0 ) ;
97105 hessian . decode ( new Buffer ( [ 0xd8 ] ) , '2.0' ) . should . equal ( - 8 ) ;
98106 hessian . decode ( new Buffer ( [ 0xef ] ) , '2.0' ) . should . equal ( 15 ) ;
107+ hessian . decode ( new Buffer ( [ 0xef ] ) , '2.0' , true ) . should . eql ( { $class : 'long' , $ : 15 } ) ;
99108
100109 hessian . decode ( new Buffer ( [ 0xf8 , 0x00 ] ) , '2.0' ) . should . equal ( 0 ) ;
101110 hessian . decode ( new Buffer ( [ 0xf0 , 0x00 ] ) , '2.0' ) . should . equal ( - 2048 ) ;
111+ hessian . decode ( new Buffer ( [ 0xf0 , 0x00 ] ) , '2.0' , true ) . should . eql ( { $class : 'long' , $ : - 2048 } ) ;
102112 hessian . decode ( new Buffer ( [ 0xf7 , 0x00 ] ) , '2.0' ) . should . equal ( - 256 ) ;
103113 hessian . decode ( new Buffer ( [ 0xff , 0xff ] ) , '2.0' ) . should . equal ( 2047 ) ;
104114
105115 hessian . decode ( new Buffer ( [ 0x3c , 0x00 , 0x00 ] ) , '2.0' ) . should . equal ( 0 ) ;
106116 hessian . decode ( new Buffer ( [ 0x38 , 0x00 , 0x00 ] ) , '2.0' ) . should . equal ( - 262144 ) ;
107117 hessian . decode ( new Buffer ( [ 0x3f , 0xff , 0xff ] ) , '2.0' ) . should . equal ( 262143 ) ;
118+ hessian . decode ( new Buffer ( [ 0x3f , 0xff , 0xff ] ) , '2.0' , true ) . should . eql ( { $class : 'long' , $ : 262143 } ) ;
108119
109120 // four octet longs
110121 hessian . decode ( new Buffer ( [ 0x59 , 0x00 , 0x00 , 0x00 , 0x00 ] ) , '2.0' ) . should . equal ( 0 ) ;
111122 hessian . decode ( new Buffer ( [ 0x59 , 0x00 , 0x00 , 0x01 , 0x2c ] ) , '2.0' ) . should . equal ( 300 ) ;
112123 hessian . decode ( new Buffer ( [ 0x59 , 0x7f , 0xff , 0xff , 0xff ] ) , '2.0' ) . should . equal ( 2147483647 ) ;
113124 hessian . decode ( new Buffer ( [ 0x59 , 0x80 , 0x00 , 0x00 , 0x00 ] ) , '2.0' ) . should . equal ( - 2147483648 ) ;
125+ hessian . decode ( new Buffer ( [ 0x59 , 0x80 , 0x00 , 0x00 , 0x00 ] ) , '2.0' , true ) . should . eql ( { $class : 'long' , $ : - 2147483648 } ) ;
114126
115127 hessian . decode ( new Buffer ( [ 0x4c , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ] ) , '2.0' ) . should . equal ( 0 ) ;
116128 hessian . decode ( new Buffer ( [ 0x4c , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x2c ] ) , '2.0' ) . should . equal ( 300 ) ;
117129 hessian . decode ( new Buffer ( [ 0x4c , 0x00 , 0x00 , 0x00 , 0x00 , 0x7f , 0xff , 0xff , 0xff ] ) , '2.0' ) . should . equal ( 2147483647 ) ;
130+ hessian . decode ( new Buffer ( [ 0x4c , 0x00 , 0x00 , 0x00 , 0x00 , 0x7f , 0xff , 0xff , 0xff ] ) , '2.0' , true ) . should . eql ( { $class : 'long' , $ : 2147483647 } ) ;
118131 } ) ;
119132
120133 it ( 'should read normal long' , function ( ) {
121134 hessian . decode ( new Buffer ( [ 0x4c , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 ] ) , '2.0' ) . should . equal ( 2147483648 ) ;
135+ hessian . decode ( new Buffer ( [ 0x4c , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 ] ) , '2.0' , true ) . should . eql ( { $class : 'long' , $ : 2147483648 } ) ;
122136 } ) ;
123137
124138 it ( 'should write compact long' , function ( ) {
@@ -353,45 +367,64 @@ describe('long.test.js', function () {
353367 it ( 'should write and read equal java impl' , function ( ) {
354368 hessian . encode ( java . long ( 0 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/0' ) ) ;
355369 hessian . decode ( utils . bytes ( 'v2/long/0' ) , '2.0' ) . should . equal ( 0 ) ;
370+ hessian . decode ( utils . bytes ( 'v2/long/0' ) , '2.0' , true ) . should . eql ( { $ : 0 , $class : 'long' } ) ;
356371 hessian . encode ( java . long ( - 8 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/-8' ) ) ;
357372 hessian . decode ( utils . bytes ( 'v2/long/-8' ) , '2.0' ) . should . equal ( - 8 ) ;
373+ hessian . decode ( utils . bytes ( 'v2/long/-8' ) , '2.0' , true ) . should . eql ( { $ : - 8 , $class : 'long' } ) ;
358374 hessian . encode ( java . long ( - 7 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/-7' ) ) ;
359375 hessian . decode ( utils . bytes ( 'v2/long/-7' ) , '2.0' ) . should . equal ( - 7 ) ;
376+ hessian . decode ( utils . bytes ( 'v2/long/-7' ) , '2.0' , true ) . should . eql ( { $ : - 7 , $class : 'long' } ) ;
360377 hessian . encode ( java . long ( 15 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/15' ) ) ;
361378 hessian . decode ( utils . bytes ( 'v2/long/15' ) , '2.0' ) . should . equal ( 15 ) ;
379+ hessian . decode ( utils . bytes ( 'v2/long/15' ) , '2.0' , true ) . should . eql ( { $ : 15 , $class : 'long' } ) ;
362380 hessian . encode ( java . long ( 14 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/14' ) ) ;
363381 hessian . decode ( utils . bytes ( 'v2/long/14' ) , '2.0' ) . should . equal ( 14 ) ;
382+ hessian . decode ( utils . bytes ( 'v2/long/14' ) , '2.0' , true ) . should . eql ( { $ : 14 , $class : 'long' } ) ;
364383 hessian . encode ( java . long ( - 9 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/-9' ) ) ;
365384 hessian . decode ( utils . bytes ( 'v2/long/-9' ) , '2.0' ) . should . equal ( - 9 ) ;
385+ hessian . decode ( utils . bytes ( 'v2/long/-9' ) , '2.0' , true ) . should . eql ( { $ : - 9 , $class : 'long' } ) ;
366386 hessian . encode ( java . long ( 16 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/16' ) ) ;
367387 hessian . decode ( utils . bytes ( 'v2/long/16' ) , '2.0' ) . should . equal ( 16 ) ;
388+ hessian . decode ( utils . bytes ( 'v2/long/16' ) , '2.0' , true ) . should . eql ( { $ : 16 , $class : 'long' } ) ;
368389 hessian . encode ( java . long ( 255 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/255' ) ) ;
369390 hessian . encode ( java . long ( Long . fromNumber ( 255 ) ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/255' ) ) ;
370391 hessian . encode ( Long . fromNumber ( 255 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/255' ) ) ;
371392
372393 hessian . decode ( utils . bytes ( 'v2/long/255' ) , '2.0' ) . should . equal ( 255 ) ;
394+ hessian . decode ( utils . bytes ( 'v2/long/255' ) , '2.0' , true ) . should . eql ( { $ : 255 , $class : 'long' } ) ;
373395 hessian . encode ( java . long ( - 2048 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/-2048' ) ) ;
374396 hessian . decode ( utils . bytes ( 'v2/long/-2048' ) , '2.0' ) . should . equal ( - 2048 ) ;
397+ hessian . decode ( utils . bytes ( 'v2/long/-2048' ) , '2.0' , true ) . should . eql ( { $ : - 2048 , $class : 'long' } ) ;
375398 hessian . encode ( java . long ( 2047 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/2047' ) ) ;
376399 hessian . decode ( utils . bytes ( 'v2/long/2047' ) , '2.0' ) . should . equal ( 2047 ) ;
400+ hessian . decode ( utils . bytes ( 'v2/long/2047' ) , '2.0' , true ) . should . eql ( { $ : 2047 , $class : 'long' } ) ;
377401 hessian . encode ( java . long ( 262143 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/262143' ) ) ;
378402 hessian . decode ( utils . bytes ( 'v2/long/262143' ) , '2.0' ) . should . equal ( 262143 ) ;
403+ hessian . decode ( utils . bytes ( 'v2/long/262143' ) , '2.0' , true ) . should . eql ( { $ : 262143 , $class : 'long' } ) ;
379404 hessian . encode ( java . long ( - 262144 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/-262144' ) ) ;
380405 hessian . decode ( utils . bytes ( 'v2/long/-262144' ) , '2.0' ) . should . equal ( - 262144 ) ;
406+ hessian . decode ( utils . bytes ( 'v2/long/-262144' ) , '2.0' , true ) . should . eql ( { $ : - 262144 , $class : 'long' } ) ;
381407 hessian . encode ( java . long ( 2048 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/2048' ) ) ;
382408 hessian . decode ( utils . bytes ( 'v2/long/2048' ) , '2.0' ) . should . equal ( 2048 ) ;
409+ hessian . decode ( utils . bytes ( 'v2/long/2048' ) , '2.0' , true ) . should . eql ( { $ : 2048 , $class : 'long' } ) ;
383410 hessian . encode ( java . long ( - 2049 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/-2049' ) ) ;
384411 hessian . decode ( utils . bytes ( 'v2/long/-2049' ) , '2.0' ) . should . equal ( - 2049 ) ;
412+ hessian . decode ( utils . bytes ( 'v2/long/-2049' ) , '2.0' , true ) . should . eql ( { $ : - 2049 , $class : 'long' } ) ;
385413 hessian . encode ( java . long ( - 2147483648 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/-2147483648' ) ) ;
386414 hessian . decode ( utils . bytes ( 'v2/long/-2147483648' ) , '2.0' ) . should . equal ( - 2147483648 ) ;
415+ hessian . decode ( utils . bytes ( 'v2/long/-2147483648' ) , '2.0' , true ) . should . eql ( { $ : - 2147483648 , $class : 'long' } ) ;
387416 hessian . encode ( java . long ( - 2147483647 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/-2147483647' ) ) ;
388417 hessian . decode ( utils . bytes ( 'v2/long/-2147483647' ) , '2.0' ) . should . equal ( - 2147483647 ) ;
418+ hessian . decode ( utils . bytes ( 'v2/long/-2147483647' ) , '2.0' , true ) . should . eql ( { $ : - 2147483647 , $class : 'long' } ) ;
389419 hessian . encode ( java . long ( 2147483647 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/2147483647' ) ) ;
390420 hessian . decode ( utils . bytes ( 'v2/long/2147483647' ) , '2.0' ) . should . equal ( 2147483647 ) ;
421+ hessian . decode ( utils . bytes ( 'v2/long/2147483647' ) , '2.0' , true ) . should . eql ( { $ : 2147483647 , $class : 'long' } ) ;
391422 hessian . encode ( java . long ( 2147483646 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/2147483646' ) ) ;
392423 hessian . decode ( utils . bytes ( 'v2/long/2147483646' ) , '2.0' ) . should . equal ( 2147483646 ) ;
424+ hessian . decode ( utils . bytes ( 'v2/long/2147483646' ) , '2.0' , true ) . should . eql ( { $ : 2147483646 , $class : 'long' } ) ;
393425 hessian . encode ( java . long ( 2147483648 ) , '2.0' ) . should . eql ( utils . bytes ( 'v2/long/2147483648' ) ) ;
394426 hessian . decode ( utils . bytes ( 'v2/long/2147483648' ) , '2.0' ) . should . equal ( 2147483648 ) ;
427+ hessian . decode ( utils . bytes ( 'v2/long/2147483648' ) , '2.0' , true ) . should . eql ( { $ : 2147483648 , $class : 'long' } ) ;
395428 } ) ;
396429
397430 it ( 'should read 1.0 bin as well' , function ( ) {
0 commit comments