You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Cesium-Prequel/Specs/Core/BingMapsGeocoderServiceSpec.js

83 lines
2.1 KiB
JavaScript

import { BingMapsGeocoderService } from "../../Source/Cesium.js";
import { Rectangle } from "../../Source/Cesium.js";
import { Resource } from "../../Source/Cesium.js";
describe("Core/BingMapsGeocoderService", function () {
afterAll(function () {
Resource._Implementations.loadAndExecuteScript =
Resource._DefaultImplementations.loadAndExecuteScript;
});
it("returns geocoder results", function (done) {
var query = "some query";
var data = {
resourceSets: [
{
resources: [
{
name: "a",
bbox: [32.0, 3.0, 3.0, 4.0],
},
],
},
],
};
Resource._Implementations.loadAndExecuteScript = function (
url,
functionName,
deferred
) {
deferred.resolve(data);
};
var service = new BingMapsGeocoderService({ key: "" });
service.geocode(query).then(function (results) {
expect(results.length).toEqual(1);
expect(results[0].displayName).toEqual("a");
expect(results[0].destination).toBeInstanceOf(Rectangle);
done();
});
});
it("returns no geocoder results if Bing has no results", function (done) {
var query = "some query";
var data = {
resourceSets: [],
};
Resource._Implementations.loadAndExecuteScript = function (
url,
functionName,
deferred
) {
deferred.resolve(data);
};
var service = new BingMapsGeocoderService({ key: "" });
service.geocode(query).then(function (results) {
expect(results.length).toEqual(0);
done();
});
});
it("returns no geocoder results if Bing has results but no resources", function (done) {
var query = "some query";
var data = {
resourceSets: [
{
resources: [],
},
],
};
Resource._Implementations.loadAndExecuteScript = function (
url,
functionName,
deferred
) {
deferred.resolve(data);
};
var service = new BingMapsGeocoderService({ key: "" });
service.geocode(query).then(function (results) {
expect(results.length).toEqual(0);
done();
});
});
});