From 7c516d6b1bb89348642e98107f4dc8b6f812257d Mon Sep 17 00:00:00 2001 From: tidusjar Date: Fri, 13 Jan 2023 20:46:01 +0000 Subject: [PATCH] Tests working --- .../Middlewear/ApiKeyMiddlewearTests.cs | 49 ++++++++++++++++--- src/Ombi.Tests/Ombi.Tests.csproj | 1 + 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/src/Ombi.Tests/Middlewear/ApiKeyMiddlewearTests.cs b/src/Ombi.Tests/Middlewear/ApiKeyMiddlewearTests.cs index 865d8d001..576899476 100644 --- a/src/Ombi.Tests/Middlewear/ApiKeyMiddlewearTests.cs +++ b/src/Ombi.Tests/Middlewear/ApiKeyMiddlewearTests.cs @@ -2,7 +2,9 @@ using Moq; using Moq.AutoMock; using NUnit.Framework; +using NUnit.Framework.Constraints; using Ombi.Core.Authentication; +using Ombi.Test.Common; using System; using System.Collections.Generic; using System.Linq; @@ -43,15 +45,50 @@ namespace Ombi.Tests.Middlewear var context = GetContext(); context.Request.Path = "/api"; context.Request.Headers.Add("UserAccessToken", new Microsoft.Extensions.Primitives.StringValues("test")); - - var umMock = new Mock(); - _mocker.Setup(x => (OmbiUserManager)x.GetService(typeof(OmbiUserManager))) + var user = new Store.Entities.OmbiUser + { + UserAccessToken = "test", + UserName = "unit test" + }; + var umMock = MockHelper.MockUserManager(new List + { + user + }); + umMock.Setup(x => x.GetRolesAsync(user)).ReturnsAsync(new List { "Admin" }); + _mocker.Setup(x => x.GetService(typeof(OmbiUserManager))) .Returns(umMock.Object); - - + + await _subject.Invoke(context); - _mocker.Verify(x => x.GetService(It.IsAny()), Times.Never); + _mocker.Verify(x => x.GetService(It.IsAny()), Times.Once); + umMock.Verify(x => x.UpdateAsync(user), Times.Once); + } + + [Test] + public async Task ValidateUserAccessToken_Token_Invalid() + { + var context = GetContext(); + context.Request.Path = "/api"; + context.Request.Headers.Add("UserAccessToken", new Microsoft.Extensions.Primitives.StringValues("invalid")); + var user = new Store.Entities.OmbiUser + { + UserAccessToken = "test", + UserName = "unit test" + }; + var umMock = MockHelper.MockUserManager(new List + { + user + }); + umMock.Setup(x => x.GetRolesAsync(user)).ReturnsAsync(new List { "Admin" }); + _mocker.Setup(x => x.GetService(typeof(OmbiUserManager))) + .Returns(umMock.Object); + + + await _subject.Invoke(context); + + Assert.That(context.Response.StatusCode, Is.EqualTo(401)); + umMock.Verify(x => x.UpdateAsync(user), Times.Never); } private HttpContext GetContext() diff --git a/src/Ombi.Tests/Ombi.Tests.csproj b/src/Ombi.Tests/Ombi.Tests.csproj index 01ea2104b..77e1769f9 100644 --- a/src/Ombi.Tests/Ombi.Tests.csproj +++ b/src/Ombi.Tests/Ombi.Tests.csproj @@ -19,6 +19,7 @@ +