mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-14 02:26:55 -07:00
More unit tests
This commit is contained in:
parent
7718cdf11c
commit
ad7b5af997
1 changed files with 106 additions and 0 deletions
106
src/Ombi.Core.Tests/Authentication/OmbiUserManagerTests.cs
Normal file
106
src/Ombi.Core.Tests/Authentication/OmbiUserManagerTests.cs
Normal file
|
@ -0,0 +1,106 @@
|
|||
using Microsoft.AspNetCore.Identity;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Ombi.Api.Plex;
|
||||
using Ombi.Api.Plex.Models;
|
||||
using Ombi.Core.Authentication;
|
||||
using Ombi.Core.Settings;
|
||||
using Ombi.Settings.Settings.Models;
|
||||
using Ombi.Store.Entities;
|
||||
using Ombi.Test.Common;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Ombi.Core.Tests.Authentication
|
||||
{
|
||||
[TestFixture]
|
||||
public class OmbiUserManagerTests
|
||||
{
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
|
||||
UserStore = new Mock<IUserStore<OmbiUser>>();
|
||||
PlexApi = new Mock<IPlexApi>();
|
||||
AuthenticationSettings = new Mock<ISettingsService<AuthenticationSettings>>();
|
||||
|
||||
AuthenticationSettings.Setup(x => x.GetSettingsAsync())
|
||||
.ReturnsAsync(new AuthenticationSettings());
|
||||
_um = new OmbiUserManager(UserStore.Object, null, null, null, null, null, null, null, null,
|
||||
PlexApi.Object, null, null, AuthenticationSettings.Object);
|
||||
}
|
||||
|
||||
public OmbiUserManager _um { get; set; }
|
||||
private Mock<IUserStore<OmbiUser>> UserStore { get; set; }
|
||||
private Mock<IPlexApi> PlexApi { get; set; }
|
||||
private Mock<ISettingsService<AuthenticationSettings>> AuthenticationSettings { get; set; }
|
||||
|
||||
[Test]
|
||||
public async Task CheckPassword_PlexUser_EmailLogin_ValidPassword()
|
||||
{
|
||||
var user = new OmbiUser
|
||||
{
|
||||
UserType = UserType.PlexUser,
|
||||
EmailLogin = true,
|
||||
Email = "MyEmail@email.com"
|
||||
};
|
||||
PlexApi.Setup(x => x.SignIn(It.IsAny<UserRequest>()))
|
||||
.ReturnsAsync(new PlexAuthentication
|
||||
{
|
||||
user = new User
|
||||
{
|
||||
authentication_token = "abc"
|
||||
}
|
||||
});
|
||||
var result = await _um.CheckPasswordAsync(user, "pass");
|
||||
|
||||
Assert.That(result, Is.True);
|
||||
PlexApi.Verify(x => x.SignIn(It.Is<UserRequest>(c => c.login == "MyEmail@email.com")), Times.Once);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task CheckPassword_PlexUser_UserNameLogin_ValidPassword()
|
||||
{
|
||||
var user = new OmbiUser
|
||||
{
|
||||
UserType = UserType.PlexUser,
|
||||
EmailLogin = false,
|
||||
Email = "MyEmail@email.com",
|
||||
UserName = "heyhey"
|
||||
};
|
||||
PlexApi.Setup(x => x.SignIn(It.IsAny<UserRequest>()))
|
||||
.ReturnsAsync(new PlexAuthentication
|
||||
{
|
||||
user = new User
|
||||
{
|
||||
authentication_token = "abc"
|
||||
}
|
||||
});
|
||||
var result = await _um.CheckPasswordAsync(user, "pass");
|
||||
|
||||
Assert.That(result, Is.True);
|
||||
PlexApi.Verify(x => x.SignIn(It.Is<UserRequest>(c => c.login == "heyhey")), Times.Once);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task CheckPassword_PlexUser_UserNameLogin_InvalidPassword()
|
||||
{
|
||||
var user = new OmbiUser
|
||||
{
|
||||
UserType = UserType.PlexUser,
|
||||
EmailLogin = false,
|
||||
Email = "MyEmail@email.com",
|
||||
UserName = "heyhey"
|
||||
};
|
||||
PlexApi.Setup(x => x.SignIn(It.IsAny<UserRequest>()))
|
||||
.ReturnsAsync(new PlexAuthentication());
|
||||
var result = await _um.CheckPasswordAsync(user, "pass");
|
||||
|
||||
Assert.That(result, Is.False);
|
||||
PlexApi.Verify(x => x.SignIn(It.Is<UserRequest>(c => c.login == "heyhey")), Times.Once);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue