Files
hangfire-ravendb/src/Hangfire.Raven.Tests/PersistentJobQueueProviderCollectionFacts.cs
T
Michael Johnson 1002c28ddd Added Hangfire.Raven.Tests project
- Refactored Repository and RavenStorage to allow injection of a TestRepository (using an in-memory database for unit tests)
- Made several fixes to comply with unit tests (notably RavenDistributedLock and RavenJobQueue)
- Merged fixes from xinix00 pull request #11 (https://github.com/RefreshingIO/hangfire-ravendb/pull/11)
2017-03-07 18:38:18 +11:00

100 lines
3.0 KiB
C#

using System;
using System.Linq;
using Moq;
using Xunit;
using Hangfire.Raven.JobQueues;
namespace Hangfire.Raven.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.Equal(1, result.Length);
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);
}
}
}