public void Can_use_injected_binary_serializer_via_page_result() { var context = CreateContext(); var person = new PersonContract { Name = "Kurt", Age = 27 }; var evalContext = new PageResult(context.OneTimePage("{{ serialize(target) | return }}")) { Args = { ["target"] = person } }; evalContext.RenderToStringAsync().Wait(); var result = (ReadOnlyMemory <byte>)evalContext.ReturnValue.Result; var ms = new MemoryStream(result.ToArray()); var fromScript = (PersonContract)global::ProtoBuf.Serializer.NonGeneric.Deserialize(typeof(PersonContract), ms); Assert.That(fromScript.Name, Is.EqualTo(person.Name)); Assert.That(fromScript.Age, Is.EqualTo(person.Age)); }
public void Can_use_injected_binary_serializer_with_EvaluateScript() { var context = CreateContext(); var person = new PersonContract { Name = "Kurt", Age = 27 }; var result = (ReadOnlyMemory <byte>)context.Evaluate("{{ serialize(target) | return }}", new Dictionary <string, object> { ["target"] = person }); var ms = new MemoryStream(result.ToArray()); var fromScript = (PersonContract)global::ProtoBuf.Serializer.NonGeneric.Deserialize(typeof(PersonContract), ms); Assert.That(fromScript.Name, Is.EqualTo(person.Name)); Assert.That(fromScript.Age, Is.EqualTo(person.Age)); }
public void Can_use_injected_binary_serializer_via_eval_and_custom_Scope() { var context = CreateContext(); var person = new PersonContract { Name = "Kurt", Age = 27 }; var scope = context.CreateScope(new Dictionary <string, object> { ["target"] = person }); var result = (ReadOnlyMemory <byte>)JS.eval("serialize(target)", scope); var ms = new MemoryStream(result.ToArray()); var fromScript = (PersonContract)global::ProtoBuf.Serializer.NonGeneric.Deserialize(typeof(PersonContract), ms); Assert.That(fromScript.Name, Is.EqualTo(person.Name)); Assert.That(fromScript.Age, Is.EqualTo(person.Age)); }