public async Task Using_JsonCustomOptions_Json_Data_Saved_In_DataBase_Should_Be_Properly_Restored() { ServiceCollection services = new ServiceCollectionBuilder().PrepareServiceCollection(s => { s.ResetDapperCustomTypeHandlers(); s.RegisterDapperCustomTypeHandlers(Assembly.GetExecutingAssembly(), options => { options.JsonSerializerOptions = new JsonSerializerOptions { IgnoreNullValues = false, PropertyNamingPolicy = null }; }); }); ServiceProvider serviceProvider = services.BuildServiceProvider(); using (IServiceScope scope = serviceProvider.CreateScope()) { var scopedServices = scope.ServiceProvider; ITestObjectRepository testObjectRepository = scopedServices.GetRequiredService <ITestObjectRepository>(); TestJsonObject testObject = new TestJsonObject { FirstName = "John", LastName = "Doe", StartWork = new DateTime(2018, 06, 01), Content = new TestJsonContentObject { Nick = "JD", DateOfBirth = new DateTime(1990, 10, 11), Siblings = 2, FavoriteDaysOfTheWeek = new List <string> { "Friday", "Saturday", "Sunday" }, FavoriteNumbers = new List <int> { 10, 15, 1332, 5555 } } }; // Act await testObjectRepository.SaveTestJsonObject(testObject); TestJsonObject retrievedTestObject = await testObjectRepository.GetTestJsonObject(testObject.Id); // Assert retrievedTestObject.Should().NotBeNull(); retrievedTestObject.Should().BeEquivalentTo(testObject); retrievedTestObject.Content.Should().BeEquivalentTo(testObject.Content); } }
public async Task Null_Json_Data_Saved_In_DataBase_Should_Be_Restored_As_Null_Object() { ServiceCollection services = new ServiceCollectionBuilder().PrepareServiceCollection(s => { s.ResetDapperCustomTypeHandlers(); s.RegisterDapperCustomTypeHandlers(Assembly.GetExecutingAssembly()); }); ServiceProvider serviceProvider = services.BuildServiceProvider(); using (IServiceScope scope = serviceProvider.CreateScope()) { var scopedServices = scope.ServiceProvider; ITestObjectRepository testObjectRepository = scopedServices.GetRequiredService <ITestObjectRepository>(); TestJsonObject testObject = new TestJsonObject { FirstName = "John", LastName = "Doe", StartWork = new DateTime(2018, 06, 01), Content = null }; // Act await testObjectRepository.SaveTestJsonObject(testObject); TestJsonObject retrievedTestObject = await testObjectRepository.GetTestJsonObject(testObject.Id); // Assert retrievedTestObject.Should().NotBeNull(); retrievedTestObject.Should().BeEquivalentTo(testObject); retrievedTestObject.Content.Should().BeEquivalentTo(testObject.Content); } }