@@ -347,5 +347,102 @@ describe('MeasureService', () => {
347
347
measureService . events . on ( { 'processCompleted' : measureCompleted , 'processFailed' : measureFailed } ) ;
348
348
measureService . processAsync ( measureParameters ) ;
349
349
} ) ;
350
+
351
+ // MeasureParameters-distanceMode
352
+ it ( 'processAsync_distanceMode-geodesic' , ( done ) => {
353
+ var mapServiceURL = GlobeParameter . mapServiceURL ;
354
+ var worldMapURL = mapServiceURL + "World Map" ;
355
+ var measureCompleted = ( measureEventArgs ) => {
356
+ measureEventArgsSystem = measureEventArgs ;
357
+ try {
358
+ var measureResult = measureEventArgsSystem . result ;
359
+ expect ( measureResult ) . not . toBeNull ( ) ;
360
+ expect ( measureResult . succeed ) . toBeTruthy ( ) ;
361
+ expect ( measureResult . area ) . toEqual ( - 1 ) ;
362
+ expect ( measureResult . distance ) . toEqual ( 3.0616868362 ) ;
363
+ expect ( measureResult . unit ) . toBe ( "METER" ) ;
364
+ measureService . destroy ( ) ;
365
+ expect ( measureService . url == null ) . toBeTruthy ( ) ;
366
+ expect ( measureService . isInTheSameDomain == null ) . toBeTruthy ( ) ;
367
+ expect ( measureService . EVENT_TYPES == null ) . toBeTruthy ( ) ;
368
+ expect ( measureService . events == null ) . toBeTruthy ( ) ;
369
+ expect ( measureService . distanceMode == null ) . toBeTruthy ( ) ;
370
+ measureParameters . destroy ( ) ;
371
+ done ( ) ;
372
+ } catch ( exception ) {
373
+ expect ( false ) . toBeTruthy ( ) ;
374
+ console . log ( "MeasureService_" + exception . name + ":" + exception . message ) ;
375
+ measureService . destroy ( ) ;
376
+ measureParameters . destroy ( ) ;
377
+ done ( ) ;
378
+ }
379
+ } ;
380
+ var measureFailed = ( serviceFailedEventArgs ) => {
381
+ serviceFailedEventArgsSystem = serviceFailedEventArgs ;
382
+ } ;
383
+ var measureService = initMeasureService ( worldMapURL , measureFailed , measureCompleted ) ;
384
+ var points = [ new Point ( 0 , 0 ) , new Point ( 10 , 10 ) ] ;
385
+ var geometry = new LinearRing ( points ) ;
386
+ var measureParameters = new MeasureParameters ( geometry , { distanceMode : 'Geodesic' } ) ;
387
+ expect ( measureService ) . not . toBeNull ( ) ;
388
+ expect ( measureService . url ) . toEqual ( worldMapURL ) ;
389
+ spyOn ( FetchRequest , 'commit' ) . and . callFake ( ( method , testUrl , params ) => {
390
+ expect ( method ) . toBe ( "GET" ) ;
391
+ expect ( testUrl ) . toBe ( worldMapURL + "/distance" ) ;
392
+ expect ( params ) . not . toBeNull ( ) ;
393
+ expect ( params . distanceMode ) . toEqual ( 'Geodesic' ) ;
394
+ return Promise . resolve ( new Response ( `{"area":-1,"unit":"METER","distance": 3.0616868362}` ) ) ;
395
+ } ) ;
396
+ measureService . events . on ( { 'processCompleted' : measureCompleted , 'processFailed' : measureFailed } ) ;
397
+ measureService . processAsync ( measureParameters ) ;
398
+ } ) ;
399
+
400
+ it ( 'processAsync_distanceMode' , ( done ) => {
401
+ var mapServiceURL = GlobeParameter . mapServiceURL ;
402
+ var worldMapURL = mapServiceURL + "World Map" ;
403
+ var measureCompleted = ( measureEventArgs ) => {
404
+ measureEventArgsSystem = measureEventArgs ;
405
+ try {
406
+ var measureResult = measureEventArgsSystem . result ;
407
+ expect ( measureResult ) . not . toBeNull ( ) ;
408
+ expect ( measureResult . succeed ) . toBeTruthy ( ) ;
409
+ expect ( measureResult . area ) . toEqual ( - 1 ) ;
410
+ expect ( measureResult . distance ) . toEqual ( 3.9981624957 ) ;
411
+ expect ( measureResult . unit ) . toBe ( "METER" ) ;
412
+ measureService . destroy ( ) ;
413
+ expect ( measureService . url == null ) . toBeTruthy ( ) ;
414
+ expect ( measureService . isInTheSameDomain == null ) . toBeTruthy ( ) ;
415
+ expect ( measureService . EVENT_TYPES == null ) . toBeTruthy ( ) ;
416
+ expect ( measureService . events == null ) . toBeTruthy ( ) ;
417
+ expect ( measureService . distanceMode == null ) . toBeTruthy ( ) ;
418
+ measureParameters . destroy ( ) ;
419
+ done ( ) ;
420
+ } catch ( exception ) {
421
+ expect ( false ) . toBeTruthy ( ) ;
422
+ console . log ( "MeasureService_" + exception . name + ":" + exception . message ) ;
423
+ measureService . destroy ( ) ;
424
+ measureParameters . destroy ( ) ;
425
+ done ( ) ;
426
+ }
427
+ } ;
428
+ var measureFailed = ( serviceFailedEventArgs ) => {
429
+ serviceFailedEventArgsSystem = serviceFailedEventArgs ;
430
+ } ;
431
+ var measureService = initMeasureService ( worldMapURL , measureFailed , measureCompleted ) ;
432
+ var points = [ new Point ( 0 , 0 ) , new Point ( 10 , 10 ) ] ;
433
+ var geometry = new LinearRing ( points ) ;
434
+ var measureParameters = new MeasureParameters ( geometry , { distanceMode : 'Planar' } ) ;
435
+ expect ( measureService ) . not . toBeNull ( ) ;
436
+ expect ( measureService . url ) . toEqual ( worldMapURL ) ;
437
+ spyOn ( FetchRequest , 'commit' ) . and . callFake ( ( method , testUrl , params ) => {
438
+ expect ( method ) . toBe ( "GET" ) ;
439
+ expect ( testUrl ) . toBe ( worldMapURL + "/distance" ) ;
440
+ expect ( params ) . not . toBeNull ( ) ;
441
+ expect ( params . distanceMode ) . toEqual ( 'Planar' ) ;
442
+ return Promise . resolve ( new Response ( `{"area":-1,"unit":"METER","distance": 3.9981624957}` ) ) ;
443
+ } ) ;
444
+ measureService . events . on ( { 'processCompleted' : measureCompleted , 'processFailed' : measureFailed } ) ;
445
+ measureService . processAsync ( measureParameters ) ;
446
+ } ) ;
350
447
} ) ;
351
448
0 commit comments