Skip to content

Commit 31fe39e

Browse files
(GH-677) Add unit tests
1 parent 34fdbe5 commit 31fe39e

File tree

4 files changed

+94
-21
lines changed

4 files changed

+94
-21
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
namespace DotNetToolkit.Repository.Integration.Test.Data
2+
{
3+
using Configuration.Caching;
4+
using System;
5+
using System.Collections.Concurrent;
6+
7+
public class TestCachingProvider : ICacheProvider
8+
{
9+
private static readonly ConcurrentDictionary<string, object> _cache = new ConcurrentDictionary<string, object>();
10+
11+
public int Increment(string key, int defaultValue, int incrementValue)
12+
{
13+
return (int)_cache.AddOrUpdate(key, defaultValue, (k, oldValue) => (int)oldValue + 1);
14+
}
15+
16+
public void Remove(string key)
17+
{
18+
_cache.TryRemove(key, out _);
19+
}
20+
21+
public void Set<T>(string key, T value, TimeSpan? expiry = null, Action<string> cacheRemovedCallback = null)
22+
{
23+
_cache.AddOrUpdate(key, value, (k, oldValue) => value);
24+
}
25+
26+
public bool TryGetValue<T>(string key, out T value)
27+
{
28+
if (_cache.TryGetValue(key, out object obj))
29+
{
30+
value = (T)obj;
31+
return true;
32+
}
33+
34+
value = default(T);
35+
return false;
36+
}
37+
}
38+
}

test/DotNetToolkit.Repository.Integration.Test/Tests/DependencyInjection/DependencyInjectionTests.Microsoft.cs

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public void DependencyInjectionCanConfigureRepositoriesServices()
3030

3131
Assert.NotNull(provider.GetService<TestRepositoryInterceptorWithDependencyInjectedServices>());
3232
Assert.NotNull(provider.GetService<TestLoggerProvider>());
33+
Assert.NotNull(provider.GetService<TestCachingProvider>());
3334
Assert.NotNull(provider.GetService<TestRepositoryTimeStampInterceptor>());
3435
Assert.NotNull(provider.GetService<TestRepositoryInterceptor>());
3536
Assert.Equal(3, provider.GetServices<IRepositoryInterceptor>().Count());
@@ -145,7 +146,7 @@ public void DependencyInjectionCanConfigureRepositoriesWithInterceptorsFromOptio
145146
}
146147

147148
[Fact]
148-
public void DependencyInjectionCanConfigureRepositoriesWithScannedInterceptors()
149+
public void DependencyInjectionCanConfigureRepositoryOptionsWithScannedInterceptors()
149150
{
150151
var services = new ServiceCollection();
151152

@@ -167,7 +168,7 @@ public void DependencyInjectionCanConfigureRepositoriesWithScannedInterceptors()
167168
}
168169

169170
[Fact]
170-
public void DependencyInjectionCanConfigureLogginProviderWithScannedLogger()
171+
public void DependencyInjectionCanConfigureRepositoryOptionsWithScannedScannedLoggerProvider()
171172
{
172173
var services = new ServiceCollection();
173174

@@ -181,12 +182,23 @@ public void DependencyInjectionCanConfigureLogginProviderWithScannedLogger()
181182
var repoOptions = provider.GetService<IRepositoryOptions>();
182183

183184
Assert.Equal(typeof(TestXUnitLoggerProvider), repoOptions.LoggerProvider.GetType());
185+
}
184186

185-
Assert.Equal(3, repoOptions.Interceptors.Count());
186-
Assert.Equal(3, provider.GetServices<IRepositoryInterceptor>().Count());
187-
Assert.NotNull(provider.GetService<TestRepositoryInterceptorWithDependencyInjectedServices>());
188-
Assert.NotNull(provider.GetService<TestRepositoryTimeStampInterceptor>());
189-
Assert.NotNull(provider.GetService<TestRepositoryInterceptor>());
187+
[Fact]
188+
public void DependencyInjectionCanConfigureRepositoryOptionsWithScannedScannedCachingProvider()
189+
{
190+
var services = new ServiceCollection();
191+
192+
services.AddRepositories<MicrosoftDependencyInjectionTests>(options =>
193+
{
194+
options.UseInMemoryDatabase(Guid.NewGuid().ToString(), ignoreTransactionWarning: true);
195+
options.UseCachingProvider(new TestCachingProvider());
196+
});
197+
198+
var provider = services.BuildServiceProvider();
199+
var repoOptions = provider.GetService<IRepositoryOptions>();
200+
201+
Assert.Equal(typeof(TestCachingProvider), repoOptions.CachingProvider.GetType());
190202
}
191203
}
192204
}

test/DotNetToolkit.Repository.Integration.Test/Tests/DependencyInjection/DependencyInjectionTests.Ninject.cs

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ public void DependencyInjectionCanConfigureRepositoriesServices()
3030
});
3131

3232
Assert.NotNull(kernel.Get<TestRepositoryInterceptorWithDependencyInjectedServices>());
33+
Assert.NotNull(kernel.Get<TestLoggerProvider>());
34+
Assert.NotNull(kernel.Get<TestCachingProvider>());
3335
Assert.NotNull(kernel.Get<TestRepositoryTimeStampInterceptor>());
3436
Assert.NotNull(kernel.Get<TestRepositoryInterceptor>());
3537
Assert.Equal(3, kernel.GetAll<IRepositoryInterceptor>().Count());
@@ -139,7 +141,7 @@ public void DependencyInjectionCanConfigureRepositoriesWithInterceptorsFromOptio
139141
}
140142

