public void Test_Select_Json_Parameter() { var options = new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, IgnoreNullValues = true, }; var store = DatabaseHelper.Default.GetStore(); store.Use(new JsonBindingContractResolver(options)); var data = new BlogJsonView() { Blog = new Blog() { Id = 12 } }; var model = store.From(data).Lookup("Blog"); var parameter = new Parameter("P0", model); var sqlParameter = new SqliteParameter(); var expected = JsonSerializer.Serialize(data.Blog, options); parameter.Build(sqlParameter); sqlParameter.Value.ShouldBe(expected); }
public void Test_Update_Json() { var store = DatabaseHelper.Default.GetStore(); store.Use(new JsonBindingContractResolver(new JsonSerializerOptions())); var json = "{ \"Id\": 12, \"Title\": \"Hello World!\" }"; var data1 = new BlogJsonView(); var data2 = new BlogJsonView(); var target1 = store.From(data1).Lookup("Blog"); var target2 = store.From(data2).Lookup("Blog"); var buffer = new CommandBuffer(store); buffer.Add(new ColumnBinding(target1, "B0")); buffer.Add(new ParameterBinding(target2, "P0")); var parameters = buffer.Prepare(() => new MockParameter()); parameters[0].Value = json; buffer.Update(json, ("", "B0")); data1.Blog.ShouldBeNull(); data2.Blog.ShouldBeNull(); buffer.Commit(); data1.Blog.ShouldNotBeNull(); data1.Blog.Id.ShouldBe(12); data1.Blog.Title.ShouldBe("Hello World!"); data2.Blog.ShouldNotBeNull(); data2.Blog.Id.ShouldBe(12); data2.Blog.Title.ShouldBe("Hello World!"); }