Skip to content

Commit 59b28e3

Browse files
committed
增加 openlayers UT review by tangqin
1 parent 440b74a commit 59b28e3

File tree

3 files changed

+167
-0
lines changed

3 files changed

+167
-0
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
import { AddressMatchService } from '../../../src/openlayers/services/AddressMatchService';
2+
import { GeoCodingParameter } from '../../../src/common/iServer/GeoCodingParameter';
3+
import { GeoDecodingParameter } from '../../../src/common/iServer/GeoDecodingParameter';
4+
5+
var addressMatchURL = GlobeParameter.addressMatchURL;
6+
describe('openlayers_AddressMatchService', () => {
7+
var originaTimeout;
8+
beforeEach(() => {
9+
originaTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
10+
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
11+
});
12+
afterEach(() => {
13+
jasmine.DEFAULT_TIMEOUT_INTERVAL = originaTimeout;
14+
});
15+
it('constructor', () => {
16+
var addressMatchService = new AddressMatchService(addressMatchURL);
17+
expect(addressMatchService).not.toBeNull();
18+
expect(addressMatchService.url).toEqual(addressMatchURL);
19+
expect(addressMatchService.url).not.toBeNull();
20+
});
21+
22+
it('code', (done) => {
23+
var codingFailedEventArgs = null, codingSuccessEventArgs = null;
24+
var codeCompleted = (analyseEventArgs) => {
25+
codingSuccessEventArgs = analyseEventArgs;
26+
};
27+
var codeFailed = (serviceFailedEventArgs) => {
28+
codingFailedEventArgs = serviceFailedEventArgs;
29+
};
30+
var options = {
31+
eventListeners: {"processCompleted": codeCompleted, "processFailed": codeFailed}
32+
};
33+
var GeoCodingParams = new GeoCodingParameter({
34+
address: '公司',
35+
fromIndex: 0,
36+
toIndex: 10,
37+
filters: '北京市,海淀区',
38+
prjCoordSys: '{epsgcode:4326}',
39+
maxReturn: -1
40+
});
41+
var addressCodeService = new AddressMatchService(addressMatchURL, options);
42+
addressCodeService.code(GeoCodingParams, codeCompleted);
43+
setTimeout(() => {
44+
try {
45+
expect(addressCodeService).not.toBeNull();
46+
expect(codingSuccessEventArgs).not.toBeNull();
47+
expect(codingSuccessEventArgs.type).toBe('processCompleted');
48+
expect(codingSuccessEventArgs.result).not.toBeNull();
49+
expect(codingSuccessEventArgs.result.length).toBe(10);
50+
GeoCodingParams.destroy();
51+
codingSuccessEventArgs = null;
52+
codingFailedEventArgs = null;
53+
done();
54+
} catch (exception) {
55+
console.log("'code'案例失败:" + exception.name + ":" + exception.message);
56+
GeoCodingParams.destroy();
57+
codingFailedEventArgs = null;
58+
codingSuccessEventArgs = null;
59+
expect(false).toBeTruthy();
60+
done();
61+
}
62+
}, 5000);
63+
});
64+
65+
it('decode', (done) => {
66+
var decodingFailedEventArgs = null, decodingSuccessEventArgs = null;
67+
var decodeFailed = (serviceFailedEventArgs) => {
68+
decodingFailedEventArgs = serviceFailedEventArgs;
69+
};
70+
var decodeCompleted = (analyseEventArgs) => {
71+
decodingSuccessEventArgs = analyseEventArgs;
72+
};
73+
var GeoDeCodingParams = new GeoDecodingParameter({
74+
x: 116.31740122415627,
75+
y: 39.92311315752059,
76+
fromIndex: 0,
77+
toIndex: 5,
78+
filters: '北京市,海淀区',
79+
prjCoordSys: '{epsgcode:4326}',
80+
maxReturn: -1,
81+
geoDecodingRadius: 500
82+
});
83+
var addressDeCodeService = new AddressMatchService(addressMatchURL);
84+
addressDeCodeService.decode(GeoDeCodingParams, decodeCompleted);
85+
setTimeout(() => {
86+
try {
87+
expect(addressDeCodeService).not.toBeNull();
88+
expect(decodingSuccessEventArgs).not.toBeNull();
89+
expect(decodingSuccessEventArgs.type).toBe('processCompleted');
90+
expect(decodingSuccessEventArgs.result).not.toBeNull();
91+
expect(decodingSuccessEventArgs.result.length).toEqual(5);
92+
GeoDeCodingParams.destroy();
93+
decodingFailedEventArgs = null;
94+
decodingSuccessEventArgs = null;
95+
done();
96+
} catch (exception) {
97+
console.log("'decode'案例失败:" + exception.name + ":" + exception.message);
98+
GeoDeCodingParams.destroy();
99+
decodingFailedEventArgs = null;
100+
decodingSuccessEventArgs = null;
101+
expect(false).toBeTruthy();
102+
done();
103+
}
104+
}, 5000);
105+
});
106+
});
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import { GridCellInfosService } from '../../../src/openlayers/services/GridCellInfosService';
2+
import { GetGridCellInfosParameters } from '../../../src/common/iServer/GetGridCellInfosParameters';
3+
import { FetchRequest } from '../../../src/common/util/FetchRequest';
4+
5+
var url = GlobeParameter.dataServiceURL;
6+
describe('openlayers_GridCellInfosService', () => {
7+
var originalTimeout;
8+
beforeEach(() => {
9+
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
10+
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
11+
});
12+
afterEach(() => {
13+
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
14+
});
15+
16+
it('initialize', () => {
17+
var gridCellInfoService = new GridCellInfosService(url);
18+
expect(gridCellInfoService.url).toEqual(url);
19+
});
20+
21+
it('getGridCellInfos', () => {
22+
var params = new GetGridCellInfosParameters({
23+
dataSourceName: "World",
24+
datasetName: "WorldEarth",
25+
X: 4,
26+
Y: 20
27+
});
28+
spyOn(FetchRequest, 'commit').and.callFake((method, testUrl, params, options) => {
29+
expect(method).toBe("GET");
30+
expect(options).not.toBeNull();
31+
if (testUrl.indexOf("WorldEarth.json") > 0) {
32+
return Promise.resolve(new Response(getDatasetInfoEcapedJson));
33+
} else {
34+
if (testUrl.indexOf("imageValue.json") > 0) {
35+
return Promise.resolve(new Response(getGridCellInfosEcapedJson));
36+
}
37+
};
38+
return null;
39+
});
40+
new GridCellInfosService(url).getGridCellInfos(params, (serviceResult) => {
41+
expect(serviceResult).not.toBeNull();
42+
expect(serviceResult.type).toBe("processCompleted");
43+
expect(serviceResult.result.succeed).toBeTruthy();
44+
expect(serviceResult.result.centerPoint).not.toBeUndefined();
45+
expect(serviceResult.result.color).not.toBeUndefined();
46+
expect(serviceResult.result.column).not.toBeUndefined();
47+
expect(serviceResult.result.row).not.toBeUndefined();
48+
expect(serviceResult.result.value).not.toBeUndefined();
49+
expect(serviceResult.object.options.method).toBe("GET");
50+
expect(serviceResult.object.X).toEqual(4);
51+
expect(serviceResult.object.Y).toEqual(20);
52+
expect(serviceResult.object.dataSourceName).toBe("World");
53+
expect(serviceResult.object.datasetName).toBe("WorldEarth");
54+
expect(serviceResult.object.datasetType).toBe("IMAGE");
55+
expect(FetchRequest.commit.calls.count()).toEqual(2);
56+
params.destroy();
57+
});
58+
});
59+
});

test/test-main-openlayers.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,6 @@ import './openlayers/services/TerrainCurvatureCalculateSpec.js';
5757
import './openlayers/services/ThemeServiceSpec.js';
5858
import './openlayers/services/ThiessenAnalysisSpec.js';
5959
import './openlayers/services/TrafficTransferAnalystServiceSpec.js';
60+
import './openlayers/services/AddressMatchServiceSpec.js';
61+
import './openlayers/services/GridCellInfosServiceSpec.js';
6062

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy