public void FromJsonObject_ReturnsAListOfIntegers_FromAJsonObject() { var actualResult = TestJsonObject.FromJsonObject(); actualResult.Should() .NotBeEmpty() .And.BeEquivalentTo(TestSetOfIntegers); }
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 void When_Custom_Json_Handler_Is_Not_Registered_Exception_Should_Be_Thrown() { ServiceCollection services = new ServiceCollectionBuilder().PrepareServiceCollection(s => { s.ResetDapperCustomTypeHandlers(); }); ServiceProvider serviceProvider = services.BuildServiceProvider(); using (IServiceScope scope = serviceProvider.CreateScope()) { var scopedServices = scope.ServiceProvider; ITestObjectRepository testObjectRepository = scopedServices.GetRequiredService <ITestObjectRepository>(); TestJsonObject testObject = CreateTestJsonObject(); // Assert Assert.ThrowsAsync <NotSupportedException>(async() => await testObjectRepository.SaveTestJsonObject(testObject)); } }
public void When_Custom_Json_Handler_Is_Registered_Exception_Should_Not_Be_Thrown_V2() { ServiceCollection services = new ServiceCollectionBuilder().PrepareServiceCollection(s => { s.ResetDapperCustomTypeHandlers(); s.RegisterDapperCustomTypeHandlers(new[] { Assembly.GetExecutingAssembly() }); }); ServiceProvider serviceProvider = services.BuildServiceProvider(); using (IServiceScope scope = serviceProvider.CreateScope()) { var scopedServices = scope.ServiceProvider; ITestObjectRepository testObjectRepository = scopedServices.GetRequiredService <ITestObjectRepository>(); TestJsonObject testObject = CreateTestJsonObject(); // Assert Assert.DoesNotThrowAsync(async() => await testObjectRepository.SaveTestJsonObject(testObject)); } }
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); } }