Rules changes and rework

This commit is contained in:
Jamie.Rees 2017-06-06 09:27:51 +01:00
commit 9f4a8902f9
32 changed files with 2804 additions and 35 deletions

View file

@ -0,0 +1,22 @@
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Moq;
namespace Ombi.Core.Tests
{
public static class DbHelper
{
public static DbSet<T> GetQueryableMockDbSet<T>(params T[] sourceList) where T : class
{
var queryable = sourceList.AsQueryable();
var dbSet = new Mock<DbSet<T>>();
dbSet.As<IQueryable<T>>().Setup(m => m.Provider).Returns(queryable.Provider);
dbSet.As<IQueryable<T>>().Setup(m => m.Expression).Returns(queryable.Expression);
dbSet.As<IQueryable<T>>().Setup(m => m.ElementType).Returns(queryable.ElementType);
dbSet.As<IQueryable<T>>().Setup(m => m.GetEnumerator()).Returns(queryable.GetEnumerator());
return dbSet.Object;
}
}
}

View file

@ -0,0 +1,56 @@
using Moq;
using Ombi.Core.Models.Search;
using Ombi.Core.Rule.Rules.Search;
using Ombi.Store.Context;
using Ombi.Store.Entities;
using Xunit;
namespace Ombi.Core.Tests.Rule.Search
{
public class RadarrCacheRuleTests
{
public RadarrCacheRuleTests()
{
ContextMock = new Mock<IOmbiContext>();
Rule = new RadarrCacheRule(ContextMock.Object);
}
private RadarrCacheRule Rule { get; }
private Mock<IOmbiContext> ContextMock { get; }
[Fact]
public void Should_ReturnApproved_WhenMovieIsInRadarr()
{
var list = DbHelper.GetQueryableMockDbSet(new RadarrCache
{
TheMovieDbId = 123
});
ContextMock.Setup(x => x.RadarrCache).Returns(list);
var request = new SearchMovieViewModel { Id = 123 };
var result = Rule.Execute(request);
Assert.Equal(result.Success, true);
Assert.Equal(request.Approved, true);
}
[Fact]
public void Should_ReturnNotApproved_WhenMovieIsNotInRadarr()
{
var list = DbHelper.GetQueryableMockDbSet(new RadarrCache
{
TheMovieDbId = 000012
});
ContextMock.Setup(x => x.RadarrCache).Returns(list);
var request = new SearchMovieViewModel { Id = 123 };
var result = Rule.Execute(request);
Assert.Equal(result.Success, true);
Assert.Equal(request.Approved, false);
}
}
}