defineSuite([ 'Core/GeometryInstanceAttribute', 'Core/ComponentDatatype' ], function( GeometryInstanceAttribute, ComponentDatatype) { 'use strict'; it('constructor', function() { var color = new GeometryInstanceAttribute({ componentDatatype : ComponentDatatype.UNSIGNED_BYTE, componentsPerAttribute : 4, normalize : true, value : new Uint8Array([255, 255, 0, 255]) }); expect(color.componentDatatype).toEqual(ComponentDatatype.UNSIGNED_BYTE); expect(color.componentsPerAttribute).toEqual(4); expect(color.normalize).toEqual(true); expect(color.value).toEqual([255, 255, 0, 255]); }); it('constructor throws without componentDatatype', function() { expect(function() { return new GeometryInstanceAttribute({ componentsPerAttribute : 4, value : new Uint8Array([255, 255, 0, 255]) }); }).toThrowDeveloperError(); }); it('constructor throws without componentsPerAttribute', function() { expect(function() { return new GeometryInstanceAttribute({ componentDatatype : ComponentDatatype.UNSIGNED_BYTE, value : new Uint8Array([255, 255, 0, 255]) }); }).toThrowDeveloperError(); }); it('constructor throws when componentsPerAttribute is less than 1 or greater than 4', function() { expect(function() { return new GeometryInstanceAttribute({ componentDatatype : ComponentDatatype.UNSIGNED_BYTE, componentsPerAttribute : 7, value : new Uint8Array([255, 255, 0, 255]) }); }).toThrowDeveloperError(); }); it('constructor throws without values', function() { expect(function() { return new GeometryInstanceAttribute({ componentDatatype : ComponentDatatype.UNSIGNED_BYTE, componentsPerAttribute : 4 }); }).toThrowDeveloperError(); }); });