コード例 #1
0
        public void VariousResources_WithSharedRootKeyName()
        {
            var sut = new ResourceJsonConverter();

            var resources = new List <LocalizationResource>
            {
                new LocalizationResource("This.Is.Resource.Key")
                {
                    Translations = new List <LocalizationResourceTranslation>
                    {
                        new LocalizationResourceTranslation
                        {
                            Language = "en",
                            Value    = "this is english"
                        },
                        new LocalizationResourceTranslation
                        {
                            Language = "no",
                            Value    = "this is norsk"
                        }
                    }
                },
                new LocalizationResource("This.Is.Resource.AnotherKey")
                {
                    Translations = new List <LocalizationResourceTranslation>
                    {
                        new LocalizationResourceTranslation
                        {
                            Language = "en",
                            Value    = "this is another english"
                        },
                        new LocalizationResourceTranslation
                        {
                            Language = "no",
                            Value    = "this is another norsk"
                        }
                    }
                },
                new LocalizationResource("This.Is.YetAnotherResource.AnotherKey")
                {
                    Translations = new List <LocalizationResourceTranslation>
                    {
                        new LocalizationResourceTranslation
                        {
                            Language = "en",
                            Value    = "this is another english 2"
                        },
                        new LocalizationResourceTranslation
                        {
                            Language = "no",
                            Value    = "this is another norsk 2"
                        }
                    }
                }
            };

            var resourcesAsJson = sut.Convert(resources, "en");

            Assert.Equal("this is english", resourcesAsJson["This"]["Is"]["Resource"]["Key"]);
        }
コード例 #2
0
        public void VariousResources_WithNorskTranslation_RequestedEnglish_NoResults()
        {
            var resources = new List <LocalizationResource>
            {
                new LocalizationResource("This.Is.Resource.Key")
                {
                    Translations = new List <LocalizationResourceTranslation>
                    {
                        new LocalizationResourceTranslation
                        {
                            Language = "no",
                            Value    = "this is norsk"
                        }
                    }
                },
                new LocalizationResource("This.Is.AnotherResource.Key")
                {
                    Translations = new List <LocalizationResourceTranslation>
                    {
                        new LocalizationResourceTranslation
                        {
                            Language = "no",
                            Value    = "this is norsk"
                        }
                    }
                }
            };
            var sut = new ResourceJsonConverter();

            var resourcesAsJson = sut.Convert(resources, "en");

            Assert.Equal(0, resourcesAsJson.Count);
        }
コード例 #3
0
        public void ResoureceWithMultipleTranslations_ReturnRequestedTranslation()
        {
            var sut = new ResourceJsonConverter();

            var resources = new List <LocalizationResource>
            {
                new LocalizationResource("This.Is.Resource.Key")
                {
                    Translations = new List <LocalizationResourceTranslation>
                    {
                        new LocalizationResourceTranslation
                        {
                            Language = "en",
                            Value    = "this is english"
                        },
                        new LocalizationResourceTranslation
                        {
                            Language = "no",
                            Value    = "this is norsk"
                        }
                    }
                }
            };

            var resourcesAsJson = sut.Convert(resources, "no");

            Assert.Equal("this is norsk", resourcesAsJson["This"]["Is"]["Resource"]["Key"]);
        }
コード例 #4
0
        protected override JsonSerializer CreateJsonSerializer()
        {
            var serializer = base.CreateJsonSerializer();

            var resourceConverter = new ResourceJsonConverter();

            serializer.Converters.Add(resourceConverter);

            return(serializer);
        }
コード例 #5
0
        public void SerializeGenericResource()
        {
            string expected   = "{\"_links\":{\"self\":{\"href\":\"/orders/523\"},\"warehouse\":{\"href\":\"/warehouse/56\"},\"invoice\":{\"href\":\"/invoices/873\"}},\"currency\":\"USD\",\"status\":\"shipped\",\"total\":10.20}";
            var    serializer = new JsonSerializer();

            serializer.ContractResolver = new CamelCasePropertyNamesContractResolver();
            var resourceConverter = new ResourceJsonConverter();

            serializer.Converters.Add(resourceConverter);

            var resource = new Resource <TestResource>(
                new TestResource
            {
                Currency = "USD",
                Status   = "shipped",
                Total    = 10.20M
            })
            {
                Links = new List <ILink>
                {
                    new Link
                    {
                        Rel  = "self",
                        HRef = "/orders/523"
                    },
                    new Link
                    {
                        Rel  = "warehouse",
                        HRef = "/warehouse/56"
                    },
                    new Link
                    {
                        Rel  = "invoice",
                        HRef = "/invoices/873"
                    }
                },
                SingularRelations = new HashSet <string>
                {
                    "self",
                    "warehouse",
                    "invoice"
                }
            };


            using (var textWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(textWriter))
                {
                    serializer.Serialize(jsonWriter, resource);
                    Assert.AreEqual(expected, textWriter.ToString());
                }
        }