@@ -435,32 +435,97 @@ describe('Reader', function() {
435
435
} ) ;
436
436
437
437
438
- it ( 'collection / xsi:type / unknown type', async function ( ) {
438
+ describe ( ' unknown type', function ( ) {
439
439
440
- var datatypeModel = createModel ( [ 'datatype' ] ) ;
440
+ it ( 'single' , async function ( ) {
441
441
442
- // given
443
- var reader = new Reader ( datatypeModel ) ;
444
- var rootHandler = reader . handler ( 'dt:Root' ) ;
442
+ var datatypeModel = createModel ( [ 'datatype' ] ) ;
445
443
446
- var xml =
447
- '<root xmlns="http://datatypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +
448
- '<otherBounds xsi:type="Unknown" y="100" />' +
449
- '</root>' ;
444
+ // given
445
+ var reader = new Reader ( datatypeModel ) ;
446
+ var rootHandler = reader . handler ( 'dt:Root' ) ;
450
447
451
- var err ;
448
+ var xml =
449
+ '<root xmlns="http://datatypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +
450
+ '<bounds xsi:type="Unknown" y="100" />' +
451
+ '</root>' ;
452
452
453
- // when
454
- try {
455
- await reader . fromXML ( xml , rootHandler ) ;
456
- } catch ( _err ) {
457
- err = _err ;
458
- }
453
+ var err ;
459
454
460
- // then
461
- expect ( err ) . to . exist ;
455
+ // when
456
+ try {
457
+ await reader . fromXML ( xml , rootHandler ) ;
458
+ } catch ( _err ) {
459
+ err = _err ;
460
+ }
461
+
462
+ // then
463
+ expect ( err ) . to . exist ;
464
+
465
+ expect ( err . message ) . to . contain ( 'unparsable content <bounds> detected' ) ;
466
+ expect ( err . message ) . to . contain ( 'unknown type <dt:Unknown>' ) ;
467
+ } ) ;
468
+
469
+
470
+ it ( 'single / ns type' , async function ( ) {
471
+
472
+ var datatypeModel = createModel ( [ 'datatype' ] ) ;
473
+
474
+ // given
475
+ var reader = new Reader ( datatypeModel ) ;
476
+ var rootHandler = reader . handler ( 'dt:Root' ) ;
477
+
478
+ var xml =
479
+ '<root xmlns="http://datatypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +
480
+ '<bounds xsi:type="other:Unknown" y="100" />' +
481
+ '</root>' ;
482
+
483
+ var err ;
484
+
485
+ // when
486
+ try {
487
+ await reader . fromXML ( xml , rootHandler ) ;
488
+ } catch ( _err ) {
489
+ err = _err ;
490
+ }
491
+
492
+ // then
493
+ expect ( err ) . to . exist ;
494
+
495
+ expect ( err . message ) . to . contain ( 'unparsable content <bounds> detected' ) ;
496
+ expect ( err . message ) . to . contain ( 'unknown type <other:Unknown>' ) ;
497
+ } ) ;
498
+
499
+
500
+ it ( 'collection' , async function ( ) {
501
+
502
+ var datatypeModel = createModel ( [ 'datatype' ] ) ;
503
+
504
+ // given
505
+ var reader = new Reader ( datatypeModel ) ;
506
+ var rootHandler = reader . handler ( 'dt:Root' ) ;
507
+
508
+ var xml =
509
+ '<root xmlns="http://datatypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +
510
+ '<otherBounds xsi:type="Unknown" y="100" />' +
511
+ '</root>' ;
512
+
513
+ var err ;
514
+
515
+ // when
516
+ try {
517
+ await reader . fromXML ( xml , rootHandler ) ;
518
+ } catch ( _err ) {
519
+ err = _err ;
520
+ }
521
+
522
+ // then
523
+ expect ( err ) . to . exist ;
524
+
525
+ expect ( err . message ) . to . contain ( 'unparsable content <otherBounds> detected' ) ;
526
+ expect ( err . message ) . to . contain ( 'unknown type <dt:Unknown>' ) ;
527
+ } ) ;
462
528
463
- expect ( err . message ) . to . contain ( 'unparsable content <otherBounds> detected' ) ;
464
529
} ) ;
465
530
466
531
@@ -2481,7 +2546,7 @@ describe('Reader', function() {
2481
2546
var extensionModel = createModel ( [ 'extensions' ] ) ;
2482
2547
2483
2548
2484
- it ( 'should handle nested' , async function ( ) {
2549
+ it ( 'should handle nested (generic) ' , async function ( ) {
2485
2550
2486
2551
// given
2487
2552
var reader = new Reader ( extensionModel ) ;
0 commit comments