@@ -3,12 +3,13 @@ import {
3
3
DataFlowService
4
4
} from '../../../src/maplibregl/services/DataFlowService' ;
5
5
6
- import { Server } from 'mock-socket' ;
7
- var urlDataFlow = "ws:\ //localhost:8005/ " ;
6
+ import { Server , WebSocket } from 'mock-socket' ;
7
+ var urlDataFlow = "ws://localhost:8005" ;
8
8
describe ( 'maplibregl_DataFlowService' , ( ) => {
9
9
var originalTimeout ;
10
10
var service ;
11
- var mockServer ;
11
+ var mockServerBroadcast ;
12
+ var mockServerSubscribe ;
12
13
beforeAll ( ( ) => {
13
14
var e = {
14
15
"type" : "Feature" ,
@@ -20,15 +21,21 @@ describe('maplibregl_DataFlowService', () => {
20
21
"id" : 1
21
22
}
22
23
} ;
23
- mockServer = new Server ( urlDataFlow ) ;
24
- mockServer . on ( 'connection' , socket => {
24
+ mockServerBroadcast = new Server ( `${ urlDataFlow } /broadcast` ) ;
25
+
26
+ mockServerBroadcast . on ( 'connection' , socket => {
25
27
socket . on ( 'message' , ( ) => {
26
28
console . log ( "onmessage" ) ;
27
29
} ) ;
28
30
socket . on ( 'close' , ( ) => { } ) ;
29
31
socket . send ( JSON . stringify ( e ) ) ;
30
- socket . close ( ) ;
32
+ // socket.close();
33
+
31
34
} ) ;
35
+ mockServerSubscribe = new Server ( `${ urlDataFlow } /subscribe` ) ;
36
+ mockServerSubscribe . on ( 'connection' , socket => {
37
+ } )
38
+
32
39
} ) ;
33
40
beforeEach ( ( ) => {
34
41
originalTimeout = jasmine . DEFAULT_TIMEOUT_INTERVAL ;
@@ -44,8 +51,10 @@ describe('maplibregl_DataFlowService', () => {
44
51
}
45
52
} ) ;
46
53
afterAll ( ( ) => {
47
- mockServer . stop ( ) ;
48
- mockServer = null ;
54
+ mockServerBroadcast . stop ( ) ;
55
+ mockServerBroadcast = null ;
56
+ mockServerSubscribe . stop ( ) ;
57
+ mockServerSubscribe = null ;
49
58
} ) ;
50
59
51
60
it ( 'broadcast_Point' , ( done ) => {
@@ -65,27 +74,20 @@ describe('maplibregl_DataFlowService', () => {
65
74
flowService . broadcast ( feature ) ;
66
75
}
67
76
68
- var timer ;
69
- try {
70
- service = new DataFlowService ( urlDataFlow ) ;
71
- service . initBroadcast ( ) ;
72
- service . on ( 'broadcastSocketConnected' , ( e ) => {
73
- var dataFlow = service . dataFlow ;
74
- expect ( dataFlow . CLASS_NAME ) . toBe ( "SuperMap.DataFlowService" ) ;
75
- expect ( dataFlow . EVENT_TYPES . length ) . toEqual ( 8 ) ;
76
- expect ( dataFlow . broadcastWebSocket . binaryType ) . toBe ( "blob" ) ;
77
- expect ( dataFlow . broadcastWebSocket . url ) . toBe ( urlDataFlow + "broadcast" ) ;
78
- timer = window . setInterval ( broadcast_Point ( service ) , 1000 ) ;
79
- } ) ;
80
- setTimeout ( ( ) => {
81
- expect ( service ) . not . toBeNull ( ) ;
82
- done ( ) ;
83
- } , 0 )
84
- } finally {
85
- if ( timer ) {
86
- window . clearInterval ( timer ) ;
87
- }
88
- }
77
+ service = new DataFlowService ( urlDataFlow ) ;
78
+ service . initBroadcast ( ) ;
79
+ service . on ( 'broadcastSocketConnected' , ( e ) => {
80
+ var dataFlow = service . dataFlow ;
81
+ expect ( dataFlow . CLASS_NAME ) . toBe ( "SuperMap.DataFlowService" ) ;
82
+ expect ( dataFlow . EVENT_TYPES . length ) . toEqual ( 10 ) ;
83
+ expect ( dataFlow . broadcastWebSocket . binaryType ) . toBe ( "blob" ) ;
84
+ expect ( dataFlow . broadcastWebSocket . url ) . toBe ( urlDataFlow + "/broadcast" ) ;
85
+ broadcast_Point ( service ) ;
86
+
87
+ } ) ;
88
+ service . on ( 'broadcastSucceeded' , ( e ) => {
89
+ done ( ) ;
90
+ } )
89
91
} ) ;
90
92
91
93
it ( 'broadcast_LineString' , ( done ) => {
@@ -109,24 +111,21 @@ describe('maplibregl_DataFlowService', () => {
109
111
flowService . broadcast ( feature ) ;
110
112
}
111
113
114
+ service = new DataFlowService ( urlDataFlow ) ;
115
+ service . initBroadcast ( ) ;
116
+ service . on ( 'broadcastSocketConnected' , ( e ) => {
117
+ var dataFlow = service . dataFlow ;
118
+ expect ( dataFlow . CLASS_NAME ) . toBe ( "SuperMap.DataFlowService" ) ;
119
+ expect ( dataFlow . EVENT_TYPES . length ) . toEqual ( 10 ) ;
120
+ expect ( dataFlow . broadcastWebSocket . binaryType ) . toBe ( "blob" ) ;
121
+ expect ( dataFlow . broadcastWebSocket . url ) . toBe ( urlDataFlow + "/broadcast" ) ;
122
+ broadcast_LineString ( service ) ;
112
123
113
- var timer ;
114
- try {
115
- service = new DataFlowService ( urlDataFlow ) ;
116
- service . initBroadcast ( ) ;
117
- service . on ( 'broadcastSocketConnected' , ( e ) => {
118
- timer = window . setInterval ( broadcast_LineString ( service ) , 1000 ) ;
119
- } ) ;
120
- setTimeout ( ( ) => {
121
- expect ( service ) . not . toBeNull ( ) ;
122
- done ( ) ;
123
- } , 0 )
124
- } finally {
125
- if ( timer ) {
126
- window . clearInterval ( timer ) ;
127
- }
124
+ } ) ;
125
+ service . on ( 'broadcastSucceeded' , ( e ) => {
126
+ done ( ) ;
127
+ } )
128
128
129
- }
130
129
} ) ;
131
130
132
131
it ( 'broadcast_Polygon' , ( done ) => {
@@ -153,88 +152,64 @@ describe('maplibregl_DataFlowService', () => {
153
152
flowService . broadcast ( feature ) ;
154
153
}
155
154
155
+ service = new DataFlowService ( urlDataFlow ) ;
156
+ service . initBroadcast ( ) ;
157
+ service . on ( 'broadcastSocketConnected' , ( e ) => {
158
+ var dataFlow = service . dataFlow ;
159
+ expect ( dataFlow . CLASS_NAME ) . toBe ( "SuperMap.DataFlowService" ) ;
160
+ expect ( dataFlow . EVENT_TYPES . length ) . toEqual ( 10 ) ;
161
+ expect ( dataFlow . broadcastWebSocket . binaryType ) . toBe ( "blob" ) ;
162
+ expect ( dataFlow . broadcastWebSocket . url ) . toBe ( urlDataFlow + "/broadcast" ) ;
163
+ broadcast_Polygon ( service ) ;
156
164
157
- var timer ;
158
- try {
159
- service = new DataFlowService ( urlDataFlow ) ;
160
- service . initBroadcast ( ) ;
161
- service . on ( 'broadcastSocketConnected' , ( e ) => {
162
- timer = window . setInterval ( broadcast_Polygon ( service ) , 1000 ) ;
163
- } ) ;
164
- setTimeout ( ( ) => {
165
- expect ( service ) . not . toBeNull ( ) ;
166
- service . unSubscribe ( ) ;
167
- service . unBroadcast ( ) ;
168
- done ( ) ;
169
- } , 0 )
170
- } finally {
171
- if ( timer ) {
172
- window . clearInterval ( timer ) ;
173
- }
174
- }
165
+ } ) ;
166
+ service . on ( 'broadcastSucceeded' , ( e ) => {
167
+ done ( ) ;
168
+ } )
175
169
} ) ;
176
170
177
171
it ( 'broadcast_MultiPolygon' , ( done ) => {
178
172
var broadcast_MultiPolygon = ( flowService ) => {
179
-
173
+ var feature = {
174
+ geometry : {
175
+ coordinates : [ [ [ [ 116.381741960923 , 39.8765100055449 ] , [ 116.414681699817 , 39.8765100055449 ] , [ 116.414681699817 , 39.8415115329708 ] , [ 116.381741960923 , 39.8765100055449 ] ] ] , [ [ [ 115.381741960923 , 39.8765100055449 ] , [ 116.414681699817 , 39.8765100055449 ] , [ 116.414681699817 , 39.8415115329708 ] , [ 115.381741960923 , 39.8765100055449 ] ] ] ] ,
176
+ type : "MultiPolygon"
177
+ } ,
178
+ id : 4 ,
179
+ type : "Feature" ,
180
+ properties : { id : 4 , time : new Date ( ) }
181
+ } ;
180
182
flowService . broadcast ( feature ) ;
181
183
}
184
+ service = new DataFlowService ( urlDataFlow ) ;
185
+ service . initBroadcast ( ) ;
186
+ service . on ( 'broadcastSocketConnected' , ( e ) => {
187
+ var dataFlow = service . dataFlow ;
188
+ expect ( dataFlow . CLASS_NAME ) . toBe ( "SuperMap.DataFlowService" ) ;
189
+ expect ( dataFlow . EVENT_TYPES . length ) . toEqual ( 10 ) ;
190
+ expect ( dataFlow . broadcastWebSocket . binaryType ) . toBe ( "blob" ) ;
191
+ expect ( dataFlow . broadcastWebSocket . url ) . toBe ( urlDataFlow + "/broadcast" ) ;
192
+ broadcast_MultiPolygon ( service ) ;
193
+
194
+ } ) ;
195
+ service . on ( 'broadcastSucceeded' , ( e ) => {
196
+ done ( ) ;
197
+ } )
182
198
183
- var timer ;
184
- try {
185
- service = new DataFlowService ( urlDataFlow ) ;
186
- service . initBroadcast ( ) ;
187
- service . on ( 'broadcastSocketConnected' , ( e ) => {
188
- timer = window . setInterval ( broadcast_MultiPolygon ( service ) , 1000 ) ;
189
- } ) ;
190
- setTimeout ( ( ) => {
191
- expect ( service ) . not . toBeNull ( ) ;
192
- service . unSubscribe ( ) ;
193
- service . unBroadcast ( ) ;
194
- done ( ) ;
195
- } , 0 )
196
- } finally {
197
- if ( timer ) {
198
- window . clearInterval ( timer ) ;
199
- }
200
- }
201
199
} ) ;
202
200
203
201
// 设置设置排除字段。
204
202
it ( 'initSubscribe,setExcludeField' , ( done ) => {
205
- var socket = new WebSocket ( urlDataFlow ) ;
206
- var service = new DataFlowService ( urlDataFlow ) ;
207
- spyOn ( service . dataFlow , '_connect' ) . and . callFake ( ( ) => {
208
- return socket ;
209
- } ) ;
210
- spyOn ( socket , "send" ) . and . callFake ( ( ) => {
211
- } ) ;
203
+ service = new DataFlowService ( urlDataFlow ) ;
212
204
service . initSubscribe ( ) ;
213
- setTimeout ( ( ) => {
205
+ service . on ( 'subscribeSocketConnected' , ( e ) => {
206
+ var dataFlow = service . dataFlow ;
207
+ expect ( dataFlow . subscribeWebSocket . binaryType ) . toBe ( "blob" ) ;
208
+ expect ( dataFlow . subscribeWebSocket . url ) . toBe ( urlDataFlow + "/subscribe" ) ;
214
209
service . setExcludeField ( "id" ) ;
215
- expect ( service ) . not . toBeNull ( ) ;
210
+ expect ( service . options . excludeField ) . toBe ( "id" ) ;
216
211
done ( ) ;
217
- } , 0 )
218
- } ) ;
219
-
220
- it ( 'broadcast' , ( done ) => {
221
- var feature = {
222
- geometry : {
223
- coordinates : new maplibregl . Point ( 5605 , - 3375 ) ,
224
- type : "Point"
225
- } ,
226
- id : 1 ,
227
- type : "Feature" ,
228
- properties : {
229
- id : 1 ,
230
- time : new Date ( )
231
- }
232
- } ;
233
- service = new DataFlowService ( urlDataFlow ) ;
234
- service . initBroadcast ( ) ;
235
- service . broadcast ( feature ) ;
236
- expect ( service . dataFlow . CLASS_NAME ) . toBe ( "SuperMap.DataFlowService" ) ;
237
- done ( ) ;
212
+ } ) ;
238
213
} ) ;
239
214
240
215
xit ( 'setGeometry' , ( done ) => {
@@ -252,8 +227,13 @@ describe('maplibregl_DataFlowService', () => {
252
227
} ;
253
228
service = new DataFlowService ( urlDataFlow ) ;
254
229
service . initSubscribe ( ) ;
255
- service . setGeometry ( feature ) ;
256
- expect ( service . options . geometry ) . not . toBeNull ( ) ;
257
- done ( ) ;
230
+ service . on ( 'subscribeSocketConnected' , ( e ) => {
231
+ var dataFlow = service . dataFlow ;
232
+ expect ( dataFlow . subscribeWebSocket . binaryType ) . toBe ( "blob" ) ;
233
+ expect ( dataFlow . subscribeWebSocket . url ) . toBe ( urlDataFlow + "/subscribe" ) ;
234
+ service . setGeometry ( feature ) ;
235
+ expect ( service . options . geometry . geometry . coordinates . x ) . toBe ( 5605 )
236
+ done ( ) ;
237
+ } ) ;
258
238
} ) ;
259
239
} ) ;
0 commit comments