Skip to content

Commit 81b556b

Browse files
committed
提交客户端计算的ut review by songym
1 parent 70b7afd commit 81b556b

File tree

6 files changed

+976
-2
lines changed

6 files changed

+976
-2
lines changed

test/karma.conf.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ module.exports = function (config) {
4747
'./test-main-common.js',
4848

4949
/***leaflet的源码***/
50+
{pattern: './libs/workers/TurfWorkerForTest.js', include: false},
5051
{pattern: '../node_modules/leaflet/dist/leaflet.css', include: false},
5152
{pattern: '../src/leaflet/**/**/*.css', include: false},
5253
'../src/leaflet/**/!(ClientComputationView|index).js',

test/leaflet/control/ChangeTileVersionSpec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ describe('leaflet_ChangeTileVersion', () => {
9595
expect(tileVersion.tileVersions.length).toEqual(2);
9696
});
9797

98-
xit('tilesVersion', () => {
98+
it('tilesVersion', () => {
9999
tileVersion.tilesVersion("0");
100100
var version = tileVersion.getVersion();
101101
expect(version).toEqual("0");
Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
2+
import { ClientComputationLayer } from '../../../../src/leaflet/widgets/clientcomputation/clientComputationLayer';
3+
import { ClientComputationView } from '../../../../src/leaflet/widgets/clientcomputation/ClientComputationView'
4+
import { FetchRequest } from '../../../../src/common/util/FetchRequest';
5+
import { QueryBySQLService } from '../../../../src/common/iServer/QueryBySQLService';
6+
import { QueryBySQLParameters } from '../../../../src/common/iServer/QueryBySQLParameters';
7+
import { FilterParameter } from '../../../../src/common/iServer/FilterParameter';
8+
import { GeometryType } from '../../../../src/common/REST';
9+
import { QueryOption } from '../../../../src/common/REST';
10+
import '../../../../node_modules/leaflet.pm';
11+
import '../../../resources/QueryService.js';
12+
13+
var map, url = GlobeParameter.WorldURL, testDiv, clientComputation;
14+
var dataServiceURL = GlobeParameter.wokerURL;
15+
describe('leaflet_clientcomputation_ClientComputationView', () => {
16+
var serviceResult, clientComputationLayer;
17+
var originalTimeout, resultLayer, setLayer;
18+
var queryFailedEventArgs = null, serviceSuccessEventArgs = null;
19+
beforeAll(() => {
20+
testDiv = document.createElement("div");
21+
testDiv.id = 'map';
22+
testDiv.style.margin = "0 auto";
23+
testDiv.style.width = "800px";
24+
testDiv.style.height = "800px";
25+
document.body.appendChild(testDiv);
26+
map = L.map('map', {
27+
preferCanvas: true,
28+
crs: L.CRS.EPSG4326,
29+
center: [20, 80],
30+
maxZoom: 18,
31+
zoom: 2
32+
});
33+
34+
var wokerURL = "../../../base/libs/workers/TurfWorkerForTest.js";
35+
clientComputation = new ClientComputationView(wokerURL);
36+
clientComputation.addTo(map);
37+
38+
var queryUrl = "https://www.supermapol.com/iserver/services/map_ShiLiShuJu/rest/maps/中国历史5级以上地震_1900至2016@自然气候数据";
39+
spyOn(FetchRequest, 'post').and.callFake((url, queryString) => {
40+
// let param = JSON.parse(queryString.replace(/\'/g, "\""));
41+
console.log(url);
42+
if (url.indexOf("/queryResults.json") > -1) {
43+
var escapedJson = clientComputationViewJson;
44+
return Promise.resolve(new Response(JSON.stringify(escapedJson)));
45+
46+
}
47+
return Promise.resolve();
48+
});
49+
var queryFailedEventArgs = null, serviceSuccessEventArgs = null;
50+
var QueryBySQLFailed = (serviceFailedEventArgs) => {
51+
queryFailedEventArgs = serviceFailedEventArgs;
52+
};
53+
var QueryBySQLCompleted = (queryEventArgs) => {
54+
serviceSuccessEventArgs = queryEventArgs;
55+
};
56+
var options = {
57+
eventListeners: {
58+
'processFailed': QueryBySQLFailed,
59+
'processCompleted': QueryBySQLCompleted
60+
}
61+
};
62+
var queryBySQLService = new QueryBySQLService(queryUrl, options);
63+
var params = new QueryBySQLParameters({
64+
65+
expectCount: 2,
66+
queryOption: QueryOption.ATTRIBUTEANDGEOMETRY,
67+
queryParams: new Array(new FilterParameter({
68+
attributeFilter: "SmID>0",
69+
name: "中国历史5级以上地震_1900至2016@自然气候数据",
70+
}))
71+
})
72+
queryBySQLService.events.on({ 'processCompleted': QueryBySQLCompleted });
73+
queryBySQLService.processAsync(params);
74+
75+
76+
setTimeout(() => {
77+
try {
78+
var result = L.Util.transform(serviceSuccessEventArgs.result.recordsets[0].features, L.CRS.EPSG3857, L.CRS.EPSG4326);
79+
resultLayer = L.geoJSON(result, {
80+
style: { fillColor: '#ff7373', color: '#ff7373', opacity: 1, fillOpacity: 0.8 },
81+
pointToLayer: function (geoJsonPoint, latLng) {
82+
return L.circleMarker(latLng, { radius: 6, color: '#ff7373', fillColor: '#ff7373' })
83+
}
84+
}).addTo(map);
85+
setLayer = {
86+
'layerName': "中国历史5级以上地震数据",
87+
'layer': resultLayer,
88+
'fields': ['震级', '深度', '经度', '纬度', 'SmID', 'SmX', 'SmY']
89+
};
90+
clientComputationLayer = new ClientComputationLayer(setLayer);
91+
clientComputation.addLayer(clientComputationLayer);
92+
} catch (exception) {
93+
expect(false).toBeTruthy();
94+
console.log("clientcomputation" + exception.name + ":" + exception.message);
95+
queryBySQLService.destroy();
96+
params.destroy();
97+
queryFailedEventArgs = null;
98+
serviceSuccessEventArgs = null;
99+
}
100+
}, 2000)
101+
});
102+
103+
beforeEach(() => {
104+
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
105+
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
106+
serviceResult = null;
107+
});
108+
afterEach(() => {
109+
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
110+
});
111+
112+
it('addLayer,isoline', (done) => {
113+
setTimeout(() => {
114+
try {
115+
expect(document.getElementById('dropDownTop').getAttribute('data-value')).toBe("isolines");
116+
clientComputation.on('analysissuccessed', (e) => {
117+
try {
118+
if (e.name.indexOf("等值线") > -1) {
119+
expect(e.layer._layers).not.toBeNull;
120+
expect(e.layer._layers).not.toBeUndefined;
121+
done();
122+
}
123+
else if (e.name.indexOf("缓冲区") > -1) {
124+
expect(e.layer._layers).not.toBeNull;
125+
expect(e.layer._layers).not.toBeUndefined;
126+
done();
127+
}
128+
} catch (exception) {
129+
console.log("'isoline'案例失败:" + exception.name + ":" + exception.message);
130+
expect(false).toBeTruthy();
131+
done();
132+
}
133+
});
134+
var analysitBtn = document.getElementsByClassName('analysis-btn')[0];
135+
analysitBtn.click();
136+
} catch (exception) {
137+
expect(false).toBeTruthy();
138+
console.log("clientcomputation" + exception.name + ":" + exception.message);
139+
done();
140+
}
141+
}, 4000)
142+
143+
});
144+
145+
146+
it('addLayer,buffer', (done) => {
147+
setTimeout(() => {
148+
try {
149+
document.getElementById('dropDownTop').click();
150+
document.getElementsByClassName('drop-down-item')[2].click();
151+
clientComputation.on('analysissuccessed', (e) => {
152+
try {
153+
if (e.name.indexOf("等值线") > -1) {
154+
expect(e.layer._layers).not.toBeNull;
155+
expect(e.layer._layers).not.toBeUndefined;
156+
done();
157+
}
158+
else if (e.name.indexOf("缓冲区") > -1) {
159+
160+
expect(e.layer._layers).not.toBeNull;
161+
expect(e.layer._layers).not.toBeUndefined;
162+
done();
163+
}
164+
165+
} catch (exception) {
166+
console.log("'isoline'案例失败:" + exception.name + ":" + exception.message);
167+
expect(false).toBeTruthy();
168+
done();
169+
}
170+
});
171+
expect(document.getElementById('bufferRadiusInput').getAttribute('placeholder')).toContain("10千米");
172+
var analysitBtn = document.getElementsByClassName('analysis-btn')[0];
173+
analysitBtn.click();
174+
175+
} catch (exception) {
176+
expect(false).toBeTruthy();
177+
console.log("clientcomputation" + exception.name + ":" + exception.message);
178+
done();
179+
}
180+
}, 4000)
181+
182+
});
183+
184+
})

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