Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 72d4e24

Browse files
committed
Add config tests to test state of RedisClient vs RedisEndpoint in Client Managers
1 parent 8c62075 commit 72d4e24

1 file changed

Lines changed: 79 additions & 4 deletions

File tree

tests/ServiceStack.Redis.Tests/ConfigTests.cs

Lines changed: 79 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)