public void ReverseGeocoding_傳入經緯度_找不到資料_回傳預設GoogleGeoDataDto()
        {
            // arrange
            // 模擬 proxy 吐出的資料
            var response = new Infrastructure.ClassLibsProxy.Models.GoogleResponse();
            response.Status = Infrastructure.Enums.GoogleLocateStatus.ZeroResult;

            this.GisProxy.ReverseGeocoding(Arg.Any<DTOs.GeoCodingParameterDto>())
                .Returns(response);

            // 預期 service 吐出的資料
            var expected = new DTOs.GoogleGeoDataDto();
            expected.Status = Infrastructure.Enums.GoogleLocateStatus.ZeroResult;

            var sut = new GoogleGisService(this.GisProxy);

            // act
            var actual = sut.ReverseGeocoding(Arg.Any<DTOs.GeoCodingParameterDto>());

            // assert
            // 透過 ExpectedObjects 第三方套件的功能比對物件.
            expected.ToExpectedObject().ShouldEqual(actual);
        }
        public void ReverseGeocoding_傳入經緯度_回傳地理位置資料()
        {
            // arrange
            // 模擬 proxy 吐出的資料
            var response = new Infrastructure.ClassLibsProxy.Models.GoogleResponse
            {
                AllResponse = "{\"Method\":\"ReverseGeocoding\",\"OtherParams\":{\"QLat\":25.030284,\"QLng\":121.549201,\"GeoKey\":\"EEPS_AP_Geocoder\",\"Channel\":\"EEPS_AP_Geocoder\",\"APIUrl\":\"http://maps.google.com/maps/api/geocode/json?latlng=25.030284%2c121.549201\\u0026sensor=false\\u0026language=zh-tw\\u0026region=tw\"},\"Locate\":{\"GqId\":260,\"GeoId\":4279,\"City\":\"台北市\",\"Area\":\"大安區\",\"Road\":\"敦化南路二段\",\"No\":\"\",\"Address\":\"106台灣台北市大安區敦化南路二段77號\",\"Lat\":25.030284,\"Lng\":121.549201,\"LocationType\":\"ROOFTOP\",\"PoiName\":\"\",\"PoiTypes\":\"street_address\"},\"Success\":true,\"Status\":1,\"Message\":\"查詢成功\",\"Precise\":true,\"GeoSource\":\"Database\"}",
                ErrorMessage = string.Empty,
                QueryAddress = string.Empty,
                QueryLatitude = 25.030284,
                QueryLongitude = 121.549201,
                Locate = new Infrastructure.ClassLibsProxy.Models.GoogleLocate
                {
                    Address = "106台灣台北市大安區敦化南路二段77號",
                    Area = "大安區",
                    City = "台北市",
                    Landmark = string.Empty,
                    Latitude = 25.030284,
                    Longitude = 121.549201,
                    PreciseLevel = true,
                    Road = "敦化南路二段"
                },
                Status = Infrastructure.Enums.GoogleLocateStatus.Success
            };

            this.GisProxy.ReverseGeocoding(Arg.Any<DTOs.GeoCodingParameterDto>())
                .Returns(response);

            // 預期 service 吐出的資料
            var expected = new DTOs.GoogleGeoDataDto
            {
                AllResponse = "{\"Method\":\"ReverseGeocoding\",\"OtherParams\":{\"QLat\":25.030284,\"QLng\":121.549201,\"GeoKey\":\"EEPS_AP_Geocoder\",\"Channel\":\"EEPS_AP_Geocoder\",\"APIUrl\":\"http://maps.google.com/maps/api/geocode/json?latlng=25.030284%2c121.549201\\u0026sensor=false\\u0026language=zh-tw\\u0026region=tw\"},\"Locate\":{\"GqId\":260,\"GeoId\":4279,\"City\":\"台北市\",\"Area\":\"大安區\",\"Road\":\"敦化南路二段\",\"No\":\"\",\"Address\":\"106台灣台北市大安區敦化南路二段77號\",\"Lat\":25.030284,\"Lng\":121.549201,\"LocationType\":\"ROOFTOP\",\"PoiName\":\"\",\"PoiTypes\":\"street_address\"},\"Success\":true,\"Status\":1,\"Message\":\"查詢成功\",\"Precise\":true,\"GeoSource\":\"Database\"}",
                ErrorMessage = string.Empty,
                QueryAddress = string.Empty,
                QueryLatitude = 25.030284,
                QueryLongitude = 121.549201,
                Locate = new DTOs.GoogleLocateDto
                {
                    Address = "106台灣台北市大安區敦化南路二段77號",
                    District = "大安區",
                    County = "台北市",
                    Landmark = string.Empty,
                    Latitude = 25.030284,
                    Longitude = 121.549201,
                    IsPrecise = true,
                    Road = "敦化南路二段"
                },
                Status = Infrastructure.Enums.GoogleLocateStatus.Success
            };

            var sut = new GoogleGisService(this.GisProxy);

            // act
            var actual = sut.ReverseGeocoding(Arg.Any<DTOs.GeoCodingParameterDto>());

            // assert
            // 透過 ExpectedObjects 第三方套件的功能比對物件.
            expected.ToExpectedObject().ShouldEqual(actual);
        }