public void CanPatchUsingVars() { var doc = RavenJObject.FromObject(test); var resultJson = new ScriptedJsonPatcher().Apply(doc, new ScriptedPatchRequest { Script = "this.TheName = Name", Values = { { "Name", "ayende" } } }); Assert.Equal("ayende", resultJson.Value <string>("TheName")); }
public void Manual() { var doc = RavenJObject.FromObject(new Product { Tags = new string[0], }); var resultJson = new ScriptedJsonPatcher().Apply(doc, new ScriptedPatchRequest { Script = "this.Tags2 = this.Tags.Map(function(value) { return value; });", }); Assert.Equal(0, resultJson.Value <RavenJArray>("Tags2").Length); }
public void CanUseLoDash() { const string email = "*****@*****.**"; var doc = RavenJObject.Parse("{\"Contact\":null}"); const string script = "this.Emails = _.times(3, function(i) { return contact.Email + i; });"; var patch = new ScriptedPatchRequest() { Script = script, Values = { { "contact", new { Email = email } } } }; using (var scope = new DefaultScriptedJsonPatcherOperationScope()) { var result = new ScriptedJsonPatcher().Apply(scope, doc, patch); Assert.Equal(new[] { "[email protected]", "[email protected]", "[email protected]" }, result.Value <RavenJArray>("Emails").Select(x => x.Value <string>())); } }