Skip to content

Commit ab47496

Browse files
committed
修改数据流相关的测试 改成用mock server 代替真实的iserver服务 review by songym
1 parent 4237585 commit ab47496

File tree

4 files changed

+150
-162
lines changed

4 files changed

+150
-162
lines changed

src/openlayers/overlay/DataFlow.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,16 @@ export class DataFlow extends ol.source.Vector {
4747
this.featureCache = {};
4848
}
4949

50-
/**
51-
* @function ol.source.DataFlow.prototype.setPrjCoordSys
52-
* @description 设置坐标参考系。
53-
* @param {Object} prjCoordSys - 参考系。
54-
*/
55-
setPrjCoordSys(prjCoordSys) {
56-
this.dataService.setPrjCoordSys(prjCoordSys);
57-
this.prjCoordSys = prjCoordSys;
58-
return this;
59-
}
50+
// /**
51+
// * @function ol.source.DataFlow.prototype.setPrjCoordSys
52+
// * @description 设置坐标参考系。
53+
// * @param {Object} prjCoordSys - 参考系。
54+
// */
55+
// setPrjCoordSys(prjCoordSys) {
56+
// this.dataService.setPrjCoordSys(prjCoordSys);
57+
// this.prjCoordSys = prjCoordSys;
58+
// return this;
59+
// }
6060

6161
/**
6262
* @function ol.source.DataFlow.prototype.setExcludeField

test/leaflet/overlay/DataFlowLayerSpec.js

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { dataFlowService } from '../../../src/leaflet/services/DataFlowService';
22
import { dataFlowLayer } from '../../../src/leaflet/overlay/DataFlowLayer';
3-
import { SecurityManager } from '../../../src/common/security/SecurityManager';
43
import { Server } from 'mock-socket';
54
var urlDataFlow = "ws:\//localhost:8001/";
65
var server;
@@ -53,15 +52,15 @@ describe('leaflet_DataFlowLayer', () => {
5352

5453
});
5554
afterEach(() => {
55+
if (layer) {
56+
layer.onRemove(map);
57+
layer=null;
58+
}
5659
if (service) {
5760
service.unSubscribe();
5861
service.unBroadcast();
5962
service.destroy();
6063
}
61-
if (layer) {
62-
layer.onRemove(map);
63-
layer=null;
64-
}
6564
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
6665
});
6766
afterAll(() => {
@@ -71,11 +70,6 @@ describe('leaflet_DataFlowLayer', () => {
7170
window.document.body.removeChild(testDiv);
7271
});
7372

74-
xit('bug', () => {
75-
console.log('1、destroy分支走不进去');
76-
console.log('2、unBroadcast的if分支条件缺少!');
77-
});
78-
7973
it('broadcast_Point', (done) => {
8074
var broadcast_Point = (flowService) => {
8175
var feature = {
@@ -102,12 +96,11 @@ describe('leaflet_DataFlowLayer', () => {
10296
};
10397
}
10498
});
105-
layer.addTo(map);
10699
service = layer.dataService;
107100
spyOn(service.dataFlow, '_connect').and.callFake(() => {
108101
return new WebSocket(urlDataFlow);
109102
});
110-
103+
layer.addTo(map);
111104
service.initBroadcast();
112105
service.on('broadcastSocketConnected', (e) => {
113106
var dataFlow = service.dataFlow;
@@ -123,6 +116,7 @@ describe('leaflet_DataFlowLayer', () => {
123116
expect(layer.options).not.toBeNull();
124117
expect(service).not.toBeNull();
125118
expect(service._events.broadcastSocketConnected.length).toEqual(1);
119+
service.unBroadcast();
126120
done();
127121
}, 4000)
128122
}
@@ -345,6 +339,7 @@ describe('leaflet_DataFlowLayer', () => {
345339
done();
346340
}
347341
});
342+
// done();
348343
layer.dataService.dataFlow.events.triggerEvent('messageSuccessed', e);
349344
}, 2000)
350345

test/mapboxgl/services/DataFlowServiceSpec.js

Lines changed: 46 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,38 @@ import mapboxgl from 'mapbox-gl';
22
import {
33
DataFlowService
44
} from '../../../src/mapboxgl/services/DataFlowService';
5-
import {
6-
SecurityManager
7-
} from '../../../src/common/security/SecurityManager';
85

9-
var wsHost = "ws:\//" + "54.223.164.155:8800";
10-
var urlDataFlow = wsHost + "/iserver/services/dataflow/dataflow";
6+
7+
import { Server } from 'mock-socket';
8+
var urlDataFlow = "ws:\//localhost:8003/";
119
describe('mapboxgl_DataFlowService', () => {
1210
var originalTimeout;
1311
var service;
14-
var token = "15xQ_l77895DvXHYKWPesuU7x0tenRLuYXgjxX4x_s51Wqh9qrQiLuLKudwWWm6vQVTXej2cXEQKcIcFAxxzOw..";
12+
var mockServer = new Server(urlDataFlow);
1513
beforeAll(() => {
16-
SecurityManager.registerToken(urlDataFlow, token);
14+
var e = {
15+
"type": "Feature",
16+
"geometry": {
17+
"type": "Point",
18+
"coordinates": [0, 0]
19+
},
20+
"properties": {
21+
"id": 1
22+
}
23+
};
24+
mockServer.on('connection', socket => {
25+
socket.on('message', () => {
26+
console.log("onmessage");
27+
});
28+
socket.on('close', () => { });
29+
socket.send(JSON.stringify(e));
30+
socket.close();
31+
});
1732
});
1833
beforeEach(() => {
1934
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
2035
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
21-
service=null;
36+
service = null;
2237

2338
});
2439
afterEach(() => {
@@ -28,25 +43,10 @@ describe('mapboxgl_DataFlowService', () => {
2843
service.unBroadcast();
2944
}
3045
});
31-
32-
/* it('initSubscribe', (done) => {
33-
var initSubscribeMsg;
34-
var service = new DataFlowService(urlDataFlow);
35-
service.initSubscribe();
36-
service.on('messageSuccessed', (msg) => {
37-
initSubscribeMsg = msg;
38-
try {
39-
expect(service).not.toBeNull();
40-
expect(initSubscribeMsg).not.toBeNull();
41-
done();
42-
} catch (e) {
43-
console.log("'initSubscribe'案例失败" + e.name + ":" + e.message);
44-
expect(false).toBeTruthy();
45-
done();
46-
}
47-
})
48-
}); */
49-
46+
afterAll(() => {
47+
mockServer.stop();
48+
mockServer = null;
49+
});
5050

