diff --git a/.azuredevops/pipelines/templates/build-steps.yml b/.azuredevops/pipelines/templates/build-steps.yml index 719b0470b..86f7fc21c 100644 --- a/.azuredevops/pipelines/templates/build-steps.yml +++ b/.azuredevops/pipelines/templates/build-steps.yml @@ -31,4 +31,4 @@ steps: command: 'custom' projects: '$(TestProject)' custom: 'test' - continueOnError: true + continueOnError: false diff --git a/src/Ombi.Core.Tests/Rule/Request/AutoApproveRuleTests.cs b/src/Ombi.Core.Tests/Rule/Request/AutoApproveRuleTests.cs index cae45aaf9..595ba39e0 100644 --- a/src/Ombi.Core.Tests/Rule/Request/AutoApproveRuleTests.cs +++ b/src/Ombi.Core.Tests/Rule/Request/AutoApproveRuleTests.cs @@ -18,7 +18,8 @@ namespace Ombi.Core.Tests.Rule.Request { private List _users = new List { - new OmbiUser { Id = Guid.NewGuid().ToString("N"), UserName="abc",UserType = UserType.LocalUser} + new OmbiUser { Id = Guid.NewGuid().ToString("N"), UserName="abc", NormalizedUserName = "ABC", UserType = UserType.LocalUser}, + new OmbiUser { Id = Guid.NewGuid().ToString("N"), UserName="Sys", NormalizedUserName = "SYS", UserType = UserType.SystemUser} }; [SetUp] @@ -92,6 +93,18 @@ namespace Ombi.Core.Tests.Rule.Request Assert.True(request.Approved); } + [Test] + public async Task Should_ReturnSuccess_WhenSystemUserAndRequestTV() + { + PrincipalMock.Setup(x => x.Identity.Name).Returns("sys"); + UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.AutoApproveTv)).ReturnsAsync(false); + var request = new BaseRequest() { RequestType = Store.Entities.RequestType.TvShow }; + var result = await Rule.Execute(request); + + Assert.True(result.Success); + Assert.True(request.Approved); + } + [Test] public async Task Should_ReturnFail_WhenAutoApproveTV_And_RequestMovie() { diff --git a/src/Ombi.Core.Tests/Rule/Request/CanRequestRuleTests.cs b/src/Ombi.Core.Tests/Rule/Request/CanRequestRuleTests.cs index 90703b6a0..03dc6f68c 100644 --- a/src/Ombi.Core.Tests/Rule/Request/CanRequestRuleTests.cs +++ b/src/Ombi.Core.Tests/Rule/Request/CanRequestRuleTests.cs @@ -18,7 +18,8 @@ namespace Ombi.Core.Tests.Rule.Request { private List _users = new List { - new OmbiUser { Id = Guid.NewGuid().ToString("N"), UserName="abc", UserType = UserType.LocalUser} + new OmbiUser { Id = Guid.NewGuid().ToString("N"), UserName="abc", NormalizedUserName = "ABC", UserType = UserType.LocalUser}, + new OmbiUser { Id = Guid.NewGuid().ToString("N"), UserName="sys", NormalizedUserName = "SYS", UserType = UserType.SystemUser} }; [SetUp] @@ -68,6 +69,17 @@ namespace Ombi.Core.Tests.Rule.Request Assert.True(result.Success); } + [Test] + public async Task Should_ReturnSuccess_WhenRequestingMovieWithSystemRole() + { + PrincipalMock.Setup(x => x.Identity.Name).Returns("sys"); + UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.Admin)).ReturnsAsync(false); + var request = new BaseRequest() { RequestType = Store.Entities.RequestType.Movie }; + var result = await Rule.Execute(request); + + Assert.True(result.Success); + } + [Test] public async Task Should_ReturnSuccess_WhenRequestingTVWithAdminRole() { diff --git a/src/Ombi.Test.Common/MockHelper.cs b/src/Ombi.Test.Common/MockHelper.cs index 3e871c48f..00e327abc 100644 --- a/src/Ombi.Test.Common/MockHelper.cs +++ b/src/Ombi.Test.Common/MockHelper.cs @@ -3,7 +3,6 @@ using MockQueryable.Moq; using Moq; using Ombi.Core.Authentication; using Ombi.Store.Entities; -using System; using System.Collections.Generic; using System.Linq; diff --git a/src/Ombi.Test.Common/Ombi.Test.Common.csproj b/src/Ombi.Test.Common/Ombi.Test.Common.csproj index 3c328ec19..f8da0ff6d 100644 --- a/src/Ombi.Test.Common/Ombi.Test.Common.csproj +++ b/src/Ombi.Test.Common/Ombi.Test.Common.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/Ombi.sln b/src/Ombi.sln index 43abdea44..7a32a4bf9 100644 --- a/src/Ombi.sln +++ b/src/Ombi.sln @@ -7,10 +7,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ombi", "Ombi\Ombi.csproj", EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{9D30CCF8-A115-4EB7-A34D-07780D752789}" ProjectSection(SolutionItems) = preProject - ..\appveyor.yml = ..\appveyor.yml + ..\.azuredevops\pipelines\templates\build-steps.yml = ..\.azuredevops\pipelines\templates\build-steps.yml ..\build.cake = ..\build.cake ..\CHANGELOG.md = ..\CHANGELOG.md - ..\ci-build.yaml = ..\ci-build.yaml + ..\.azuredevops\pipelines\publish-job.yml = ..\.azuredevops\pipelines\publish-job.yml EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ombi.Core", "Ombi.Core\Ombi.Core.csproj", "{F56E79C7-791D-4668-A0EC-29E3BBC8D24B}"