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)