import { Event } from "../../Source/Cesium.js"; import { CustomDataSource } from "../../Source/Cesium.js"; import { DataSourceClock } from "../../Source/Cesium.js"; import { EntityCollection } from "../../Source/Cesium.js"; describe("DataSources/CustomDataSource", function () { it("constructor has expected defaults", function () { var dataSource = new CustomDataSource(); expect(dataSource.name).toBeUndefined(); expect(dataSource.clock).toBeUndefined(); expect(dataSource.entities).toBeInstanceOf(EntityCollection); expect(dataSource.isLoading).toBe(false); expect(dataSource.changedEvent).toBeInstanceOf(Event); expect(dataSource.errorEvent).toBeInstanceOf(Event); expect(dataSource.loadingEvent).toBeInstanceOf(Event); expect(dataSource.show).toBe(true); }); it("show sets underlying entity collection show.", function () { var dataSource = new CustomDataSource(); dataSource.show = false; expect(dataSource.show).toBe(false); expect(dataSource.show).toEqual(dataSource.entities.show); dataSource.show = true; expect(dataSource.show).toBe(true); expect(dataSource.show).toEqual(dataSource.entities.show); }); it("setting name raises changed event", function () { var dataSource = new CustomDataSource(); var spy = jasmine.createSpy("changedEvent"); dataSource.changedEvent.addEventListener(spy); var newName = "chester"; dataSource.name = newName; expect(dataSource.name).toEqual(newName); expect(spy.calls.count()).toEqual(1); expect(spy).toHaveBeenCalledWith(dataSource); }); it("setting clock raises changed event", function () { var dataSource = new CustomDataSource(); var spy = jasmine.createSpy("changedEvent"); dataSource.changedEvent.addEventListener(spy); var newClock = new DataSourceClock(); dataSource.clock = newClock; expect(dataSource.clock).toBe(newClock); expect(spy.calls.count()).toEqual(1); expect(spy).toHaveBeenCalledWith(dataSource); }); it("setting isLoading raises loading event", function () { var dataSource = new CustomDataSource(); var spy = jasmine.createSpy("loadingEvent"); dataSource.loadingEvent.addEventListener(spy); dataSource.isLoading = true; expect(spy.calls.count()).toEqual(1); expect(spy).toHaveBeenCalledWith(dataSource, true); dataSource.isLoading = false; expect(spy.calls.count()).toEqual(2); expect(spy).toHaveBeenCalledWith(dataSource, false); }); it("has entity collection with link to data source", function () { var dataSource = new CustomDataSource(); var entityCollection = dataSource.entities; expect(entityCollection.owner).toEqual(dataSource); }); });