@@ -5,7 +5,7 @@ namespace ServiceStack.Redis.Tests
55 [ TestFixture ]
66 public class RedisGeoTests
77 {
8- private RedisNativeClient redis ;
8+ private readonly RedisNativeClient redis ;
99
1010 public RedisGeoTests ( )
1111 {
@@ -21,6 +21,7 @@ public void TestFixtureTearDown()
2121 [ Test ]
2222 public void Can_GeoAdd_and_GeoPos ( )
2323 {
24+ redis . FlushDb ( ) ;
2425 redis . GeoAdd ( "Sicily" , 13.361389 , 38.115556 , "Palermo" ) ;
2526 var results = redis . GeoPos ( "Sicily" , "Palermo" ) ;
2627
@@ -29,5 +30,49 @@ public void Can_GeoAdd_and_GeoPos()
2930 Assert . That ( results [ 0 ] . Latitude , Is . EqualTo ( 38.115556 ) . Within ( .1 ) ) ;
3031 Assert . That ( results [ 0 ] . Member , Is . EqualTo ( "Palermo" ) ) ;
3132 }
33+
34+ [ Test ]
35+ public void Can_GeoAdd_and_GeoPos_multiple ( )
36+ {
37+ redis . FlushDb ( ) ;
38+ redis . GeoAdd ( "Sicily" ,
39+ new RedisGeo ( 13.361389 , 38.115556 , "Palermo" ) ,
40+ new RedisGeo ( 15.087269 , 37.502669 , "Catania" ) ) ;
41+
42+ var results = redis . GeoPos ( "Sicily" , "Palermo" , "Catania" ) ;
43+
44+ Assert . That ( results . Count , Is . EqualTo ( 2 ) ) ;
45+ Assert . That ( results [ 0 ] . Longitude , Is . EqualTo ( 13.361389 ) . Within ( .1 ) ) ;
46+ Assert . That ( results [ 0 ] . Latitude , Is . EqualTo ( 38.115556 ) . Within ( .1 ) ) ;
47+ Assert . That ( results [ 0 ] . Member , Is . EqualTo ( "Palermo" ) ) ;
48+
49+ Assert . That ( results [ 1 ] . Longitude , Is . EqualTo ( 15.087269 ) . Within ( .1 ) ) ;
50+ Assert . That ( results [ 1 ] . Latitude , Is . EqualTo ( 37.502669 ) . Within ( .1 ) ) ;
51+ Assert . That ( results [ 1 ] . Member , Is . EqualTo ( "Catania" ) ) ;
52+ }
53+
54+ [ Test ]
55+ public void Can_GeoDist ( )
56+ {
57+ redis . FlushDb ( ) ;
58+ redis . GeoAdd ( "Sicily" ,
59+ new RedisGeo ( 13.361389 , 38.115556 , "Palermo" ) ,
60+ new RedisGeo ( 15.087269 , 37.502669 , "Catania" ) ) ;
61+
62+ var distance = redis . GeoDist ( "Sicily" , "Palermo" , "Catania" ) ;
63+ Assert . That ( distance , Is . EqualTo ( 166274.15156960039 ) . Within ( .1 ) ) ;
64+ }
65+
66+ [ Test ]
67+ public void Can_GeoHash ( )
68+ {
69+ redis . GeoAdd ( "Sicily" ,
70+ new RedisGeo ( 13.361389 , 38.115556 , "Palermo" ) ,
71+ new RedisGeo ( 15.087269 , 37.502669 , "Catania" ) ) ;
72+
73+ var hashes = redis . GeoHash ( "Sicily" , "Palermo" , "Catania" ) ;
74+ Assert . That ( hashes [ 0 ] , Is . EqualTo ( "sqc8b49rny0" ) ) ;
75+ Assert . That ( hashes [ 1 ] , Is . EqualTo ( "sqdtr74hyu0" ) ) ;
76+ }
3277 }
3378}
0 commit comments