@@ -308,7 +308,7 @@ describe('42. dataTypeRaw.js', function() {
308
308
309
309
} ) // 42.3
310
310
311
- describe . skip ( '42.4 in PL/SQL, the maximum size is 32767' , function ( ) {
311
+ describe ( '42.4 in PL/SQL, the maximum size is 32767' , function ( ) {
312
312
313
313
var proc =
314
314
"CREATE OR REPLACE PROCEDURE oracledb_testraw (p_in IN RAW, p_out OUT RAW) " +
@@ -337,27 +337,83 @@ describe('42. dataTypeRaw.js', function() {
337
337
) ;
338
338
} )
339
339
340
- it ( '42.4.1 when data length is 200' , function ( done ) {
341
- var buf = assist . createBuffer ( 2 ) ;
340
+ it ( '42.4.1 when data length is less than maxSize' , function ( done ) {
341
+ var size = 5 ;
342
+ var buf = assist . createBuffer ( size ) ;
342
343
343
344
connection . execute (
344
345
"BEGIN oracledb_testraw(:i, :o); END;" ,
345
346
{
346
347
i : { type : oracledb . BUFFER , dir : oracledb . BIND_IN , val : buf } ,
347
- o : { type : oracledb . BUFFER , dir : oracledb . BIND_OUT , maxSize : 20 }
348
+ o : { type : oracledb . BUFFER , dir : oracledb . BIND_OUT , maxSize : 10 }
348
349
} ,
349
- /* ORA-06502: PL/SQL: numeric or value error: raw variable length too long */
350
350
function ( err , result ) {
351
351
should . not . exist ( err ) ;
352
- // console.log(result);
353
- //(result.outBinds.o.length).should.be.exactly(200);
354
- // console.log(result.outBinds.o.length);
355
- console . log ( Buffer . isBuffer ( result . outBinds . o ) ) ;
352
+
353
+ ( Buffer . isBuffer ( result . outBinds . o ) ) . should . equal ( true , "Error: the bind out data is not a Buffer" ) ;
354
+ ( result . outBinds . o . length ) . should . be . exactly ( size ) ;
356
355
done ( ) ;
357
356
}
358
357
) ;
359
358
} )
360
359
360
+ it ( '42.4.2 when data length is 32767' , function ( done ) {
361
+ var size = 32767 ;
362
+ var buf = assist . createBuffer ( size ) ;
363
+
364
+ connection . execute (
365
+ "BEGIN oracledb_testraw(:i, :o); END;" ,
366
+ {
367
+ i : { type : oracledb . BUFFER , dir : oracledb . BIND_IN , val : buf } ,
368
+ o : { type : oracledb . BUFFER , dir : oracledb . BIND_OUT , maxSize : 32767 }
369
+ } ,
370
+ function ( err , result ) {
371
+ should . not . exist ( err ) ;
372
+
373
+ ( Buffer . isBuffer ( result . outBinds . o ) ) . should . equal ( true , "Error: the bind out data is not a Buffer" ) ;
374
+ ( result . outBinds . o . length ) . should . be . exactly ( size ) ;
375
+ done ( ) ;
376
+ }
377
+ ) ;
378
+ } )
379
+
380
+ it ( '42.4.3 when data length greater than maxSize' , function ( done ) {
381
+ var size = 32800 ;
382
+ var buf = assist . createBuffer ( size ) ;
383
+
384
+ connection . execute (
385
+ "BEGIN oracledb_testraw(:i, :o); END;" ,
386
+ {
387
+ i : { type : oracledb . BUFFER , dir : oracledb . BIND_IN , val : buf } ,
388
+ o : { type : oracledb . BUFFER , dir : oracledb . BIND_OUT , maxSize : 32767 }
389
+ } ,
390
+ function ( err , result ) {
391
+ should . exist ( err ) ;
392
+ // ORA-01460: unimplemented or unreasonable conversion requested
393
+ ( err . message ) . should . startWith ( 'ORA-01460' ) ;
394
+ done ( ) ;
395
+ }
396
+ ) ;
397
+ } )
398
+
399
+ it ( '42.4.4 when maxSize is greater than 32767' , function ( done ) {
400
+ var size = 32800 ;
401
+ var buf = assist . createBuffer ( size ) ;
402
+
403
+ connection . execute (
404
+ "BEGIN oracledb_testraw(:i, :o); END;" ,
405
+ {
406
+ i : { type : oracledb . BUFFER , dir : oracledb . BIND_IN , val : buf } ,
407
+ o : { type : oracledb . BUFFER , dir : oracledb . BIND_OUT , maxSize : 40000 }
408
+ } ,
409
+ function ( err , result ) {
410
+ should . exist ( err ) ;
411
+ // ORA-01460: unimplemented or unreasonable conversion requested
412
+ ( err . message ) . should . startWith ( 'ORA-01460' ) ;
413
+ done ( ) ;
414
+ }
415
+ ) ;
416
+ } )
361
417
} ) // 42.4
362
418
363
- } )
419
+ } )
0 commit comments