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"]); }
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); }
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"]); }
protected override JsonSerializer CreateJsonSerializer() { var serializer = base.CreateJsonSerializer(); var resourceConverter = new ResourceJsonConverter(); serializer.Converters.Add(resourceConverter); return(serializer); }
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()); } }