JsonConvert.SerializeObject fix; DbContextBase UseLazyLoadingProxies(false); Add SerializeUser test;
This commit is contained in:
parent
03d30fe11a
commit
4a07b1bcc2
|
|
@ -5,6 +5,9 @@ using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
|
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
using Moq;
|
using Moq;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
using System.Text.Json;
|
||||||
using TIAM.Database.DataLayers.Users;
|
using TIAM.Database.DataLayers.Users;
|
||||||
using TIAM.Database.DbContexts.Users;
|
using TIAM.Database.DbContexts.Users;
|
||||||
using TIAM.Entities.Users;
|
using TIAM.Entities.Users;
|
||||||
|
|
@ -46,7 +49,26 @@ namespace TIAM.Database.Test
|
||||||
public override Task GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email)
|
public override Task GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email)
|
||||||
=> base.GetUserByEmailAsync_ReturnsUser_WhenUserExists(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]
|
//[TestMethod]
|
||||||
//[DataRow("test@tiam.hu")]
|
//[DataRow("test@tiam.hu")]
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ namespace TIAM.Database.DbContexts
|
||||||
{
|
{
|
||||||
base.OnConfiguring(optionsBuilder);
|
base.OnConfiguring(optionsBuilder);
|
||||||
|
|
||||||
|
optionsBuilder.UseLazyLoadingProxies(false);
|
||||||
optionsBuilder.EnableDetailedErrors(true);
|
optionsBuilder.EnableDetailedErrors(true);
|
||||||
|
|
||||||
//optionsBuilder.UseSqlServer(Configuration.GetConnectionString("DeveloperDbConnection"));
|
//optionsBuilder.UseSqlServer(Configuration.GetConnectionString("DeveloperDbConnection"));
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@ namespace TIAM.Database.DbContexts.Users
|
||||||
base.OnModelCreating(modelBuilder);
|
base.OnModelCreating(modelBuilder);
|
||||||
|
|
||||||
new UserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<User>());
|
new UserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<User>());
|
||||||
|
new UserProductMappingEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<UserProductMapping>());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
@ -13,7 +14,7 @@ namespace TIAM.Entities.Users
|
||||||
//public virtual List<Product> Products { get; } = new();
|
//public virtual List<Product> Products { get; } = new();
|
||||||
|
|
||||||
//public virtual ServiceProvider ServiceProvider { get; set; } = 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() { }
|
||||||
public User(string email, string password) : this(Guid.NewGuid(), email, password) { }
|
public User(string email, string password) : this(Guid.NewGuid(), email, password) { }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue