DSDSWeb/static/js/Cesium-1.53/Specs/DataSources/CustomDataSourceSpec.js

85 lines
2.9 KiB
JavaScript
Raw Normal View History

2024-07-11 18:02:47 +08:00
defineSuite([
'DataSources/CustomDataSource',
'Core/Event',
'DataSources/DataSourceClock',
'DataSources/EntityCollection'
], function(
CustomDataSource,
Event,
DataSourceClock,
EntityCollection) {
'use strict';
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);
});
});