Skip to content

Commit e127633

Browse files
committed
Fix test failures in MemcachedTest
1 parent 134bbcc commit e127633

File tree

1 file changed

+62
-59
lines changed

1 file changed

+62
-59
lines changed

MemcachedTest/FailurePolicyTest.cs

Lines changed: 62 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -9,85 +9,88 @@
99
using Xunit;
1010
using Microsoft.Extensions.DependencyInjection;
1111
using Microsoft.Extensions.Logging;
12+
using Microsoft.Extensions.Configuration;
1213

1314
namespace MemcachedTest
1415
{
15-
public class FailurePolicyTest
16-
{
17-
[Fact]
18-
public void TestIfCalled()
19-
{
20-
IServiceCollection services = new ServiceCollection();
21-
services.AddEnyimMemcached(options => options.AddServer("memcached", 11212));
22-
services.AddLogging();
23-
IServiceProvider serviceProvider = services.BuildServiceProvider();
24-
16+
public class FailurePolicyTest
17+
{
18+
[Fact]
19+
public void TestIfCalled()
20+
{
21+
IServiceProvider serviceProvider = getServiceProvider();
2522
var config = serviceProvider.GetService<IMemcachedClientConfiguration>();
2623
config.SocketPool.FailurePolicyFactory = new FakePolicy();
2724
config.SocketPool.ConnectionTimeout = TimeSpan.FromSeconds(1);
2825
config.SocketPool.ReceiveTimeout = TimeSpan.FromSeconds(1);
2926

3027
var logger = serviceProvider.GetService<ILoggerFactory>();
3128

32-
var client = new MemcachedClient(logger, config);
29+
var client = new MemcachedClient(logger, config);
3330

3431
Assert.Null(client.Get("a"));
35-
}
36-
37-
class FakePolicy : INodeFailurePolicy, INodeFailurePolicyFactory
38-
{
39-
bool INodeFailurePolicy.ShouldFail()
40-
{
41-
Assert.True(true);
42-
43-
return true;
44-
}
45-
46-
INodeFailurePolicy INodeFailurePolicyFactory.Create(IMemcachedNode node)
47-
{
48-
return new FakePolicy();
49-
}
50-
}
51-
52-
[Fact]
53-
public void TestThrottlingFailurePolicy()
54-
{
55-
IServiceCollection services = new ServiceCollection();
56-
services.AddEnyimMemcached(options => options.AddServer("localhost", 11212));
57-
services.AddLogging();
58-
IServiceProvider serviceProvider = services.BuildServiceProvider();
59-
60-
var config = serviceProvider.GetService<IMemcachedClientConfiguration>();
61-
config.SocketPool.FailurePolicyFactory = new ThrottlingFailurePolicyFactory(4, TimeSpan.FromMilliseconds(2000));
62-
config.SocketPool.ConnectionTimeout = TimeSpan.FromMilliseconds(5);
63-
config.SocketPool.ReceiveTimeout = TimeSpan.FromMilliseconds(5);
64-
config.SocketPool.MinPoolSize = 1;
65-
config.SocketPool.MaxPoolSize = 1;
32+
}
33+
34+
class FakePolicy : INodeFailurePolicy, INodeFailurePolicyFactory
35+
{
36+
bool INodeFailurePolicy.ShouldFail()
37+
{
38+
Assert.True(true);
39+
40+
return true;
41+
}
42+
43+
INodeFailurePolicy INodeFailurePolicyFactory.Create(IMemcachedNode node)
44+
{
45+
return new FakePolicy();
46+
}
47+
}
48+
49+
[Fact]
50+
public void TestThrottlingFailurePolicy()
51+
{
52+
var serviceProvider = getServiceProvider();
53+
var config = serviceProvider.GetService<IMemcachedClientConfiguration>();
54+
config.SocketPool.FailurePolicyFactory = new ThrottlingFailurePolicyFactory(4, TimeSpan.FromMilliseconds(2000));
55+
config.SocketPool.ConnectionTimeout = TimeSpan.FromMilliseconds(5);
56+
config.SocketPool.ReceiveTimeout = TimeSpan.FromMilliseconds(5);
57+
config.SocketPool.MinPoolSize = 1;
58+
config.SocketPool.MaxPoolSize = 1;
6659

6760
var logger = serviceProvider.GetService<ILoggerFactory>();
6861
var client = new MemcachedClient(logger, config);
6962
var canFail = false;
70-
var didFail = false;
63+
var didFail = false;
7164

72-
client.NodeFailed += node =>
73-
{
74-
Assert.True(canFail, "canfail");
65+
client.NodeFailed += node =>
66+
{
67+
Assert.True(canFail, "canfail");
7568

76-
didFail = true;
77-
};
69+
didFail = true;
70+
};
7871

79-
Assert.Null(client.Get("a"));
80-
Assert.Null(client.Get("a"));
72+
Assert.Null(client.Get("a"));
73+
Assert.Null(client.Get("a"));
8174

82-
canFail = true;
83-
Thread.Sleep(2000);
75+
canFail = true;
76+
Thread.Sleep(2000);
8477

85-
Assert.Null(client.Get("a"));
86-
Assert.Null(client.Get("a"));
87-
Assert.Null(client.Get("a"));
88-
Assert.Null(client.Get("a"));
78+
Assert.Null(client.Get("a"));
79+
Assert.Null(client.Get("a"));
80+
Assert.Null(client.Get("a"));
81+
Assert.Null(client.Get("a"));
8982

90-
Assert.True(didFail, "didfail");
91-
}
92-
}
83+
Assert.True(didFail, "didfail");
84+
}
85+
86+
private ServiceProvider getServiceProvider()
87+
{
88+
IServiceCollection services = new ServiceCollection();
89+
var configuration = new ConfigurationBuilder().Build();
90+
services.AddSingleton<IConfiguration>(configuration);
91+
services.AddEnyimMemcached(options => options.AddServer("localhost", 11212));
92+
services.AddLogging();
93+
return services.BuildServiceProvider();
94+
}
95+
}
9396
}

0 commit comments

Comments
 (0)