Exemplo n.º 1
0
        public void Can_deserialize_object_with_unknown_JSON_into_object_type()
        {
            using (JsConfig.With(new Config {
                ExcludeTypeInfo = true
            }))
            {
                JS.Configure();

                var dto = new RuntimeObject
                {
                    Object = new JsonType
                    {
                        Int    = 1,
                        String = "foo",
                        Bool   = true,
                        List   = new List <object> {
                            new JsonType {
                                Int = 1, String = "foo", Bool = true
                            }
                        },
                        Dictionary = new Dictionary <string, object> {
                            { "key", new JsonType {
                                  Int = 1, String = "foo", Bool = true
                              } }
                        },
                    }
                };

                var json = dto.ToJson();
                Assert.That(json, Is.EqualTo(@"{""Object"":{""Int"":1,""String"":""foo"",""Bool"":true," +
                                             @"""List"":[{""Int"":1,""String"":""foo"",""Bool"":true}],""Dictionary"":{""key"":{""Int"":1,""String"":""foo"",""Bool"":true}}}}"));

                // into object
                var fromJson = json.FromJson <object>();
                var jsonObj  = (Dictionary <string, object>)fromJson;
                var jsonType = (Dictionary <string, object>)jsonObj["Object"];
                Assert.That(jsonType["Int"], Is.EqualTo(1));
                Assert.That(jsonType["String"], Is.EqualTo("foo"));
                Assert.That(jsonType["Bool"], Is.EqualTo(true));
                var jsonList = (List <object>)jsonType["List"];
                Assert.That(((Dictionary <string, object>)jsonList[0])["Int"], Is.EqualTo(1));
                var jsonDict = (Dictionary <string, object>)jsonType["Dictionary"];
                Assert.That(((Dictionary <string, object>)jsonDict["key"])["Int"], Is.EqualTo(1));

                // into DTO with Object property
                var dtoFromJson = json.FromJson <RuntimeObject>();
                jsonType = (Dictionary <string, object>)dtoFromJson.Object;
                Assert.That(jsonType["Int"], Is.EqualTo(1));
                Assert.That(jsonType["String"], Is.EqualTo("foo"));
                Assert.That(jsonType["Bool"], Is.EqualTo(true));
                jsonList = (List <object>)jsonType["List"];
                Assert.That(((Dictionary <string, object>)jsonList[0])["Int"], Is.EqualTo(1));
                jsonDict = (Dictionary <string, object>)jsonType["Dictionary"];
                Assert.That(((Dictionary <string, object>)jsonDict["key"])["Int"], Is.EqualTo(1));

                JS.UnConfigure();
            }
        }
        public void Can_deserialize_unknown_ObjectDictionary()
        {
            JS.Configure();

            Assert.That("{\"Properties\":{\"a\":1}}".FromJson <HasObjectDictionary>().Properties["a"], Is.EqualTo(1));
            Assert.That("{\"Properties\":{\"a\":\"1\"}}".FromJson <HasObjectDictionary>().Properties["a"], Is.EqualTo("1"));
            Assert.That("{\"Properties\":{\"a\":[\"1\",\"2\"]}}".FromJson <HasObjectDictionary>().Properties["a"], Is.EquivalentTo(new[] { "1", "2" }));
            Assert.That("{\"Properties\":{\"a\":[1,2]}}".FromJson <HasObjectDictionary>().Properties["a"], Is.EquivalentTo(new[] { 1, 2 }));

            JS.UnConfigure();
        }
        public void Can_deserialize_JSV_List_object_when_ObjectDeserializer_is_configured()
        {
            JS.Configure();

            var json = @"{ ProtocolTemplateId:d7f0aa3afd834e90aaa9a97b7efd0c03,Name: Rendezvényszervezés,Title: Test,Description: Rendezvényszervezés,ProtocolBusinessObjects:[[{ Oid: 3c229e70345f11e9bf726dd67bf32ebd,ObjectType: AwaitObject,Flags: 18,Name: AwaitObject1,Title: AwaitObject1,SecondaryTitle: AwaitObject1,Description: "",OwnerType: 1,Owner: { UserId: 2,DisplayName: System},DeadlineType: 2,DeadlineOffsetDays: 1,Priority: 2,PriorityToData: False,DeadlineToData: False,CompletedDateToData: False,OwnerToData: False,Visible: False,ProtocolTemplateId: d7f0aa3afd834e90aaa9a97b7efd0c03,ProtocolTemplateGroupId: e44dfc5da20942fe8532d6446ef0b76c,CreatedBy: { UserId: 4,DisplayName: Wiszt Máté},CreatedDateTime: 2019 - 03 - 21T15: 05:41.0929542 + 01:00}]]}";

            var ret = json.FromJsv <BrowseProtocolTemplateResponseLight>();

            Assert.That(ret.ProtocolBusinessObjects.Count, Is.GreaterThan(0));

            JS.UnConfigure();
        }
        public void Does_serialize_number_object_types_with_JS_utils()
        {
            JS.Configure();

            SerializeObjectTypes();

            Assert.That(DeserializeObject("{\"Value\":\"a\"}"), Is.EqualTo("a"));
            Assert.That(DeserializeObject("{\"Value\":1}"), Is.EqualTo(1));
            Assert.That(DeserializeObject("{\"Value\":1.1}"), Is.EqualTo((double)1.1));
            Assert.That(DeserializeObject("{\"Value\":\"a\nb\"}"), Is.EqualTo("a\nb"));

            JS.UnConfigure();
        }
        public void Can_deserialize_unknown_ObjectList()
        {
            JS.Configure();

            Assert.That("{\"Properties\":[\"1\"]}".FromJson <HasObjectList>().Properties[0], Is.EqualTo("1"));
            Assert.That("{\"Properties\":[1]}".FromJson <HasObjectList>().Properties[0], Is.EqualTo(1));
            Assert.That("{\"Properties\":[[\"1\",\"2\"]]}".FromJson <HasObjectList>().Properties[0], Is.EquivalentTo(new[] { "1", "2" }));
            Assert.That("{\"Properties\":[[1,2]]}".FromJson <HasObjectList>().Properties[0], Is.EquivalentTo(new[] { 1, 2 }));
            Assert.That("{\"Properties\":[{\"a\":1}]".FromJson <HasObjectList>().Properties[0], Is.EquivalentTo(new Dictionary <string, object> {
                ["a"] = 1
            }));

            JS.UnConfigure();
        }
        public void Can_deserialize_custom_object_payload()
        {
            JS.Configure();

            var json = "{\"Event\":{\"EventObject\":{\"Heading\":1.1}}}";
            var dto  = json.FromJson <CreateEvent>();

            var obj = (Dictionary <string, object>)dto.Event.EventObject;

            var payload = obj.FromObjectDictionary <EventPayLoadPosition>();

            Assert.That(payload.Heading, Is.EqualTo(1.1));

            JS.UnConfigure();
        }
Exemplo n.º 7
0
        public void Does_serialize_property_Empty_String()
        {
            JS.Configure();
            var dto = new ObjectEmptyStringTest {
                Name = ""
            };
            var json = dto.ToJson();

            var fromJson = json.FromJson <ObjectEmptyStringTest>();

            Assert.That(fromJson.Name, Is.EqualTo(dto.Name));

            var utf8   = json.ToUtf8Bytes();
            var ms     = new MemoryStream(utf8);
            var fromMs = JsonSerializer.DeserializeFromStream <ObjectEmptyStringTest>(ms);

            Assert.That(fromMs.Name, Is.EqualTo(dto.Name));
            JS.UnConfigure();
        }
Exemplo n.º 8
0
        public void Can_serialize_JS_literal_into_DTO()
        {
            JS.Configure();

            var js = @"{""Object"":{ Int:1,String:'foo',Bool:true,List:[{Int:1,String:`foo`,Bool:true}],Dictionary:{key:{Int:1,String:""foo"",Bool:true}}}}";

            // into DTO with Object property
            var dtoFromJson = js.FromJson <RuntimeObject>();
            var jsonType    = (Dictionary <string, object>)dtoFromJson.Object;

            Assert.That(jsonType["Int"], Is.EqualTo(1));
            Assert.That(jsonType["Int"], Is.EqualTo(1));
            Assert.That(jsonType["String"], Is.EqualTo("foo"));
            Assert.That(jsonType["Bool"], Is.EqualTo(true));
            var jsonList = (List <object>)jsonType["List"];

            Assert.That(((Dictionary <string, object>)jsonList[0])["Int"], Is.EqualTo(1));
            var jsonDict = (Dictionary <string, object>)jsonType["Dictionary"];

            Assert.That(((Dictionary <string, object>)jsonDict["key"])["Int"], Is.EqualTo(1));

            JS.UnConfigure();
        }
Exemplo n.º 9
0
        public void Does_deserialize_late_bound_object_with_quotes()
        {
            var dto = new HasObject {
                Value = "<bla fasel=\"hurz\" />"
            };

            var json = JSON.stringify(dto);

            json.Print();

            Assert.That(json, Is.EqualTo("{\"Value\":\"<bla fasel=\\\"hurz\\\" />\"}"));

            var obj = (Dictionary <string, object>)JSON.parse(json);

            Assert.That(obj["Value"], Is.EqualTo(dto.Value));

            JS.Configure();

            var fromJson = json.FromJson <HasObject>();

            JS.UnConfigure();

            Assert.That(fromJson.Value, Is.EqualTo(dto.Value));
        }