141143
[Fact]
142-
public void DependencyInjectionCanConfigureRepositoriesWithScannedInterceptors()
144+
public void DependencyInjectionCanConfigureRepositoryOptionsWithScannedInterceptors()
143145
{
144146
var kernel = new StandardKernel();
145147

@@ -159,7 +161,7 @@ public void DependencyInjectionCanConfigureRepositoriesWithScannedInterceptors()
159161
}
160162

161163
[Fact]
162-
public void DependencyInjectionCanConfigureLogginProviderWithScannedLogger()
164+
public void DependencyInjectionCanConfigureRepositoryOptionsWithScannedScannedLoggerProvider()
163165
{
164166
var kernel = new StandardKernel();
165167

@@ -172,12 +174,22 @@ public void DependencyInjectionCanConfigureLogginProviderWithScannedLogger()
172174
var repoOptions = kernel.Get<IRepositoryOptions>();
173175

174176
Assert.Equal(typeof(TestXUnitLoggerProvider), repoOptions.LoggerProvider.GetType());
177+
}
175178

176-
Assert.Equal(3, repoOptions.Interceptors.Count());
177-
Assert.Equal(3, kernel.GetAll<IRepositoryInterceptor>().Count());
178-
Assert.NotNull(kernel.Get<TestRepositoryInterceptorWithDependencyInjectedServices>());
179-
Assert.NotNull(kernel.Get<TestRepositoryTimeStampInterceptor>());
180-
Assert.NotNull(kernel.Get<TestRepositoryInterceptor>());
179+
[Fact]
180+
public void DependencyInjectionCanConfigureRepositoryOptionsWithScannedScannedCachingProvider()
181+
{
182+
var kernel = new StandardKernel();
183+
184+
kernel.BindRepositories<MicrosoftDependencyInjectionTests>(options =>
185+
{
186+
options.UseInMemoryDatabase(Guid.NewGuid().ToString(), ignoreTransactionWarning: true);
187+
options.UseCachingProvider(new TestCachingProvider());
188+
});
189+
190+
var repoOptions = kernel.Get<IRepositoryOptions>();
191+
192+
Assert.Equal(typeof(TestCachingProvider), repoOptions.CachingProvider.GetType());
181193
}
182194
}
183195
}

test/DotNetToolkit.Repository.Integration.Test/Tests/DependencyInjection/DependencyInjectionTests.Unity.cs

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public void DependencyInjectionCanConfigureRepositoriesServices()
2929

3030
Assert.NotNull(container.Resolve<TestRepositoryInterceptorWithDependencyInjectedServices>());
3131
Assert.NotNull(container.Resolve<TestLoggerProvider>());
32+
Assert.NotNull(container.Resolve<TestCachingProvider>());
3233
Assert.NotNull(container.Resolve<TestRepositoryTimeStampInterceptor>());
3334
Assert.NotNull(container.Resolve<TestRepositoryInterceptor>());
3435
Assert.Equal(3, container.ResolveAll<IRepositoryInterceptor>().Count());
@@ -138,7 +139,7 @@ public void DependencyInjectionCanConfigureRepositoriesWithInterceptorsFromOptio
138139
}
139140

140141
[Fact]
141-
public void DependencyInjectionCanConfigureRepositoriesWithScannedInterceptors()
142+
public void DependencyInjectionCanConfigureRepositoryOptionsWithScannedInterceptors()
142143
{
143144
var container = new UnityContainer();
144145

@@ -158,7 +159,7 @@ public void DependencyInjectionCanConfigureRepositoriesWithScannedInterceptors()
158159
}
159160

160161
[Fact]
161-
public void DependencyInjectionCanConfigureLogginProviderWithScannedLogger()
162+
public void DependencyInjectionCanConfigureRepositoryOptionsWithScannedScannedLoggerProvider()
162163
{
163164
var container = new UnityContainer();
164165

@@ -171,12 +172,22 @@ public void DependencyInjectionCanConfigureLogginProviderWithScannedLogger()
171172
var repoOptions = container.Resolve<IRepositoryOptions>();
172173

173174
Assert.Equal(typeof(TestXUnitLoggerProvider), repoOptions.LoggerProvider.GetType());
175+
}
174176

175-
Assert.Equal(3, repoOptions.Interceptors.Count());
176-
Assert.Equal(3, container.ResolveAll<IRepositoryInterceptor>().Count());
177-
Assert.NotNull(container.Resolve<TestRepositoryInterceptorWithDependencyInjectedServices>());
178-
Assert.NotNull(container.Resolve<TestRepositoryTimeStampInterceptor>());
179-
Assert.NotNull(container.Resolve<TestRepositoryInterceptor>());
177+
[Fact]
178+
public void DependencyInjectionCanConfigureRepositoryOptionsWithScannedScannedCachingProvider()
179+
{
180+
var container = new UnityContainer();
181+
182+
container.RegisterRepositories<MicrosoftDependencyInjectionTests>(options =>
183+
{
184+
options.UseInMemoryDatabase(Guid.NewGuid().ToString(), ignoreTransactionWarning: true);
185+
options.UseCachingProvider(new TestCachingProvider());
186+
});
187+
188+
var repoOptions = container.Resolve<IRepositoryOptions>();
189+
190+
Assert.Equal(typeof(TestCachingProvider), repoOptions.CachingProvider.GetType());
180191
}
181192
}
182193
}

0 commit comments

Comments
 (0)