Skip to content

Commit c86014c

Browse files
committed
优化openlayers单元测试 review by sunxiaoyu
1 parent 9794f5d commit c86014c

20 files changed

+249
-230
lines changed

test/leaflet/services/AddressMatchServiceSpec.js

Lines changed: 48 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { addressMatchService } from '../../../src/leaflet/services/AddressMatchService';
2-
import { GeoCodingParameter } from '../../../src/common/iServer/GeoCodingParameter';
3-
import { GeoDecodingParameter } from '../../../src/common/iServer/GeoDecodingParameter';
1+
import {addressMatchService} from '../../../src/leaflet/services/AddressMatchService';
2+
import {GeoCodingParameter} from '../../../src/common/iServer/GeoCodingParameter';
3+
import {GeoDecodingParameter} from '../../../src/common/iServer/GeoDecodingParameter';
44
import { FetchRequest } from '../../../src/common/util/FetchRequest';
55

66

@@ -33,33 +33,37 @@ describe('leaflet_AddressMatchService', () => {
3333
var geoCodingService = addressMatchService(addressMatchURL, options);
3434

3535
spyOn(FetchRequest, 'get').and.callFake((testUrl, params, options) => {
36-
expect(testUrl).toBe(addressMatchURL + "/geocoding");
37-
expect(params).not.toBeNull();
38-
expect(options).not.toBeNull();
39-
return Promise.resolve(new Response(codeSuccessEscapedJson));
40-
});
41-
geoCodingService.code(geoCodingParams, (serviceResult) => {
42-
expect(geoCodingService).not.toBeNull();
43-
expect(geoCodingService.options.serverType).toBe("iServer");
44-
try {
45-
expect(serviceResult.type).toBe("processCompleted");
46-
var result = serviceResult.result;
47-
expect(result).not.toBeNull();
48-
expect(result.length).toEqual(10);
49-
for (var i = 0; i < result.length; i++) {
50-
expect(result[i].filters.length).toEqual(2);
51-
expect(result[i].filters[0]).toBe("北京市");
52-
expect(result[i].filters[1]).toBe("海淀区");
53-
}
54-
expect(result[0].score).not.toBeNull();
55-
geoCodingService.destroy();
56-
done();
57-
} catch (exception) {
58-
console.log("'successEvent:code'案例失败:" + exception.name + ":" + exception.message);
59-
geoCodingService.destroy();
60-
expect(false).toBeTruthy();
61-
done();
62-
}
36+
expect(testUrl).toBe(addressMatchURL + "/geocoding");
37+
expect(params).not.toBeNull();
38+
expect(params.address).toBe('公司');
39+
expect(params.prjCoordSys).toBe('{epsgcode:4326}');
40+
expect(options).not.toBeNull();
41+
return Promise.resolve(new Response(codeSuccessEscapedJson));
42+
});
43+
44+
geoCodingService.code(geoCodingParams, (result) => {
45+
serviceResult = result;
46+
try {
47+
expect(geoCodingService).not.toBeNull();
48+
expect(geoCodingService.options.serverType).toBe("iServer");
49+
expect(serviceResult.type).toBe("processCompleted");
50+
var result = serviceResult.result;
51+
expect(result).not.toBeNull();
52+
expect(result.length).toEqual(10);
53+
for (var i = 0; i < result.length; i++) {
54+
expect(result[i].filters.length).toEqual(2);
55+
expect(result[i].filters[0]).toBe("北京市");
56+
expect(result[i].filters[1]).toBe("海淀区");
57+
}
58+
expect(result[0].score).not.toBeNull();
59+
geoCodingService.destroy();
60+
done();
61+
} catch (exception) {
62+
console.log("'successEvent:code'案例失败:" + exception.name + ":" + exception.message);
63+
geoCodingService.destroy();
64+
expect(false).toBeTruthy();
65+
done();
66+
}
6367
});
6468
});
6569

