90 lines
4.0 KiB
JavaScript
90 lines
4.0 KiB
JavaScript
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);
|
|
});
|
|
});
|