| 'use strict'; |
| |
| // Helper assertion functions to validate dictionary fields |
| // on dictionary objects returned from APIs |
| |
| function assert_unsigned_int_field(object, field) { |
| const num = object[field]; |
| assert_true(Number.isInteger(num) && (num >= 0), |
| `Expect dictionary.${field} to be unsigned integer`); |
| } |
| |
| function assert_int_field(object, field) { |
| const num = object[field]; |
| assert_true(Number.isInteger(num), |
| `Expect dictionary.${field} to be integer`); |
| } |
| |
| function assert_string_field(object, field) { |
| const str = object[field]; |
| assert_equals(typeof str, 'string', |
| `Expect dictionary.${field} to be string`); |
| } |
| |
| function assert_number_field(object, field) { |
| const num = object[field]; |
| assert_equals(typeof num, 'number', |
| `Expect dictionary.${field} to be number`); |
| } |
| |
| function assert_boolean_field(object, field) { |
| const bool = object[field]; |
| assert_equals(typeof bool, 'boolean', |
| `Expect dictionary.${field} to be boolean`); |
| } |
| |
| function assert_array_field(object, field) { |
| assert_true(Array.isArray(object[field]), |
| `Expect dictionary.${field} to be array`); |
| } |
| |
| function assert_dict_field(object, field) { |
| assert_equals(typeof object[field], 'object', |
| `Expect dictionary.${field} to be plain object`); |
| |
| assert_not_equals(object[field], null, |
| `Expect dictionary.${field} to not be null`); |
| } |
| |
| function assert_enum_field(object, field, validValues) { |
| assert_string_field(object, field); |
| assert_true(validValues.includes(object[field]), |
| `Expect dictionary.${field} to have one of the valid enum values: ${validValues}`); |
| } |
| |
| function assert_optional_unsigned_int_field(object, field) { |
| if(object[field] !== undefined) { |
| assert_unsigned_int_field(object, field); |
| } |
| } |
| |
| function assert_optional_int_field(object, field) { |
| if(object[field] !== undefined) { |
| assert_int_field(object, field); |
| } |
| } |
| |
| function assert_optional_string_field(object, field) { |
| if(object[field] !== undefined) { |
| assert_string_field(object, field); |
| } |
| } |
| |
| function assert_optional_number_field(object, field) { |
| if(object[field] !== undefined) { |
| assert_number_field(object, field); |
| } |
| } |
| |
| function assert_optional_boolean_field(object, field) { |
| if(object[field] !== undefined) { |
| assert_boolean_field(object, field); |
| } |
| } |
| |
| function assert_optional_array_field(object, field) { |
| if(object[field] !== undefined) { |
| assert_array_field(object, field); |
| } |
| } |
| |
| function assert_optional_dict_field(object, field) { |
| if(object[field] !== undefined) { |
| assert_dict_field(object, field); |
| } |
| } |
| |
| function assert_optional_enum_field(object, field, validValues) { |
| if(object[field] !== undefined) { |
| assert_enum_field(object, field, validValues); |
| } |
| } |