5151
it('broadcast_Point', (done) => {
5252
var broadcast_Point = (flowService) => {
@@ -64,7 +64,7 @@ describe('mapboxgl_DataFlowService', () => {
6464
};
6565
flowService.broadcast(feature);
6666
}
67-
67+
6868
var timer;
6969
try {
7070
service = new DataFlowService(urlDataFlow);
@@ -74,7 +74,7 @@ describe('mapboxgl_DataFlowService', () => {
7474
expect(dataFlow.CLASS_NAME).toBe("SuperMap.DataFlowService");
7575
expect(dataFlow.EVENT_TYPES.length).toEqual(8);
7676
expect(dataFlow.broadcastWebSocket.binaryType).toBe("blob");
77-
expect(dataFlow.broadcastWebSocket.url).toBe(urlDataFlow + "/broadcast?token=" + token);
77+
expect(dataFlow.broadcastWebSocket.url).toBe(urlDataFlow + "broadcast");
7878
timer = window.setInterval(broadcast_Point(service), 1000);
7979
});
8080
setTimeout(() => {
@@ -109,7 +109,7 @@ describe('mapboxgl_DataFlowService', () => {
109109
flowService.broadcast(feature);
110110
}
111111

112-
112+
113113
var timer;
114114
try {
115115
service = new DataFlowService(urlDataFlow);
@@ -125,7 +125,7 @@ describe('mapboxgl_DataFlowService', () => {
125125
if (timer) {
126126
window.clearInterval(timer);
127127
}
128-
128+
129129
}
130130
});
131131

@@ -153,7 +153,7 @@ describe('mapboxgl_DataFlowService', () => {
153153
flowService.broadcast(feature);
154154
}
155155

156-
156+
157157
var timer;
158158
try {
159159
service = new DataFlowService(urlDataFlow);
@@ -207,7 +207,7 @@ describe('mapboxgl_DataFlowService', () => {
207207
};
208208
flowService.broadcast(feature);
209209
}
210-
210+
211211
var timer;
212212
try {
213213
service = new DataFlowService(urlDataFlow);
@@ -229,20 +229,19 @@ describe('mapboxgl_DataFlowService', () => {
229229
});
230230

231231
// 设置设置排除字段。
232-
/* it('setExcludeField', (done) => {
232+
it('initSubscribe,setExcludeField', (done) => {
233+
var socket = new WebSocket(urlDataFlow);
233234
var service = new DataFlowService(urlDataFlow);
234-
service.setExcludeField("id");
235-
service.on('subscribeSuccessed', (e) => {
236-
service.setExcludeField("id");
237-
try {
238-
expect(service).not.toBeNull();
239-
expect(service.options.excludeField).not.toBeNull();
240-
done();
241-
} catch(e) {
242-
console.log("'setExcludeField'案例失败" + e.name + ":" + e.message);
243-
expect(false).toBeTruthy();
244-
done();
245-
}
235+
spyOn(service.dataFlow, '_connect').and.callFake(() => {
236+
return socket;
237+
});
238+
spyOn(socket, "send").and.callFake(() => {
246239
});
247-
}); */
240+
service.initSubscribe();
241+
setTimeout(() => {
242+
service.setExcludeField("id");
243+
expect(service).not.toBeNull();
244+
done();
245+
}, 4000)
246+
});
248247
});

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