1+ using NUnit . Framework ;
2+ using ServiceStack . Text ;
3+
4+ namespace ServiceStack . Redis . Tests
5+ {
6+ [ Ignore ( "Reenable when CI has Sentinel" ) ]
7+ [ TestFixture , Category ( "Integration" ) ]
8+ public class Redis3SentinelSetupTests
9+ : RedisClientTestsBase
10+ {
11+ static string [ ] SentinelHosts = new [ ]
12+ {
13+ "127.0.0.1:26380" ,
14+ "127.0.0.1:26381" ,
15+ "127.0.0.1:26382" ,
16+ } ;
17+
18+ [ Test ]
19+ public void Can_connect_to_3SentinelSetup ( )
20+ {
21+ var sentinel = new RedisSentinel ( SentinelHosts ) ;
22+
23+ var redisManager = sentinel . Start ( ) ;
24+
25+ using ( var client = redisManager . GetClient ( ) )
26+ {
27+ client . FlushAll ( ) ;
28+
29+ client . SetEntry ( "Sentinel3Setup" , "IntranetSentinel" ) ;
30+
31+ var result = client . GetEntry ( "Sentinel3Setup" ) ;
32+ Assert . That ( result , Is . EqualTo ( "IntranetSentinel" ) ) ;
33+ }
34+ }
35+
36+ static string [ ] GoogleCloudSentinelHosts = new [ ]
37+ {
38+ "146.148.77.31" ,
39+ "130.211.139.141" ,
40+ "107.178.218.53" ,
41+ } ;
42+
43+ [ Test ]
44+ public void Can_connect_directly_to_Redis_Instances ( )
45+ {
46+ foreach ( var host in GoogleCloudSentinelHosts )
47+ {
48+ using ( var client = new RedisClient ( host , 6379 ) )
49+ {
50+ "{0}:6379" . Print ( host ) ;
51+ client . Info . PrintDump ( ) ;
52+ }
53+
54+ using ( var sentinel = new RedisClient ( host , 26379 ) )
55+ {
56+ "{0}:26379" . Print ( host ) ;
57+ sentinel . Info . PrintDump ( ) ;
58+ }
59+ }
60+ }
61+
62+ [ Test ]
63+ public void Can_connect_to_GoogleCloud_3SentinelSetup ( )
64+ {
65+ var sentinel = new RedisSentinel ( GoogleCloudSentinelHosts , masterName : "master" )
66+ {
67+ IpAddressMap = {
68+ { "10.240.34.152" , "146.148.77.31" } ,
69+ { "10.240.203.193" , "130.211.139.141" } ,
70+ { "10.240.209.52" , "107.178.218.53" } ,
71+ }
72+ } ;
73+
74+ var redisManager = sentinel . Start ( ) ;
75+
76+ using ( var client = redisManager . GetClient ( ) )
77+ {
78+ "{0}:{1}" . Print ( client . Host , client . Port ) ;
79+
80+ client . FlushAll ( ) ;
81+
82+ client . SetEntry ( "Sentinel3Setup" , "GoogleCloud" ) ;
83+
84+ var result = client . GetEntry ( "Sentinel3Setup" ) ;
85+
86+ Assert . That ( result , Is . EqualTo ( "GoogleCloud" ) ) ;
87+ }
88+ }
89+ }
90+ }
0 commit comments