101 lines
3.4 KiB
JavaScript
101 lines
3.4 KiB
JavaScript
|
|
defineSuite([
|
||
|
|
'DataSources/PropertyArray',
|
||
|
|
'Core/JulianDate',
|
||
|
|
'DataSources/ConstantProperty',
|
||
|
|
'DataSources/SampledProperty'
|
||
|
|
], function(
|
||
|
|
PropertyArray,
|
||
|
|
JulianDate,
|
||
|
|
ConstantProperty,
|
||
|
|
SampledProperty) {
|
||
|
|
'use strict';
|
||
|
|
|
||
|
|
var time = JulianDate.now();
|
||
|
|
|
||
|
|
it('default constructor sets expected values', function() {
|
||
|
|
var property = new PropertyArray();
|
||
|
|
expect(property.isConstant).toBe(true);
|
||
|
|
expect(property.getValue(time)).toBeUndefined();
|
||
|
|
});
|
||
|
|
|
||
|
|
it('constructor sets expected values', function() {
|
||
|
|
var expected = [1, 2];
|
||
|
|
var value = [new ConstantProperty(1), new ConstantProperty(2)];
|
||
|
|
var property = new PropertyArray(value);
|
||
|
|
expect(property.getValue(time)).toEqual(expected);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('setValue raises definitionChanged event', function() {
|
||
|
|
var property = new PropertyArray();
|
||
|
|
var listener = jasmine.createSpy('listener');
|
||
|
|
property.definitionChanged.addEventListener(listener);
|
||
|
|
property.setValue([]);
|
||
|
|
expect(listener).toHaveBeenCalledWith(property);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('changing array member raises definitionChanged event', function() {
|
||
|
|
var property = new PropertyArray();
|
||
|
|
var item = new ConstantProperty(1);
|
||
|
|
property.setValue([item]);
|
||
|
|
var listener = jasmine.createSpy('listener');
|
||
|
|
property.definitionChanged.addEventListener(listener);
|
||
|
|
item.setValue(2);
|
||
|
|
expect(listener).toHaveBeenCalledWith(property);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('works with result parameter', function() {
|
||
|
|
var expected = [1, 2];
|
||
|
|
var expectedResult = [];
|
||
|
|
var value = [new ConstantProperty(1), new ConstantProperty(2)];
|
||
|
|
var property = new PropertyArray(value);
|
||
|
|
var result = property.getValue(time, expectedResult);
|
||
|
|
expect(result).toEqual(expected);
|
||
|
|
expect(result).toBe(expectedResult);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('works with undefined value', function() {
|
||
|
|
var property = new PropertyArray();
|
||
|
|
property.setValue(undefined);
|
||
|
|
expect(property.getValue(time)).toBeUndefined();
|
||
|
|
});
|
||
|
|
|
||
|
|
it('ignores undefined property values', function() {
|
||
|
|
var property = new PropertyArray();
|
||
|
|
property.setValue([new ConstantProperty()]);
|
||
|
|
expect(property.getValue(time)).toEqual([]);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('works with empty array', function() {
|
||
|
|
var property = new PropertyArray();
|
||
|
|
property.setValue([]);
|
||
|
|
expect(property.getValue(time)).toEqual([]);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('equals works', function() {
|
||
|
|
var left = new PropertyArray([new ConstantProperty(1)]);
|
||
|
|
var right = new PropertyArray([new ConstantProperty(1)]);
|
||
|
|
|
||
|
|
expect(left.equals(right)).toEqual(true);
|
||
|
|
|
||
|
|
right = new PropertyArray([new ConstantProperty(2)]);
|
||
|
|
expect(left.equals(right)).toEqual(false);
|
||
|
|
|
||
|
|
left = new PropertyArray();
|
||
|
|
right = new PropertyArray();
|
||
|
|
expect(left.equals(right)).toEqual(true);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('isConstant is true only if all members are constant', function() {
|
||
|
|
var property = new PropertyArray();
|
||
|
|
|
||
|
|
property.setValue([new ConstantProperty(2)]);
|
||
|
|
expect(property.isConstant).toBe(true);
|
||
|
|
|
||
|
|
var sampledProperty = new SampledProperty(Number);
|
||
|
|
sampledProperty.addSample(time, 1);
|
||
|
|
property.setValue([new ConstantProperty(2), sampledProperty]);
|
||
|
|
|
||
|
|
expect(property.isConstant).toBe(false);
|
||
|
|
});
|
||
|
|
});
|