public void WhenAttemptingToCreateAGeoLocationParameterFromEmptyString() { Assert.Throws <ArgumentNullException>(() => { GeoLocationParameter point = ""; }); }
public void WhenSerialisingAGeoLocationParameterToString() { GeoLocationParameter point = "1.1,1.22"; var result = JsonConvert.SerializeObject(point, Formatting.None); var expected = "{\"lat\":1.1,\"lon\":1.22}"; result.Should().Be(expected); }
public void WhenAttemptingToCreateAGeoLocationParameterWithInvalidLongitude(double longitude) { Action a = () => { var point = new GeoLocationParameter(0, longitude); }; a.Should().Throw <ArgumentOutOfRangeException>().And.Message.Should().Contain("longitude"); }
public void WhenAttemptingToCreateAGeoLocationParameterFromInvalidString(string input) { Action a = () => { GeoLocationParameter point = input; }; a.Should().Throw <ArgumentException>(); }
public void WhenDeserialisingAGeoLocationParameterFromString() { var input = "{\"lat\":1.1,\"lon\":1.22}"; var result = JsonConvert.DeserializeObject <GeoLocationParameter>(input); GeoLocationParameter expected = "1.1,1.22"; result.Should().Be(expected); }
public void WhenCalculatingDistanceBetweenTwoPoints(string from, string to, double distance) { GeoLocationParameter fromPoint = from; GeoLocationParameter toPoint = to; var result = GeoMath.Distance(fromPoint.Latitude, fromPoint.Longitude, toPoint.Latitude, toPoint.Longitude, GeoMath.MeasureUnits.Miles); result.Should().Be(distance); }
public void WhenDeserialisingAGeoLocationParameterFromString() { var input = "{\"lat\":1.1,\"lon\":1.22}"; var connectionSettings = new ConnectionSettings(new SingleNodeConnectionPool(new Uri("http://localhost:9200"))); var client = new ElasticClient(connectionSettings); var strm = new MemoryStream(Encoding.UTF8.GetBytes(input)); var result = client.SourceSerializer.Deserialize <GeoLocationParameter>(strm); GeoLocationParameter expected = "1.1,1.22"; result.Should().Be(expected); }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { var s = value as string; if (s == null) { return(base.ConvertFrom(context, culture, value)); } GeoLocationParameter point = s; return(point); }
public void WhenSerialisingAGeoLocationParameterToString() { GeoLocationParameter point = "1.1,1.22"; var stream = new MemoryStream(); var connectionSettings = new ConnectionSettings(new SingleNodeConnectionPool(new Uri("http://localhost:9200"))); var client = new ElasticClient(connectionSettings); client.SourceSerializer.Serialize(point, stream, SerializationFormatting.None); stream.Seek(0, SeekOrigin.Begin); using (var r = new StreamReader(stream)) { var result = r.ReadToEnd(); var expected = "{\"lat\":1.1,\"lon\":1.22}"; result.Should().Be(expected); } }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.StartObject) { var geoLocationJObject = JObject.Load(reader); var lat = geoLocationJObject.Value <double>("lat"); var lon = geoLocationJObject.Value <double>("lon"); var point = GeoLocation.TryCreate(lat, lon); if (objectType == typeof(string)) { return(point.ToString()); } return(point); } if (reader.TokenType == JsonToken.String) { GeoLocationParameter point = (string)reader.Value; return(point); } return(null); }