import { Clock } from "../../Source/Cesium.js"; import { ClockRange } from "../../Source/Cesium.js"; import { ClockStep } from "../../Source/Cesium.js"; import { JulianDate } from "../../Source/Cesium.js"; import { ClockViewModel } from "../../Source/Cesium.js"; describe("Widgets/ClockViewModel", function () { 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); }); });