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
{
[TestClass]
public class DatabaseTest //: DatabaseTestModelBase<DbContextBase>
public class DatabaseTest : AcDatabaseTestBase<DbContextBase>
{
[TestInitialize]
public void Setup()
{
@ -20,31 +19,5 @@ namespace TIAM.Database.Test
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
{
[TestClass]
public class ServiceProviderDalTest : DatabaseTestModelBase<ServiceProviderDbContext>
public class ServiceProviderDalTest : AcDatabaseTestModelBase<ServiceProviderDal, ServiceProviderDbContext>
{
private ServiceProviderDal _serviceProviderDal;
[TestInitialize]
public void Setup()
{
_serviceProviderDal = new ServiceProviderDal();
}
[TestCleanup]
@ -27,14 +24,15 @@ namespace TIAM.Database.Test
{ }
[TestMethod]
//[DataRow(Guid.Parse("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
public async Task GetPermissionContextMappingByContext_ReturnsPermissionContextMapping_WhenPermissionContextMappingExists()//(Guid contextId)
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
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.Tests;
using AyCode.Database.Tests.Users;
using Microsoft.EntityFrameworkCore;
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
using Microsoft.VisualStudio.TestTools.UnitTesting;
@ -11,10 +12,9 @@ using TIAM.Entities.Users;
namespace TIAM.Database.Test
{
[TestClass]
public class UserDalTests : DatabaseTestModelBase<UserDbContext>
public class UserDalTests : AcUserDalTestBase<UserDal, UserDbContext, User, UserToken>
{
private Mock<UserDbContext> _mockContext;
private UserDal _userDal;
[TestInitialize]
public void TestInitialize()
@ -29,40 +29,6 @@ namespace TIAM.Database.Test
//_mockContext.Setup(c => c.Users).Returns(mockSet.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]

View File

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

View File

@ -10,6 +10,15 @@ namespace TIAM.Database.DataLayers.ServiceProviders;
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)
{
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 virtual DbSet<User> Users { get; set; }
public DbSet<User> Users { get; set; }
public DbSet<UserToken> UserTokens { get; set; }
public UserDbContext() //: this(string.Empty)
{

View File

@ -5,15 +5,6 @@ namespace TIAM.Database.DbSets.Users;
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)
=> ctx.AssignedUsers.FirstOrDefault(x => x.Id == assignedUserId);