DSDSServer2024/build/build.20240805/static/js/Cesium-1.53/Specs/Widgets/ClockViewModelSpec.js

90 lines
4.0 KiB
JavaScript
Raw Normal View History

defineSuite([
'Widgets/ClockViewModel',
'Core/Clock',
'Core/ClockRange',
'Core/ClockStep',
'Core/JulianDate'
], function(
ClockViewModel,
Clock,
ClockRange,
ClockStep,
JulianDate) {
'use strict';
it('default constructor creates a clock', function() {
var clockViewModel = new ClockViewModel();
expect(clockViewModel.clock).toBeDefined();
});
it('constructor sets expected properties', function() {
var clock = new Clock();
clock.startTime = JulianDate.fromIso8601('2012-01-01T00:00:00');
clock.stopTime = JulianDate.fromIso8601('2012-01-02T00:00:00');
clock.currentTime = JulianDate.fromIso8601('2012-01-01T12:00:00');
clock.multiplier = 1;
clock.clockStep = ClockStep.TICK_DEPENDENT;
clock.clockRange = ClockRange.UNBOUNDED;
clock.shouldAnimate = false;
var clockViewModel = new ClockViewModel(clock);
expect(clockViewModel.clock).toBe(clock);
expect(clockViewModel.startTime).toEqual(clock.startTime);
expect(clockViewModel.stopTime).toEqual(clock.stopTime);
expect(clockViewModel.currentTime).toEqual(clock.currentTime);
expect(clockViewModel.multiplier).toEqual(clock.multiplier);
expect(clockViewModel.clockStep).toEqual(clock.clockStep);
expect(clockViewModel.clockRange).toEqual(clock.clockRange);
expect(clockViewModel.systemTime).toBeDefined();
expect(clockViewModel.shouldAnimate).toEqual(false);
});
it('observables are updated from the clock', function() {
var clock = new Clock();
clock.startTime = JulianDate.fromIso8601('2012-01-01T00:00:00');
clock.stopTime = JulianDate.fromIso8601('2012-01-02T00:00:00');
clock.currentTime = JulianDate.fromIso8601('2012-01-01T12:00:00');
clock.multiplier = 1;
clock.clockStep = ClockStep.TICK_DEPENDENT;
clock.clockRange = ClockRange.UNBOUNDED;
clock.shouldAnimate = false;
var clockViewModel = new ClockViewModel(clock);
expect(clockViewModel.clock).toBe(clock);
expect(clockViewModel.startTime).toEqual(clock.startTime);
expect(clockViewModel.stopTime).toEqual(clock.stopTime);
expect(clockViewModel.currentTime).toEqual(clock.currentTime);
expect(clockViewModel.multiplier).toEqual(clock.multiplier);
expect(clockViewModel.clockStep).toEqual(clock.clockStep);
expect(clockViewModel.clockRange).toEqual(clock.clockRange);
expect(clockViewModel.shouldAnimate).toEqual(clock.shouldAnimate);
expect(clockViewModel.systemTime).toBeDefined();
clock.startTime = JulianDate.fromIso8601('2013-01-01T00:00:00');
clock.stopTime = JulianDate.fromIso8601('2013-01-02T00:00:00');
clock.currentTime = JulianDate.fromIso8601('2013-01-01T12:00:00');
clock.multiplier = 2;
clock.clockStep = ClockStep.SYSTEM_CLOCK_MULTIPLIER;
clock.clockRange = ClockRange.CLAMPED;
clock.shouldAnimate = true;
expect(clockViewModel.startTime).not.toEqual(clock.startTime);
expect(clockViewModel.stopTime).not.toEqual(clock.stopTime);
expect(clockViewModel.currentTime).not.toEqual(clock.currentTime);
expect(clockViewModel.multiplier).not.toEqual(clock.multiplier);
expect(clockViewModel.clockStep).not.toEqual(clock.clockStep);
expect(clockViewModel.clockRange).not.toEqual(clock.clockRange);
expect(clockViewModel.shouldAnimate).not.toEqual(clock.shouldAnimate);
clock.tick();
expect(clockViewModel.startTime).toEqual(clock.startTime);
expect(clockViewModel.stopTime).toEqual(clock.stopTime);
expect(clockViewModel.currentTime).toEqual(clock.currentTime);
expect(clockViewModel.multiplier).toEqual(clock.multiplier);
expect(clockViewModel.clockStep).toEqual(clock.clockStep);
expect(clockViewModel.clockRange).toEqual(clock.clockRange);
expect(clockViewModel.shouldAnimate).toEqual(clock.shouldAnimate);
});
});