AyCode.Core/AyCode.Database.Tests/Users/AcUserDalTestBase.cs

62 lines
2.3 KiB
C#

using AyCode.Database.DataLayers.Users;
using AyCode.Database.DbContexts;
using AyCode.Database.DbContexts.Users;
using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.ServiceProviders;
using AyCode.Interfaces.Users;
namespace AyCode.Database.Tests.Users
{
public abstract class AcUserDalTestBase<TDal, TDbContext, TUser, TProfile, TUserToken, TServiceProvider> : AcDatabaseTestModelBase<TDal, TDbContext>
where TDal : AcUserDalBase<TDbContext, TUser, TProfile, TUserToken, TServiceProvider>
where TDbContext : AcDbContextBase, IAcUserDbContextBase<TUser, TProfile, TUserToken,TServiceProvider>
where TUser : class, IAcUser<TProfile, TServiceProvider>
where TProfile : class, IAcProfile
where TUserToken : class, IAcUserTokenBase
where TServiceProvider : class, IAcServiceProvider
{
[TestMethod]
public virtual void GetUserById_ReturnsUser_WhenUserExists(string userIdString)
{
var userId = Guid.Parse(userIdString);
var user = Dal.GetUserById(userId);
Assert.IsNotNull(user, "User is null");
Assert.IsNotNull(user.Profile, "Profile is null");
Assert.AreEqual(userId, user.Id);
}
[TestMethod]
public virtual void GetUserByEmail_ReturnsUser_WhenUserExists(string email)
{
var user = Dal.GetUserByEmail(email);
Assert.IsNotNull(user, "User is null");
Assert.IsNotNull(user.Profile, "Profile is null");
Assert.AreEqual(email, user.EmailAddress);
}
[TestMethod]
public virtual async Task GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email)
{
TUser? user = null;
user = await Dal.GetUserByEmailAsync(email).ConfigureAwait(false);
//user = await Dal.SessionAsync(ctx => ctx.Users.FirstOrDefault(x => x.EmailAddress == email)).ConfigureAwait(false);
//await using (var ctx = Dal.Context)
//{
// user = await ctx.Users.FirstOrDefaultAsync(x => x.EmailAddress == email).ConfigureAwait(false);
//}
Assert.IsNotNull(user, "User is null");
Assert.IsNotNull(user.Profile, "Profile is null");
Assert.AreEqual(email, user.EmailAddress);
}
}
}