@@ -3,12 +3,13 @@ import {
33 DataFlowService
44} from '../../../src/maplibregl/services/DataFlowService' ;
55
6- import { Server } from 'mock-socket' ;
7- var urlDataFlow = "ws:\ //localhost:8800/ " ;
6+ import { Server , WebSocket } from 'mock-socket' ;
7+ var urlDataFlow = "ws://localhost:8005 " ;
88describe ( 'maplibregl_DataFlowService' , ( ) => {
99 var originalTimeout ;
1010 var service ;
11- var mockServer ;
11+ var mockServerBroadcast ;
12+ var mockServerSubscribe ;
1213 beforeAll ( ( ) => {
1314 var e = {
1415 "type" : "Feature" ,
@@ -20,15 +21,21 @@ describe('maplibregl_DataFlowService', () => {
2021 "id" : 1
2122 }
2223 } ;
23- mockServer = new Server ( urlDataFlow ) ;
24- mockServer . on ( 'connection' , socket => {
24+ mockServerBroadcast = new Server ( `${ urlDataFlow } /broadcast` ) ;
25+
26+ mockServerBroadcast . on ( 'connection' , socket => {
2527 socket . on ( 'message' , ( ) => {
2628 console . log ( "onmessage" ) ;
2729 } ) ;
2830 socket . on ( 'close' , ( ) => { } ) ;
2931 socket . send ( JSON . stringify ( e ) ) ;
30- socket . close ( ) ;
32+ // socket.close();
33+
3134 } ) ;
35+ mockServerSubscribe = new Server ( `${ urlDataFlow } /subscribe` ) ;
36+ mockServerSubscribe . on ( 'connection' , socket => {
37+ } )
38+
3239 } ) ;
3340 beforeEach ( ( ) => {
3441 originalTimeout = jasmine . DEFAULT_TIMEOUT_INTERVAL ;
@@ -44,8 +51,10 @@ describe('maplibregl_DataFlowService', () => {
4451 }
4552 } ) ;
4653 afterAll ( ( ) => {
47- mockServer . stop ( ) ;
48- mockServer = null ;
54+ mockServerBroadcast . stop ( ) ;
55+ mockServerBroadcast = null ;
56+ mockServerSubscribe . stop ( ) ;
57+ mockServerSubscribe = null ;
4958 } ) ;
5059
5160 it ( 'broadcast_Point' , ( done ) => {
@@ -65,27 +74,20 @@ describe('maplibregl_DataFlowService', () => {
6574 flowService . broadcast ( feature ) ;
6675 }
6776
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+ } )
8991 } ) ;
9092
9193 it ( 'broadcast_LineString' , ( done ) => {
@@ -109,24 +111,21 @@ describe('maplibregl_DataFlowService', () => {
109111 flowService . broadcast ( feature ) ;
110112 }
111113
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 ) ;
112123
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+ } )
128128
129- }
130129 } ) ;
131130
132131 it ( 'broadcast_Polygon' , ( done ) => {
@@ -153,88 +152,64 @@ describe('maplibregl_DataFlowService', () => {
153152 flowService . broadcast ( feature ) ;
154153 }
155154
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 ) ;
156164
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+ } )
175169 } ) ;
176170
177171 it ( 'broadcast_MultiPolygon' , ( done ) => {
178172 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+ } ;
180182 flowService . broadcast ( feature ) ;
181183 }
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+ } )
182198
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- }
201199 } ) ;
202200
203201 // 设置设置排除字段。
204202 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 ) ;
212204 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" ) ;
214209 service . setExcludeField ( "id" ) ;
215- expect ( service ) . not . toBeNull ( ) ;
210+ expect ( service . options . excludeField ) . toBe ( "id" ) ;
216211 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+ } ) ;
238213 } ) ;
239214
240215 it ( 'setGeometry' , ( done ) => {
@@ -252,8 +227,13 @@ describe('maplibregl_DataFlowService', () => {
252227 } ;
253228 service = new DataFlowService ( urlDataFlow ) ;
254229 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+ } ) ;
258238 } ) ;
259- } ) ;
239+ } ) ;
0 commit comments