Example #1
0
        public void TestContractResolverSerialization()
        {
            MultiLangBo mlb = new MultiLangBo()
            {
                datum_deutsch = new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Utc),
                wert_deutsch  = "Hallo Welt"
            };
            var settings = new JsonSerializerSettings
            {
                ContractResolver = new MultiLangResolver(Language.EN),
                Formatting       = Formatting.Indented
            };
            var json = JsonConvert.SerializeObject(mlb, settings);

            Assert.IsTrue(json.Contains("date_english"));
            Assert.IsTrue(json.Contains("value_english"));
            Assert.IsFalse(json.Contains("datum_deutsch"));
            Assert.IsFalse(json.Contains("wert_deutsch"));

            string DEjson = JsonConvert.SerializeObject(mlb);

            Assert.IsFalse(DEjson.Contains("date_english"));
            Assert.IsFalse(DEjson.Contains("value_english"));
            Assert.IsTrue(DEjson.Contains("datum_deutsch"));
            Assert.IsTrue(DEjson.Contains("wert_deutsch"));
        }
Example #2
0
        public void TestNestedContractResolverSerialization()
        {
            MultiLangBo mlb = new MultiLangBo()
            {
                datum_deutsch = new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Utc),
                wert_deutsch  = "Hallo Welt",
                intern        = new NestedObject()
                {
                    bool_deutsch   = true,
                    intern_deutsch = "Hallo",
                    int_deutsch    = 33
                },
                internList = new List <NestedObject>()
                {
                    new NestedObject()
                    {
                        bool_deutsch = false, int_deutsch = 10, intern_deutsch = "internalList1"
                    },
                    new NestedObject()
                    {
                        bool_deutsch = false, int_deutsch = 35, intern_deutsch = "internalList2"
                    },
                    new NestedObject()
                    {
                        bool_deutsch = true, int_deutsch = 1200, intern_deutsch = "internalList3"
                    },
                }
            };
            var settings = new JsonSerializerSettings
            {
                ContractResolver = new MultiLangResolver(Language.EN),
                Formatting       = Formatting.Indented
            };
            var json = JsonConvert.SerializeObject(mlb, settings);

            Assert.IsTrue(json.Contains("date_english"));
            Assert.IsTrue(json.Contains("value_english"));
            Assert.IsFalse(json.Contains("datum_deutsch"));
            Assert.IsFalse(json.Contains("wert_deutsch"));
            Assert.IsTrue(json.Contains("internal Object List"));
            Assert.IsTrue(json.Contains("internal_english"));
            Assert.IsFalse(json.Contains("intern_deutsch"));

            string DEjson = JsonConvert.SerializeObject(mlb);

            Assert.IsFalse(DEjson.Contains("date_english"));
            Assert.IsFalse(DEjson.Contains("value_english"));
            Assert.IsTrue(DEjson.Contains("datum_deutsch"));
            Assert.IsTrue(DEjson.Contains("wert_deutsch"));
            Assert.IsTrue(DEjson.Contains("internList"));
            Assert.IsTrue(DEjson.Contains("intern_deutsch"));
            Assert.IsFalse(DEjson.Contains("internal_english"));

            MultiLangBo ml = JsonConvert.DeserializeObject <MultiLangBo>(DEjson);

            Assert.AreNotEqual(DateTime.MinValue, ml.datum_deutsch);
        }