@@ -470,6 +470,43 @@ describe('ResourceValidator', function () {
470470 } ) . should . throw ( / M o d e l v i o l a t i o n i n i n s t a n c e i d e n t i f i e r f i e l d p r o p N a m e / ) ;
471471 } ) ;
472472
473+ it ( 'should throw if type of data is not a number for a numeric field' , ( ) => {
474+ let mockField = sinon . createStubInstance ( Field ) ;
475+ mockField . getName . returns ( 'propName' ) ;
476+ mockField . getType . returns ( 'Integer' ) ;
477+ mockField . isPrimitive . returns ( true ) ;
478+ ( ( ) => {
479+ resourceValidator . checkItem ( 'fred' , mockField , { rootResourceIdentifier : 'identifier' } ) ;
480+ } ) . should . throw ( / M o d e l v i o l a t i o n i n i n s t a n c e i d e n t i f i e r f i e l d p r o p N a m e .* f r e d .* s t r i n g .* I n t e g e r / ) ;
481+ } ) ;
482+
483+ it ( 'should throw if number is actually NaN' , ( ) => {
484+ let mockField = sinon . createStubInstance ( Field ) ;
485+ mockField . getName . returns ( 'propName' ) ;
486+ mockField . getType . returns ( 'Integer' ) ;
487+ mockField . isPrimitive . returns ( true ) ;
488+ ( ( ) => {
489+ resourceValidator . checkItem ( parseInt ( 'fred' ) /* creates NaN object*/ , mockField , { rootResourceIdentifier : 'identifier' } ) ;
490+ } ) . should . throw ( / M o d e l v i o l a t i o n i n i n s t a n c e i d e n t i f i e r f i e l d p r o p N a m e .* N o n - n u m e r i c .* u n k n o w n .* I n t e g e r / ) ;
491+
492+ mockField = sinon . createStubInstance ( Field ) ;
493+ mockField . getName . returns ( 'propName' ) ;
494+ mockField . getType . returns ( 'Double' ) ;
495+ mockField . isPrimitive . returns ( true ) ;
496+ ( ( ) => {
497+ resourceValidator . checkItem ( parseInt ( 'fred' ) /* creates NaN object*/ , mockField , { rootResourceIdentifier : 'identifier' } ) ;
498+ } ) . should . throw ( / M o d e l v i o l a t i o n i n i n s t a n c e i d e n t i f i e r f i e l d p r o p N a m e .* N o n - n u m e r i c .* u n k n o w n .* D o u b l e / ) ;
499+
500+ mockField = sinon . createStubInstance ( Field ) ;
501+ mockField . getName . returns ( 'propName' ) ;
502+ mockField . getType . returns ( 'Long' ) ;
503+ mockField . isPrimitive . returns ( true ) ;
504+ ( ( ) => {
505+ resourceValidator . checkItem ( parseInt ( 'fred' ) /* creates NaN object*/ , mockField , { rootResourceIdentifier : 'identifier' } ) ;
506+ } ) . should . throw ( / M o d e l v i o l a t i o n i n i n s t a n c e i d e n t i f i e r f i e l d p r o p N a m e .* N o n - n u m e r i c .* u n k n o w n .* L o n g / ) ;
507+
508+ } ) ;
509+
473510 it ( 'should throw if class declaration is not found' , ( ) => {
474511 let mockField = sinon . createStubInstance ( Field ) ;
475512 mockField . isPrimitive . returns ( false ) ;
0 commit comments