@@ -347,5 +347,102 @@ describe('MeasureService', () => {
347347 measureService . events . on ( { 'processCompleted' : measureCompleted , 'processFailed' : measureFailed } ) ;
348348 measureService . processAsync ( measureParameters ) ;
349349 } ) ;
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+ } ) ;
350447} ) ;
351448
0 commit comments