This commit is contained in:
Adam 2023-12-15 12:19:58 +01:00
commit 2f4bdd95f8
4 changed files with 26 additions and 6 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,9 +1,8 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
using AyCode.Entities.Users;
using TIAM.Entities.Products;
@ -15,11 +14,8 @@ namespace TIAM.Entities.Users
//public virtual List<Product> Products { get; } = new();
//public virtual ServiceProvider ServiceProvider { get; set; } = new();
//[NotMapped]
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) { }
public User(Guid id, string email, string password) : base(id, email, password)