@@ -79,12 +83,15 @@ describe('leaflet_AddressMatchService', () => {
7983
spyOn(FetchRequest, 'get').and.callFake((testUrl, params, options) => {
8084
expect(testUrl).toBe(addressMatchURL + "/geodecoding");
8185
expect(params).not.toBeNull();
86+
expect(params.maxReturn).toEqual(-1);
87+
expect(params.prjCoordSys).toBe('{epsgcode:4326}');
8288
expect(options).not.toBeNull();
8389
return Promise.resolve(new Response(decodeSuccessEscapedJson));
8490
});
8591

86-
GeoDecodingService.decode(GeoDecodingParams, (serviceResult) => {
87-
try {
92+
GeoDecodingService.decode(GeoDecodingParams, (result) => {
93+
serviceResult = result;
94+
try {
8895
expect(GeoDecodingService).not.toBeNull();
8996
expect(GeoDecodingService.options.serverType).toBe("iServer");
9097
expect(serviceResult.type).toBe("processCompleted");
@@ -121,11 +128,14 @@ describe('leaflet_AddressMatchService', () => {
121128

122129
spyOn(FetchRequest, 'get').and.callFake((testUrl, params, options) => {
123130
expect(testUrl).toBe(addressMatchURL + "/geocoding");
131+
expect(params.address).toBeNull();
132+
expect(params.prjCoordSys).toBe('{epsgcode:4326}');
124133
expect(options).not.toBeNull();
125134
return Promise.resolve(new Response(codeFailEscapedJson));
126-
});
135+
});
127136

128-
geoCodingService.code(geoCodingParams, (serviceResult) => {
137+
geoCodingService.code(geoCodingParams, (result) => {
138+
serviceResult = result;
129139
try {
130140
expect(geoCodingService).not.toBeNull();
131141
expect(geoCodingService.options.serverType).toBe("iServer");
@@ -159,11 +169,14 @@ describe('leaflet_AddressMatchService', () => {
159169

160170
spyOn(FetchRequest, 'get').and.callFake((testUrl, params, options) => {
161171
expect(testUrl).toBe(addressMatchURL + "/geodecoding");
172+
expect(params.geoDecodingRadius).toEqual(500);
173+
expect(params.prjCoordSys).toBe('{epsgcode:4326}');
162174
expect(options).not.toBeNull();
163175
return Promise.resolve(new Response(decodeFailEscapedJson));
164176
});
165177

166-
geoDecodingService.decode(GeoDecodingParams, (serviceResult) => {
178+
geoDecodingService.decode(GeoDecodingParams, (result) => {
179+
serviceResult = result;
167180
try {
168181
expect(geoDecodingService).not.toBeNull();
169182
expect(geoDecodingService.options.serverType).toBe("iServer");

test/leaflet/services/BufferAnalysisSpec.js

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import { spatialAnalystService } from '../../../src/leaflet/services/SpatialAnalystService';
2-
import { GeometryBufferAnalystParameters } from '../../../src/common/iServer/GeometryBufferAnalystParameters';
3-
import { DatasetBufferAnalystParameters } from '../../../src/common/iServer/DatasetBufferAnalystParameters';
4-
import { BufferSetting } from '../../../src/common/iServer/BufferSetting';
5-
import { BufferDistance } from '../../../src/common/iServer/BufferDistance';
6-
import { FilterParameter } from '../../../src/common/iServer/FilterParameter';
7-
import { DataReturnOption } from '../../../src/common/iServer/DataReturnOption';
8-
import { BufferEndType } from '../../../src/common/REST';
9-
import { DataReturnMode } from '../../../src/common/REST';
1+
import {spatialAnalystService} from '../../../src/leaflet/services/SpatialAnalystService';
2+
import {GeometryBufferAnalystParameters} from '../../../src/common/iServer/GeometryBufferAnalystParameters';
3+
import {DatasetBufferAnalystParameters} from '../../../src/common/iServer/DatasetBufferAnalystParameters';
4+
import {BufferSetting} from '../../../src/common/iServer/BufferSetting';
5+
import {BufferDistance} from '../../../src/common/iServer/BufferDistance';
6+
import {FilterParameter} from '../../../src/common/iServer/FilterParameter';
7+
import {DataReturnOption} from '../../../src/common/iServer/DataReturnOption';
8+
import {BufferEndType} from '../../../src/common/REST';
9+
import {DataReturnMode} from '../../../src/common/REST';
1010
import request from 'request';
1111
import { FetchRequest } from '../../../src/common/util/FetchRequest';
1212

@@ -63,13 +63,13 @@ describe('leaflet_SpatialAnalystService_bufferAnalysis', () => {
6363
[-4210.533, 8182.656],
6464
[-4261.485, 8554.893]
6565
];
66-
var roadLine = L.polyline(pointsList, { color: 'red' });
66+
var roadLine = L.polyline(pointsList, {color: 'red'});
6767
var geoBufferAnalystParams = new GeometryBufferAnalystParameters({
6868
sourceGeometry: roadLine,
6969
bufferSetting: new BufferSetting({
7070
endType: BufferEndType.ROUND,
71-
leftDistance: new BufferDistance({ value: 250 }),
72-
rightDistance: new BufferDistance({ value: 250 }),
71+
leftDistance: new BufferDistance({value: 250}),
72+
rightDistance: new BufferDistance({value: 250}),
7373
semicircleLineSegment: 10
7474
})
7575
});
@@ -78,13 +78,14 @@ describe('leaflet_SpatialAnalystService_bufferAnalysis', () => {
7878
expect(method).toBe("POST");
7979
expect(testUrl).toBe(spatialAnalystURL + "/geometry/buffer.json?returnContent=true");
8080
expect(params).not.toBeNull();
81-
expect(params).toContain("analystParameter");
82-
expect(params).toContain("'leftDistance':{'exp':null,'value':250}");
83-
expect(params).toContain("'semicircleLineSegment':10");
81+
var paramsObj = JSON.parse(params.replace(/'/g, "\""));
82+
expect(paramsObj.analystParameter.endType).toBe("ROUND");
83+
expect(paramsObj.analystParameter.leftDistance.value).toEqual(250);
8484
expect(options).not.toBeNull();
8585
return Promise.resolve(new Response(JSON.stringify(bufferAnalysis_byGeometryResultJson)));
8686
});
87-
bufferAnalystService.bufferAnalysis(geoBufferAnalystParams, (serviceResult) => {
87+
bufferAnalystService.bufferAnalysis(geoBufferAnalystParams, (result) => {
88+
serviceResult = result;
8889
try {
8990
expect(bufferAnalystService).not.toBeNull();
9091
expect(serviceResult).not.toBeNull();
@@ -110,20 +111,19 @@ describe('leaflet_SpatialAnalystService_bufferAnalysis', () => {
110111
done();
111112
}
112113
});
113-
114114
});
115115

116116
var resultDataset = "bufferAnalystByDatasets_leafletTest";
117117
it('bufferAnalysis_byDatasets', (done) => {
118118
var dsBufferAnalystParameters = new DatasetBufferAnalystParameters({
119119
dataset: "RoadLine2@Changchun",
120120
filterQueryParameter: new FilterParameter({
121-
attributeFilter: "NAME='团结路'"
121+
attributeFilter: 'NAME="团结路"'
122122
}),
123123
bufferSetting: new BufferSetting({
124124
endType: BufferEndType.ROUND,
125-
leftDistance: { value: 10 },
126-
rightDistance: { value: 10 },
125+
leftDistance: {value: 10},
126+
rightDistance: {value: 10},
127127
semicircleLineSegment: 10
128128
}),
129129
resultSetting: new DataReturnOption({
@@ -138,10 +138,10 @@ describe('leaflet_SpatialAnalystService_bufferAnalysis', () => {
138138
expect(method).toBe("POST");
139139
expect(testUrl).toBe(spatialAnalystURL + "/datasets/RoadLine2@Changchun/buffer.json?returnContent=true");
140140
expect(params).not.toBeNull();
141-
expect(params).toContain("bufferAnalystParameter");
142-
expect(params).toContain("'endType':\"ROUND\"");
143-
expect(params).toContain("'leftDistance':{'value':10}");
144-
expect(params).toContain("'rightDistance':{'value':10}");
141+
var paramsObj = JSON.parse(params.replace(/'/g, "\""));
142+
expect(paramsObj.bufferAnalystParameter.endType).toBe("ROUND");
143+
expect(paramsObj.bufferAnalystParameter.leftDistance.value).toEqual(10);
144+
expect(paramsObj.dataReturnOption.expectCount).toEqual(2000);
145145
expect(options).not.toBeNull();
146146
return Promise.resolve(new Response(JSON.stringify(bufferAnalysisByDatasetRecordNullResultJson)));
147147
});
@@ -152,14 +152,13 @@ describe('leaflet_SpatialAnalystService_bufferAnalysis', () => {
152152
expect(serviceResult.type).toBe('processCompleted');
153153
expect(serviceResult.result.succeed).toBeTruthy();
154154
done();
155-
} catch (exception) {
155+
}catch (exception) {
156156
console.log("'bufferAnalysis_byDatasets'案例失败" + exception.name + ":" + exception.message);
157157
bufferAnalystService.destroy();
158158
expect(false).toBeTruthy();
159159
done();
160160
}
161161
});
162-
163162
});
164163

165164
});

test/leaflet/services/DensityAnalysisSpec.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,15 @@ describe('leaflet_SpatialAnalystService_densityAnalysis', () => {
3939
expect(method).toBe("POST");
4040
expect(testUrl).toBe(spatialAnalystURL + "/datasets/Railway@Changchun/densityanalyst/kernel.json?returnContent=true");
4141
expect(params).not.toBeNull();
42-
expect(params).toContain("'bounds':{'left':3800,'bottom':-3800,'right':8200,'top':-2200");
43-
expect(params).toContain("'fieldName':\"SmLength\"");
42+
var paramsObj = JSON.parse(params.replace(/'/g, "\""));
43+
expect(paramsObj.fieldName).toBe("SmLength");
44+
expect(paramsObj.resultGridName).toBe("KernelDensity_leafletTest");
45+
expect(paramsObj.searchRadius).toEqual(50);
4446
expect(options).not.toBeNull();
4547
return Promise.resolve(new Response(`{"succeed":true,"recordset":null,"message":null,"dataset":"KernelDensity_leafletTest@Changchun"}`));
4648
});
47-
densityAnalystService.densityAnalysis(densityAnalystParameters, (serviceResult) => {
49+
densityAnalystService.densityAnalysis(densityAnalystParameters, (result) => {
50+
serviceResult = result;
4851
try {
4952
expect(serviceResult).not.toBeNull();
5053
expect(serviceResult.type).toBe('processCompleted');
@@ -59,6 +62,6 @@ describe('leaflet_SpatialAnalystService_densityAnalysis', () => {
5962
done();
6063
}
6164
});
62-
});
65+
});
6366

6467
});

test/mapboxgl/services/AddressMatchServiceSpec.js

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {AddressMatchService} from '../../../src/mapboxgl/services/AddressMatchService';
22
import {GeoCodingParameter} from '../../../src/common/iServer/GeoCodingParameter';
33
import {GeoDecodingParameter} from '../../../src/common/iServer/GeoDecodingParameter';
4-
import { FetchRequest } from '../../../src/common/util/FetchRequest';
4+
import {FetchRequest} from '../../../src/common/util/FetchRequest';
55

66
var addressMatchURL = GlobeParameter.addressMatchURL;
77
describe('mapboxgl_AddressMatchService', () => {
@@ -27,15 +27,14 @@ describe('mapboxgl_AddressMatchService', () => {
2727
maxReturn: -1
2828
});
2929
var service = new AddressMatchService(addressMatchURL);
30-
31-
spyOn(FetchRequest, 'get').and.callFake((testUrl, params, options) => {
32-
// expect(testUrl).toBe(addressMatchURL + "/geocoding.json?address=公司&fromIndex=0&toIndex=10&filters=[\"北京市\",\"海淀区\"]&prjCoordSys={epsgcode:4326}&maxReturn=-1");
30+
spyOn(FetchRequest, 'get').and.callFake((testUrl, params) => {
3331
expect(testUrl).toBe(addressMatchURL + "/geocoding");
3432
expect(params).not.toBeNull();
35-
expect(options).not.toBeNull();
33+
expect(params.address).toBe('公司');
34+
expect(params.prjCoordSys).toBe("{epsgcode:4326}");
35+
expect(params.filters.length).toEqual(2);
3636
return Promise.resolve(new Response(codeSuccessEscapedJson));
37-
});
38-
37+
});
3938
service.code(geoCodingParams, (result) => {
4039
serviceResult = result;
4140
try {
@@ -57,9 +56,6 @@ describe('mapboxgl_AddressMatchService', () => {
5756
done();
5857
}
5958
});
60-
// setTimeout(() => {
61-
62-
// }, 5000)
6359
});
6460

6561
//反向匹配,成功事件
@@ -75,17 +71,17 @@ describe('mapboxgl_AddressMatchService', () => {
7571
geoDecodingRadius: 500
7672
});
7773
var service = new AddressMatchService(addressMatchURL);
78-
spyOn(FetchRequest, 'get').and.callFake((testUrl, params, options) => {
79-
// expect(testUrl).toBe(addressMatchURL + "/geodecoding.json?x=116.31740122415627&y=39.92311315752059&fromIndex=0&toIndex=5&filters=[\"北京市\",\"海淀区\"]&prjCoordSys={epsgcode:4326}&maxReturn=-1&geoDecodingRadius=500");
74+
spyOn(FetchRequest, 'get').and.callFake((testUrl, params) => {
8075
expect(testUrl).toBe(addressMatchURL + "/geodecoding");
8176
expect(params).not.toBeNull();
82-
expect(options).not.toBeNull();
77+
expect(params.toIndex).toEqual(5);
78+
expect(params.filters.length).toEqual(2);
8379
return Promise.resolve(new Response(decodeSuccessEscapedJson));
8480
});
8581

8682
service.decode(geoDecodingParams, (result) => {
87-
serviceResult = result;
88-
try {
83+
serviceResult = result;
84+
try {
8985
expect(service).not.toBeNull();
9086
expect(serviceResult.type).toBe("processCompleted");
9187
var result = serviceResult.result;
@@ -118,13 +114,13 @@ describe('mapboxgl_AddressMatchService', () => {
118114
});
119115
var service = new AddressMatchService(addressMatchURL);
120116
spyOn(FetchRequest, 'get').and.callFake((testUrl, params, options) => {
121-
// expect(testUrl).toBe(addressMatchURL + "/geocoding.json?fromIndex=0&toIndex=10&filters=[\"北京市\",\"海淀区\"]&prjCoordSys={epsgcode:4326}&maxReturn=-1");
122117
expect(testUrl).toBe(addressMatchURL + "/geocoding");
118+
expect(params.address).toBeNull();
123119
expect(options).not.toBeNull();
124120
return Promise.resolve(new Response(codeFailEscapedJson));
125-
});
121+
});
126122
service.code(geoCodingParams, (result) => {
127-
serviceResult = result;
123+
serviceResult = result;
128124
try {
129125
expect(service).not.toBeNull();
130126
expect(serviceResult.type).toBe("processCompleted");
@@ -140,7 +136,6 @@ describe('mapboxgl_AddressMatchService', () => {
140136
done();
141137
}
142138
});
143-
144139
});
145140

146141
//反向匹配,失败事件
@@ -156,15 +151,16 @@ describe('mapboxgl_AddressMatchService', () => {
156151
var service = new AddressMatchService(addressMatchURL);
157152

158153
spyOn(FetchRequest, 'get').and.callFake((testUrl, params, options) => {
159-
// expect(testUrl).toBe(addressMatchURL + "/geodecoding.json?fromIndex=0&toIndex=5&filters=[\"北京市\",\"海淀区\"]&prjCoordSys={epsgcode:4326}&maxReturn=-1&geoDecodingRadius=500");
160154
expect(testUrl).toBe(addressMatchURL + "/geodecoding");
155+
expect(params.geoDecodingRadius).toEqual(500);
156+
expect(params.fromIndex).toEqual(0);
161157
expect(options).not.toBeNull();
162158
return Promise.resolve(new Response(decodeFailEscapedJson));
163159
});
164160

165161
service.decode(geoDecodingParams, (result) => {
166-
serviceResult = result;
167-
try {
162+
serviceResult = result;
163+
try {
168164
expect(service).not.toBeNull();
169165
expect(serviceResult.type).toBe("processCompleted");
170166
var result = serviceResult.result;

test/openlayers/services/AddressMatchServiceSpec.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ describe('openlayers_AddressMatchService', () => {
4343
spyOn(FetchRequest, 'get').and.callFake((testUrl, params, options) => {
4444
expect(testUrl).toBe(addressMatchURL + "/geocoding");
4545
expect(params).not.toBeNull();
46+
expect(params.address).toBe('公司');
47+
expect(params.prjCoordSys).toBe('{epsgcode:4326}');
4648
expect(options).not.toBeNull();
4749
return Promise.resolve(new Response(codeSuccessEscapedJson));
4850
});
@@ -91,6 +93,8 @@ describe('openlayers_AddressMatchService', () => {
9193
spyOn(FetchRequest, 'get').and.callFake((testUrl, params, options) => {
9294
expect(testUrl).toBe(addressMatchURL + "/geodecoding");
9395
expect(params).not.toBeNull();
96+
expect(params.maxReturn).toEqual(-1);
97+
expect(params.prjCoordSys).toBe('{epsgcode:4326}');
9498
expect(options).not.toBeNull();
9599
return Promise.resolve(new Response(decodeSuccessEscapedJson));
96100
});

0 commit comments

Comments
 (0)