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

58 lines
2.1 KiB
C#

using AyCode.Database.DataLayers.Users;
using AyCode.Database.DbContexts;
using AyCode.Database.DbContexts.Users;
using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.Users;
namespace AyCode.Database.Tests.Users
{
public abstract class AcUserDalTestBase<TDal, TDbContext, TUser, TProfile, TUserToken> : AcDatabaseTestModelBase<TDal, TDbContext>
where TDal : AcUserDalBase<TDbContext, TUser, TProfile, TUserToken>
where TDbContext : AcDbContextBase, IAcUserDbContextBase<TUser, TProfile, TUserToken>
where TUser : class, IUserBase<TProfile>
where TProfile : class, IAcProfileBase
where TUserToken : class, IUserTokenBase
{
[TestMethod]
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
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.AreEqual(userId, user.Id);
}
[TestMethod]
[DataRow("test@tiam.hu")]
public virtual void GetUserByEmail_ReturnsUser_WhenUserExists(string email)
{
var user = Dal.GetUserByEmail(email);
Assert.IsNotNull(user, "User is null");
Assert.AreEqual(email, user.EmailAddress);
}
[TestMethod]
[DataRow("test@tiam.hu")]
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.AreEqual(email, user.EmailAddress);
}
}
}