JsonConvert.SerializeObject fix; DbContextBase UseLazyLoadingProxies(false); Add SerializeUser test;

This commit is contained in:
jozsef.b@aycode.com 2023-12-14 21:10:39 +01:00
parent 03d30fe11a
commit 4a07b1bcc2
4 changed files with 26 additions and 1 deletions

View File

@ -5,6 +5,9 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using Newtonsoft.Json;
using System.Text.Json.Serialization;
using System.Text.Json;
using TIAM.Database.DataLayers.Users;
using TIAM.Database.DbContexts.Users;
using TIAM.Entities.Users;
@ -46,7 +49,26 @@ namespace TIAM.Database.Test
public override Task GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email)
=> base.GetUserByEmailAsync_ReturnsUser_WhenUserExists(email);
[TestMethod]
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
public void SerializeUser_ReturnDeserializedUser_WhenUserAndRelationsExists(string userIdString)
{
var userId = Guid.Parse(userIdString);
var user = Dal.GetUserById(userId);
JsonSerializerSettings options = new()
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
//NullValueHandling = NullValueHandling.Ignore
};
var serializedUser = JsonConvert.SerializeObject(user, options);
user = JsonConvert.DeserializeObject<User>(serializedUser);
Assert.IsNotNull(user);
Assert.IsNotNull(user.UserProductMappings);
//Assert.IsNotNull(user.UserProductMappings.FirstOrDefault()?.Product);
}
//[TestMethod]
//[DataRow("test@tiam.hu")]

View File

@ -29,6 +29,7 @@ namespace TIAM.Database.DbContexts
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.UseLazyLoadingProxies(false);
optionsBuilder.EnableDetailedErrors(true);
//optionsBuilder.UseSqlServer(Configuration.GetConnectionString("DeveloperDbConnection"));

View File

@ -51,6 +51,7 @@ namespace TIAM.Database.DbContexts.Users
base.OnModelCreating(modelBuilder);
new UserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<User>());
new UserProductMappingEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<UserProductMapping>());
}
}
}

View File

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -13,7 +14,7 @@ namespace TIAM.Entities.Users
//public virtual List<Product> Products { get; } = new();
//public virtual ServiceProvider ServiceProvider { get; set; } = new();
public virtual List<UserProductMapping> UserProductMappings { get; } = new();
public virtual List<UserProductMapping> UserProductMappings { get; set; } = new();
public User() { }
public User(string email, string password) : this(Guid.NewGuid(), email, password) { }