You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
3.1 KiB
JavaScript
95 lines
3.1 KiB
JavaScript
import { JulianDate } from "../../Source/Cesium.js";
|
|
import { ConstantProperty } from "../../Source/Cesium.js";
|
|
import { PropertyArray } from "../../Source/Cesium.js";
|
|
import { SampledProperty } from "../../Source/Cesium.js";
|
|
|
|
describe("DataSources/PropertyArray", function () {
|
|
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);
|
|
});
|
|
});
|