DSDSWeb/static/js/Cesium-1.53/Specs/DataSources/PropertyArraySpec.js

101 lines
3.4 KiB
JavaScript
Raw Normal View History

2024-07-11 18:02:47 +08:00
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);
});
});