-
Notifications
You must be signed in to change notification settings - Fork 133
/
PersistentJobQueueProviderCollectionFacts.cs
98 lines (76 loc) · 2.42 KB
/
PersistentJobQueueProviderCollectionFacts.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
using System;
using System.Linq;
using Moq;
using Xunit;
namespace Hangfire.PostgreSql.Tests
{
public class PersistentJobQueueProviderCollectionFacts
{
private static readonly string[] _queues = {"default", "critical"};
private readonly Mock<IPersistentJobQueueProvider> _defaultProvider;
private readonly Mock<IPersistentJobQueueProvider> _provider;
public PersistentJobQueueProviderCollectionFacts()
{
_defaultProvider = new Mock<IPersistentJobQueueProvider>();
_provider = new Mock<IPersistentJobQueueProvider>();
}
[Fact]
public void Ctor_ThrowsAnException_WhenDefaultProviderIsNull()
{
Assert.Throws<ArgumentNullException>(
() => new PersistentJobQueueProviderCollection(null));
}
[Fact]
public void Enumeration_IncludesTheDefaultProvider()
{
var collection = CreateCollection();
var result = collection.ToArray();
Assert.Single(result);
Assert.Same(_defaultProvider.Object, result[0]);
}
[Fact]
public void GetProvider_ReturnsTheDefaultProvider_WhenProviderCanNotBeResolvedByQueue()
{
var collection = CreateCollection();
var provider = collection.GetProvider("queue");
Assert.Same(_defaultProvider.Object, provider);
}
[Fact]
public void Add_ThrowsAnException_WhenProviderIsNull()
{
var collection = CreateCollection();
var exception = Assert.Throws<ArgumentNullException>(
() => collection.Add(null, _queues));
Assert.Equal("provider", exception.ParamName);
}
[Fact]
public void Add_ThrowsAnException_WhenQueuesCollectionIsNull()
{
var collection = CreateCollection();
var exception = Assert.Throws<ArgumentNullException>(
() => collection.Add(_provider.Object, null));
Assert.Equal("queues", exception.ParamName);
}
[Fact]
public void Enumeration_ContainsAddedProvider()
{
var collection = CreateCollection();
collection.Add(_provider.Object, _queues);
Assert.Contains(_provider.Object, collection);
}
[Fact]
public void GetProvider_CanBeResolved_ByAnyQueue()
{
var collection = CreateCollection();
collection.Add(_provider.Object, _queues);
var provider1 = collection.GetProvider("default");
var provider2 = collection.GetProvider("critical");
Assert.NotSame(_defaultProvider.Object, provider1);
Assert.Same(provider1, provider2);
}
private PersistentJobQueueProviderCollection CreateCollection()
{
return new PersistentJobQueueProviderCollection(_defaultProvider.Object);
}
}
}