refactoring, improvements, fixes...

This commit is contained in:
jozsef.b@aycode.com 2023-12-11 07:21:08 +01:00
parent c0327df85f
commit 3e4933e9c2
7 changed files with 22 additions and 83 deletions

View File

@ -7,9 +7,8 @@ using TIAM.Database.DbContexts.Users;
namespace TIAM.Database.Test namespace TIAM.Database.Test
{ {
[TestClass] [TestClass]
public class DatabaseTest //: DatabaseTestModelBase<DbContextBase> public class DatabaseTest : AcDatabaseTestBase<DbContextBase>
{ {
[TestInitialize] [TestInitialize]
public void Setup() public void Setup()
{ {
@ -20,31 +19,5 @@ namespace TIAM.Database.Test
public void TearDown() public void TearDown()
{ {
} }
[TestMethod]
public void MsTest_Test()
{
Assert.IsTrue(true);
}
[TestMethod]
public void DatabaseExistsTest()
{
using var ctx = new TransferDestinationDbContext();
//ctx.Database.OpenConnection();
var isConnected = ctx.Database.CanConnect();
Assert.IsTrue(isConnected);
}
[TestMethod]
public void UserDalTest()
{
using var ctx = new UserDbContext();
var isConnected = ctx.Database.CanConnect();
Assert.IsTrue(isConnected);
}
} }
} }

View File

@ -12,14 +12,11 @@ using TIAM.Database.DbContexts.ServiceProviders;
namespace TIAM.Database.Test namespace TIAM.Database.Test
{ {
[TestClass] [TestClass]
public class ServiceProviderDalTest : DatabaseTestModelBase<ServiceProviderDbContext> public class ServiceProviderDalTest : AcDatabaseTestModelBase<ServiceProviderDal, ServiceProviderDbContext>
{ {
private ServiceProviderDal _serviceProviderDal;
[TestInitialize] [TestInitialize]
public void Setup() public void Setup()
{ {
_serviceProviderDal = new ServiceProviderDal();
} }
[TestCleanup] [TestCleanup]
@ -27,14 +24,15 @@ namespace TIAM.Database.Test
{ } { }
[TestMethod] [TestMethod]
//[DataRow(Guid.Parse("540271F6-C604-4C16-8160-D5A7CAFEDF00")] [DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
public async Task GetPermissionContextMappingByContext_ReturnsPermissionContextMapping_WhenPermissionContextMappingExists()//(Guid contextId) public async Task GetPermissionContextMappingByContext_ReturnsPermissionContextMapping_WhenPermissionContextMappingExists(string contextIdString)
{ {
var contextId = Guid.Parse("540271F6-C604-4C16-8160-D5A7CAFEDF00"); var contextId = Guid.Parse(contextIdString);
var permMapping = await _serviceProviderDal.GetPermissionContextMappingByContextIdAsync(contextId); var permMapping = await Dal.GetPermissionContextMappingByContextIdAsync(contextId);
Assert.IsNotNull(permMapping); Assert.IsNotNull(permMapping, "Result is null");
Assert.IsTrue(permMapping.Count > 0, "Result count: 0");
} }
} }
} }

View File

@ -1,5 +1,6 @@
using AyCode.Database.DataLayers; using AyCode.Database.DataLayers;
using AyCode.Database.Tests; using AyCode.Database.Tests;
using AyCode.Database.Tests.Users;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.ObjectModel;
using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UnitTesting;
@ -11,10 +12,9 @@ using TIAM.Entities.Users;
namespace TIAM.Database.Test namespace TIAM.Database.Test
{ {
[TestClass] [TestClass]
public class UserDalTests : DatabaseTestModelBase<UserDbContext> public class UserDalTests : AcUserDalTestBase<UserDal, UserDbContext, User, UserToken>
{ {
private Mock<UserDbContext> _mockContext; private Mock<UserDbContext> _mockContext;
private UserDal _userDal;
[TestInitialize] [TestInitialize]
public void TestInitialize() public void TestInitialize()
@ -29,40 +29,6 @@ namespace TIAM.Database.Test
//_mockContext.Setup(c => c.Users).Returns(mockSet.Object); //_mockContext.Setup(c => c.Users).Returns(mockSet.Object);
//_userDal = new UserDal(_mockContext.Object); //_userDal = new UserDal(_mockContext.Object);
_userDal = PooledDal.CreateDal<UserDal>();
}
[TestMethod]
[DataRow("test@tiam.hu")]
public void GetUserByEmail_ReturnsUser_WhenUserExists(string email)
{
//var userDal = PooledDal.CreateDal<UserDal>();
var user = _userDal.GetUserByEmail(email);
Assert.IsNotNull(user);
Assert.AreEqual(email, user.EmailAddress);
}
[TestMethod]
[DataRow("test@tiam.hu")]
public async Task GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email)
{
User? user = null;
//var userDal = PooledDal.CreateDal<UserDal>();
user = await _userDal.GetUserByEmailAsync(email).ConfigureAwait(false);
//user = await _userDal.SessionAsync(ctx => ctx.Users.FirstOrDefault(x => x.EmailAddress == email)).ConfigureAwait(false);
//await using (var ctx = _userDal.Context)
//{
// user = await ctx.Users.FirstOrDefaultAsync(x => x.EmailAddress == email).ConfigureAwait(false);
//}
Assert.IsNotNull(user);
Assert.AreEqual(email, user.EmailAddress);
} }
//[TestMethod] //[TestMethod]

View File

@ -13,6 +13,7 @@ using TIAM.Entities.Users;
using TIAM.Database.DbContexts.ServiceProviders; using TIAM.Database.DbContexts.ServiceProviders;
using TIAM.Database.DbSets.Permissions; using TIAM.Database.DbSets.Permissions;
using TIAM.Database.DbSets.Users; using TIAM.Database.DbSets.Users;
using AyCode.Database.DataLayers;
namespace TIAM.Database.DataLayers.ServiceProviders namespace TIAM.Database.DataLayers.ServiceProviders

View File

@ -10,6 +10,15 @@ namespace TIAM.Database.DataLayers.ServiceProviders;
public static class ServiceProviderDalExtension public static class ServiceProviderDalExtension
{ {
public static IQueryable<AssignedUser> GetAssignedUsersByPermissionGroupId(this ServiceProviderDbContext ctx, Guid permissionGroupId)
{
return ctx.AssignedUsers
.Where(user => ctx.PermissionGroupUserMappings
.Where(x => x.PermissionGroupId == permissionGroupId)
.Select(x => x.AssignedUserId)
.Contains(user.Id));
}
public static IQueryable<PermissionContextMapping> GetPermissionContextMappingByContextId(this IServiceProviderDbContext ctx, Guid contextId) public static IQueryable<PermissionContextMapping> GetPermissionContextMappingByContextId(this IServiceProviderDbContext ctx, Guid contextId)
{ {
var subjectIds = ctx.GetAssignedUsersByContextId(contextId).Select(x => x.Id). var subjectIds = ctx.GetAssignedUsersByContextId(contextId).Select(x => x.Id).

View File

@ -15,9 +15,10 @@ namespace TIAM.Database.DbContexts.Users
{ {
public class UserDbContext : DbContextBase, IUserDbContext public class UserDbContext : DbContextBase, IUserDbContext
{ {
public virtual DbSet<User> Users { get; set; } public DbSet<User> Users { get; set; }
public DbSet<UserToken> UserTokens { get; set; } public DbSet<UserToken> UserTokens { get; set; }
public UserDbContext() //: this(string.Empty) public UserDbContext() //: this(string.Empty)
{ {

View File

@ -5,15 +5,6 @@ namespace TIAM.Database.DbSets.Users;
public static class AssignedUserDbSetExtensions public static class AssignedUserDbSetExtensions
{ {
public static IQueryable<AssignedUser> GetAssignedUsersByPermissionGroupId(this ServiceProviderDbContext ctx, Guid permissionGroupId)
{
return ctx.AssignedUsers
.Where(user => ctx.PermissionGroupUserMappings
.Where(x => x.PermissionGroupId == permissionGroupId)
.Select(x => x.AssignedUserId)
.Contains(user.Id));
}
public static AssignedUser? GetAssignedUserById(this IAssignedUserDbSet ctx, Guid assignedUserId) public static AssignedUser? GetAssignedUserById(this IAssignedUserDbSet ctx, Guid assignedUserId)
=> ctx.AssignedUsers.FirstOrDefault(x => x.Id == assignedUserId); => ctx.AssignedUsers.FirstOrDefault(x => x.Id == assignedUserId);