@@ -15,10 +15,10 @@ public class ConfigTests
1515 [ TestCase ( "host:1?db=2" , "{Host:host,Port:1,Db:2}" ) ]
1616 [ TestCase ( "host?ssl=true" , "{Host:host,Port:6380,Ssl:True}" ) ]
1717 [ TestCase ( "host:1?ssl=true" , "{Host:host,Port:1,Ssl:True}" ) ]
18- [ TestCase ( "host:1?sendtimeout=2&receiveTimeout=3&idletimeoutsecs=4" ,
19- "{Host:host,Port:1,SendTimeout:2,ReceiveTimeout:3,IdleTimeOutSecs:4}" ) ]
20- [ TestCase ( "redis://nunit:pass@host:1?ssl=true&db=2&sendtimeout=3&receiveTimeout=4&idletimeoutsecs=5" ,
21- "{Host:host,Port:1,Ssl:True,Client:nunit,Password:pass,Db:2,SendTimeout:3,ReceiveTimeout:4,IdleTimeOutSecs:5}" ) ]
18+ [ TestCase ( "host:1?connectTimeout=1& sendtimeout=2&receiveTimeout=3&idletimeoutsecs=4" ,
19+ "{Host:host,Port:1,ConnectTimeout:1, SendTimeout:2,ReceiveTimeout:3,IdleTimeOutSecs:4}" ) ]
20+ [ TestCase ( "redis://nunit:pass@host:1?ssl=true&db=1&connectTimeout= 2&sendtimeout=3&receiveTimeout=4&idletimeoutsecs=5&NamespacePrefix=prefix. " ,
21+ "{Host:host,Port:1,Ssl:True,Client:nunit,Password:pass,Db:1,ConnectTimeout: 2,SendTimeout:3,ReceiveTimeout:4,IdleTimeOutSecs:5,NamespacePrefix:prefix. }" ) ]
2222 public void Does_handle_different_connection_strings_settings ( string connString , string expectedJsv )
2323 {
2424 var actual = connString . ToRedisEndpoint ( ) ;
@@ -27,5 +27,80 @@ public void Does_handle_different_connection_strings_settings(string connString,
2727 Assert . That ( actual , Is . EqualTo ( expected ) ,
2828 "{0} != {1}" . Fmt ( actual . ToJsv ( ) , expected . ToJsv ( ) ) ) ;
2929 }
30+
31+ [ Test ]
32+ public void Does_set_all_properties_on_Client_using_ClientsManagers ( )
33+ {
34+ var connStr = "redis://nunit:pass@host:1?ssl=true&db=0&connectTimeout=2&sendtimeout=3&receiveTimeout=4&idletimeoutsecs=5&NamespacePrefix=prefix." ;
35+ var expected = "{Host:host,Port:1,Ssl:True,Client:nunit,Password:pass,Db:0,ConnectTimeout:2,SendTimeout:3,ReceiveTimeout:4,IdleTimeOutSecs:5,NamespacePrefix:prefix.}"
36+ . FromJsv < RedisEndpoint > ( ) ;
37+
38+ using ( var pooledManager = new RedisManagerPool ( connStr ) )
39+ {
40+ AssertClientManager ( pooledManager , expected ) ;
41+ }
42+ using ( var pooledManager = new PooledRedisClientManager ( connStr ) )
43+ {
44+ AssertClientManager ( pooledManager , expected ) ;
45+ }
46+ using ( var basicManager = new BasicRedisClientManager ( connStr ) )
47+ {
48+ AssertClientManager ( basicManager , expected ) ;
49+ }
50+ }
51+
52+ private static void AssertClientManager ( IRedisClientsManager redisManager , RedisEndpoint expected )
53+ {
54+ using ( var readWrite = ( RedisClient ) redisManager . GetClient ( ) )
55+ using ( var readOnly = ( RedisClient ) redisManager . GetReadOnlyClient ( ) )
56+ using ( var cacheClientWrapper = ( RedisClientManagerCacheClient ) redisManager . GetCacheClient ( ) )
57+ {
58+ AssertClient ( readWrite , expected ) ;
59+ AssertClient ( readOnly , expected ) ;
60+
61+ using ( var cacheClient = ( RedisClient ) cacheClientWrapper . GetClient ( ) )
62+ {
63+ AssertClient ( cacheClient , expected ) ;
64+ }
65+ }
66+ }
67+
68+ private static void AssertClient ( RedisClient redis , RedisEndpoint expected )
69+ {
70+ Assert . That ( redis . Host , Is . EqualTo ( expected . Host ) ) ;
71+ Assert . That ( redis . Port , Is . EqualTo ( expected . Port ) ) ;
72+ Assert . That ( redis . Ssl , Is . EqualTo ( expected . Ssl ) ) ;
73+ Assert . That ( redis . Client , Is . EqualTo ( expected . Client ) ) ;
74+ Assert . That ( redis . Password , Is . EqualTo ( expected . Password ) ) ;
75+ Assert . That ( redis . Db , Is . EqualTo ( expected . Db ) ) ;
76+ Assert . That ( redis . ConnectTimeout , Is . EqualTo ( expected . ConnectTimeout ) ) ;
77+ Assert . That ( redis . SendTimeout , Is . EqualTo ( expected . SendTimeout ) ) ;
78+ Assert . That ( redis . ReceiveTimeout , Is . EqualTo ( expected . ReceiveTimeout ) ) ;
79+ Assert . That ( redis . IdleTimeOutSecs , Is . EqualTo ( expected . IdleTimeOutSecs ) ) ;
80+ Assert . That ( redis . NamespacePrefix , Is . EqualTo ( expected . NamespacePrefix ) ) ;
81+ }
82+
83+ [ Test ]
84+ public void Does_set_Client_name_on_Connection ( )
85+ {
86+ using ( var redis = new RedisClient ( "localhost?Client=nunit" ) )
87+ {
88+ var clientName = redis . GetClient ( ) ;
89+
90+ Assert . That ( clientName , Is . EqualTo ( "nunit" ) ) ;
91+ }
92+ }
93+
94+ [ Test ]
95+ public void Does_set_Client_on_Pooled_Connection ( )
96+ {
97+ using ( var redisManager = new PooledRedisClientManager ( "localhost?Client=nunit" ) )
98+ using ( var redis = redisManager . GetClient ( ) )
99+ {
100+ var clientName = redis . GetClient ( ) ;
101+
102+ Assert . That ( clientName , Is . EqualTo ( "nunit" ) ) ;
103+ }
104+ }
30105 }
31106}
0 commit comments