76 lines
2.3 KiB
JavaScript
76 lines
2.3 KiB
JavaScript
defineSuite([
|
|
'Core/OpenCageGeocoderService',
|
|
'Core/GeocodeType',
|
|
'Core/Cartesian3',
|
|
'Core/Resource',
|
|
'ThirdParty/when'
|
|
], function(
|
|
OpenCageGeocoderService,
|
|
GeocodeType,
|
|
Cartesian3,
|
|
Resource,
|
|
when) {
|
|
'use strict';
|
|
|
|
var endpoint = 'https://api.opencagedata.com/geocode/v1/';
|
|
var apiKey = 'c2a490d593b14612aefa6ec2e6b77c47';
|
|
|
|
it('constructor throws without url', function() {
|
|
expect(function() {
|
|
return new OpenCageGeocoderService(undefined);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it('constructor throws without API Key', function() {
|
|
expect(function() {
|
|
return new OpenCageGeocoderService(endpoint, undefined);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it('returns geocoder results', function () {
|
|
var service = new OpenCageGeocoderService(endpoint, apiKey);
|
|
|
|
var query = '-22.6792,+14.5272';
|
|
var data = {
|
|
results: [{
|
|
bounds: {
|
|
northeast: {
|
|
lat: -22.6790826,
|
|
lng: 14.5269016
|
|
},
|
|
southwest: {
|
|
lat: -22.6792826,
|
|
lng: 14.5267016
|
|
}
|
|
},
|
|
formatted: 'Beryl\'s Restaurant, Woermann St, Swakopmund, Namibia',
|
|
geometry: {
|
|
lat: -22.6795394,
|
|
lng: 14.5276006
|
|
}
|
|
}]
|
|
};
|
|
spyOn(Resource.prototype, 'fetchJson').and.returnValue(when.resolve(data));
|
|
|
|
return service.geocode(query)
|
|
.then(function(results) {
|
|
expect(results.length).toEqual(1);
|
|
expect(results[0].displayName).toEqual(data.results[0].formatted);
|
|
expect(results[0].destination).toBeDefined();
|
|
});
|
|
});
|
|
|
|
it('returns no geocoder results if OpenCage has no results', function() {
|
|
var service = new OpenCageGeocoderService(endpoint, apiKey);
|
|
|
|
var query = '';
|
|
var data = { results: [] };
|
|
spyOn(Resource.prototype, 'fetchJson').and.returnValue(when.resolve(data));
|
|
|
|
return service.geocode(query)
|
|
.then(function(results) {
|
|
expect(results.length).toEqual(0);
|
|
});
|
|
});
|
|
});
|