123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- var assert = require('assert')
- var ref = require('../')
- describe('coerce', function () {
- it('should return `ref.types.void` for "void"', function () {
- var type = ref.coerceType('void')
- assert.strictEqual(ref.types.void, type)
- })
- it('should return a ref type when a "*" is present', function () {
- var type = ref.coerceType('void *')
- assert(type !== ref.types.void)
- assert.equal(type.indirection, ref.types.void.indirection + 1)
- })
- it('should coerce the "type" property of a Buffer', function () {
- var buf = new Buffer(ref.sizeof.int)
- buf.type = 'int'
- var type = ref.getType(buf)
- assert.strictEqual(ref.types.int, type)
- assert.strictEqual('int', buf.type)
- })
- it('should coerce "Object" to `ref.types.Object`', function () {
- assert.strictEqual(ref.types.Object, ref.coerceType('Object'))
- })
- it('should coerce the optional type in `ref.get()`', function () {
- var b = new Buffer(ref.sizeof.int8)
- b[0] = 5
- assert.strictEqual(5, ref.get(b, 0, 'int8'))
- })
- it('should coerce the optional type in `ref.set()`', function () {
- var b = new Buffer(ref.sizeof.int8)
- ref.set(b, 0, 5, 'int8')
- assert.strictEqual(5, b[0])
- })
- it('should throw a TypeError if a "type" can not be inferred', function () {
- assert.throws(function () {
- ref.coerceType({ })
- }, /could not determine a proper \"type\"/)
- })
- })
|