forked from chadly/Geocoding.net
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAsyncGeocoderTest.cs
More file actions
97 lines (83 loc) · 2.5 KB
/
AsyncGeocoderTest.cs
File metadata and controls
97 lines (83 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
using System.Linq;
using System.Threading.Tasks;
using Xunit;
namespace Geocoding.Tests
{
public abstract class AsyncGeocoderTest
{
readonly IGeocoder asyncGeocoder;
protected readonly SettingsFixture settings = new SettingsFixture();
public AsyncGeocoderTest()
{
//Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-us");
asyncGeocoder = CreateAsyncGeocoder();
}
protected abstract IGeocoder CreateAsyncGeocoder();
[Fact]
public void CanGeocodeAddress()
{
asyncGeocoder.GeocodeAsync("1600 pennsylvania ave washington dc").ContinueWith(task =>
{
Address[] addresses = task.Result.ToArray();
addresses[0].AssertWhiteHouse();
});
}
[Fact]
public void CanGeocodeNormalizedAddress()
{
asyncGeocoder.GeocodeAsync("1600 pennsylvania ave", "washington", "dc", null, null).ContinueWith(task =>
{
Address[] addresses = task.Result.ToArray();
addresses[0].AssertWhiteHouse();
});
}
[Theory]
[InlineData("en-US")]
[InlineData("cs-CZ")]
public async Task CanGeocodeAddressUnderDifferentCultures(string cultureName)
{
//Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(cultureName);
var result = await asyncGeocoder.GeocodeAsync("24 sussex drive ottawa, ontario");
Address[] addresses = result.ToArray();
addresses[0].AssertCanadianPrimeMinister();
}
[Theory]
[InlineData("en-US")]
[InlineData("cs-CZ")]
public async Task CanReverseGeocodeAddressUnderDifferentCultures(string cultureName)
{
//Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(cultureName);
var result = await asyncGeocoder.ReverseGeocodeAsync(38.8976777, -77.036517);
Address[] addresses = result.ToArray();
addresses[0].AssertWhiteHouseArea();
}
[Fact]
public void ShouldNotBlowUpOnBadAddress()
{
asyncGeocoder.GeocodeAsync("sdlkf;jasl;kjfldksjfasldf").ContinueWith(task =>
{
var addresses = task.Result;
Assert.Empty(addresses);
});
}
[Fact]
public void CanGeocodeWithSpecialCharacters()
{
asyncGeocoder.GeocodeAsync("Fried St & 2nd St, Gretna, LA 70053").ContinueWith(task =>
{
var addresses = task.Result;
//asserting no exceptions are thrown and that we get something
Assert.NotEmpty(addresses);
});
}
[Fact]
public void CanReverseGeocodeAsync()
{
asyncGeocoder.ReverseGeocodeAsync(38.8976777, -77.036517).ContinueWith(task =>
{
Address[] addresses = task.Result.ToArray();
addresses[0].AssertWhiteHouseArea();
});
}
}
}