using AyCode.Database.Tests; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using AyCode.Database.DataLayers.Users; using Newtonsoft.Json; using TIAM.Database.DataLayers.ServiceProviders; using TIAM.Database.DataLayers.Users; using TIAM.Database.DbContexts.ServiceProviders; using TIAM.Database.DbSets.Permissions; using TIAM.Entities.Products; using TIAM.Entities.Users; using TIAM.Models.Dtos.Users; namespace TIAM.Database.Test { [TestClass] public class ServiceProviderDalTest : AcDatabaseTestModelBase { [TestInitialize] public void Setup() { } [TestCleanup] public void TearDown() { } [TestMethod] [DataRow("42968456-6EF3-4D9C-8BC4-0569A129AC05")] public void GetPermissionViewBySubjectId_ReturnsPermissionContextMapping_WhenPermissionContextMappingExists(string subjectIdString) { var subjectId= Guid.Parse(subjectIdString); var permMapping = Dal.GetPermissionContextsViewBySubjectId(subjectId).ToList(); Assert.IsNotNull(permMapping, "PermissionContextsView is null"); Assert.IsTrue(permMapping.Count > 0, "PermissionContextsView count: 0"); } [TestMethod] [DataRow("814b5495-c2e9-4f1d-a73f-37cd5d353078")] public void GetPermissionViewByContextId_ReturnsPermissionContextMapping_WhenPermissionContextMappingExists(string contextIdString) { var contextId = Guid.Parse(contextIdString); var permMapping = Dal.GetPermissionContextsViewByContextId(contextId).ToList(); Assert.IsNotNull(permMapping, "PermissionContextsView is null"); Assert.IsTrue(permMapping.Count > 0, "PermissionContextsView count: 0"); } [TestMethod] [DataRow("814b5495-c2e9-4f1d-a73f-37cd5d353078")] public async Task GetPermissionContextMappingByContextIdAsync_ReturnsPermissionContextMapping_WhenPermissionContextMappingExists(string contextIdString) { var contextId = Guid.Parse(contextIdString); var permMapping = await Dal.GetPermissionContextsViewByContextIdAsync(contextId); Assert.IsNotNull(permMapping, "PermissionContextsView is null"); Assert.IsTrue(permMapping.Count > 0, "PermissionContextsView count: 0"); } public Product GetProductById_ReturnsProduct_WhenProductExists(string productIdString) { var productId = Guid.Parse(productIdString); var product = Dal.GetProductById(productId); Assert.IsNotNull(product, "Product is null"); return product; } [TestMethod] [DataRow("814b5495-c2e9-4f1d-a73f-37cd5d353078")] public void GeProductById_ReturnsProduct_WherHasUserProductMappingRelation(string productIdString) { var product = GetProductById_ReturnsProduct_WhenProductExists(productIdString); Assert.IsTrue(product.UserProductMappings.Count > 0, "UserProductMappings count: 0"); Assert.IsNotNull(product.UserProductMappings[0].User, "User is null"); Assert.IsNotNull(product.ServiceProvider, "ServiceProvider is null"); } [TestMethod] [DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")] public void GetUserById_ReturnsUser_WherHasUserProductMappingRelation(string userIdString) { var userId = Guid.Parse(userIdString); var user = Dal.GetUserById(userId); Assert.IsNotNull(user); Assert.IsTrue(user.UserProductMappings.Count > 0, "UserProductMappings count: 0"); Assert.IsNotNull(user.UserProductMappings[0].Product, "Product is null"); } [TestMethod] [DataRow("a24bf07a-76a7-48a4-813f-4a77e515b2f3")] public void GetUserProductMappingById_ReturnsUserProductMapping_WherHasUserAndProductRelation(string userProductMappingIdString) { var userProductMappingId = Guid.Parse(userProductMappingIdString); var userProductMapping = Dal.GetUserProductMappingById(userProductMappingId, true); Assert.IsNotNull(userProductMapping); Assert.IsNotNull(userProductMapping.User, "User is null"); Assert.IsNotNull(userProductMapping.Product, "Product is null"); } [TestMethod] [DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")] [DataRow("dcf451d2-cc4c-4ac2-8c1f-da00041be1fd")] [DataRow("ac612aa8-863b-4b4f-9d63-f5d261b5c5f9")] public void SerializeUserModelDto_ReturnDeserializedUser_WhenUserAndRelationsExists(string userIdString) { var userId = Guid.Parse(userIdString); JsonSerializerSettings options = new() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Ignore }; var userModel = Dal.GetUserModelDtoById(userId); var serializedUserModel = JsonConvert.SerializeObject(userModel, options); userModel = JsonConvert.DeserializeObject(serializedUserModel); Assert.IsNotNull(userModel); Assert.IsNotNull(userModel.UserDto); Assert.IsNotNull(userModel.Profile); if (userId != Guid.Parse("540271F6-C604-4C16-8160-D5A7CAFEDF00")) return; //csak az "540271F6.."-nek van product-ja! - J. Assert.IsTrue(userModel.Products.Count > 0); Assert.IsTrue(userModel.UserProductMappings.Count > 0); Assert.IsTrue(userModel.ServiceProviders.Count > 0); Assert.IsTrue(userModel.UserToServiceProviders.Count > 0); } //[TestMethod] //[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")] //public void SerializeUser_ReturnDeserializedUser_WhenUserAndRelationsExists(string userIdString) //{ // var userId = Guid.Parse(userIdString); // var user = Dal.GetUserProductMappingById(userId); // JsonSerializerSettings options = new() // { // ReferenceLoopHandling = ReferenceLoopHandling.Ignore, // //NullValueHandling = NullValueHandling.Ignore // }; // var serializedUser = JsonConvert.SerializeObject(user, options); // user = JsonConvert.DeserializeObject(serializedUser); // Assert.IsNotNull(user); // Assert.IsNotNull(user.Products); // Assert.IsNotNull(user.UserProductMappings); // Assert.IsNotNull(user.UserProductMappings.FirstOrDefault()?.Product); // Assert.IsTrue(user.Products.Count > 0); //} } }