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)