public void ResourceWithMultipleTranslations_ReturnRequestedTranslation()
        {
            var sut = new Json.JsonConverter(new QueryExecutor(new ConfigurationContext().TypeFactory));

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

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

            Assert.Equal("this is norsk", resourcesAsJson["This"]["Is"]["Resource"]["Key"]);
        }
        public void Resource_SerializeWithCamelCase()
        {
            var sut = new Json.JsonConverter(new QueryExecutor(new ConfigurationContext().TypeFactory));

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

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

            Assert.Equal("this is english", resourcesAsJson["this"]["is"]["theResource"]["key"]);
        }
        public void VariousResourcesWithNorskTranslation_RequestedEnglishWithoutFallback_NoResults()
        {
            var resources = new List <LocalizationResource>
            {
                new LocalizationResource("This.Is.Resource.Key", false)
                {
                    Translations = new LocalizationResourceTranslationCollection(false)
                    {
                        new LocalizationResourceTranslation
                        {
                            Language = "no",
                            Value    = "this is norsk"
                        }
                    }
                },
                new LocalizationResource("This.Is.AnotherResource.Key", false)
                {
                    Translations = new LocalizationResourceTranslationCollection(false)
                    {
                        new LocalizationResourceTranslation
                        {
                            Language = "no",
                            Value    = "this is norsk"
                        }
                    }
                }
            };
            var sut = new Json.JsonConverter(new QueryExecutor(new ConfigurationContext().TypeFactory));

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

            Assert.Empty(resourcesAsJson);
        }
        public void VariousResources_WithSharedRootKeyName()
        {
            var sut = new Json.JsonConverter(new QueryExecutor(new ConfigurationContext().TypeFactory));

            var resources = new List <LocalizationResource>
            {
                new LocalizationResource("This.Is.Resource.Key", false)
                {
                    Translations = new LocalizationResourceTranslationCollection(false)
                    {
                        new LocalizationResourceTranslation
                        {
                            Language = "en",
                            Value    = "this is english"
                        },
                        new LocalizationResourceTranslation
                        {
                            Language = "no",
                            Value    = "this is norsk"
                        }
                    }
                },
                new LocalizationResource("This.Is.Resource.AnotherKey", false)
                {
                    Translations = new LocalizationResourceTranslationCollection(false)
                    {
                        new LocalizationResourceTranslation
                        {
                            Language = "en",
                            Value    = "this is another english"
                        },
                        new LocalizationResourceTranslation
                        {
                            Language = "no",
                            Value    = "this is another norsk"
                        }
                    }
                },
                new LocalizationResource("This.Is.YetAnotherResource.AnotherKey", false)
                {
                    Translations = new LocalizationResourceTranslationCollection(false)
                    {
                        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", CultureInfo.InvariantCulture, false);

            Assert.Equal("this is english", resourcesAsJson["This"]["Is"]["Resource"]["Key"]);
        }
        public void Resource_SerializeWithCamelCase()
        {
            var sut = new Json.JsonConverter();

            var resources = new List <LocalizationResource>
            {
                new LocalizationResource("This.Is.TheResource.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, "en", CultureInfo.InvariantCulture, true, true);

            Assert.Equal("this is english", resourcesAsJson["this"]["is"]["theResource"]["key"]);
        }
        public void ResourceWithMultipleTranslations_ReturnRequestedTranslation()
        {
            var sut = new Json.JsonConverter();

            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", CultureInfo.InvariantCulture, true, false);

            Assert.Equal("this is norsk", resourcesAsJson["This"]["Is"]["Resource"]["Key"]);
        }
        public void VariousResourcesWithNorskTranslation_RequestedEnglishWithoutFallback_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 Json.JsonConverter();

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

            Assert.Equal(0, resourcesAsJson.Count);
        }
        public void VariousResources_WithSharedRootKeyName()
        {
            var sut = new Json.JsonConverter();

            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", true, false);

            Assert.Equal("this is english", resourcesAsJson["This"]["Is"]["Resource"]["Key"]);
        }
        public DataControllerTest()
        {
            var jsonConverter   = new Json.JsonConverter();
            var mockDataContext = new Mock <ISerializerDataContext>();

            var rm = It.IsAny <RequestModel>();

            mockDataContext.Setup(m => m.RequestModels.Add(rm)).Returns(rm);
            mockDataContext.Setup(m => m.SaveChanges()).Returns(0);

            _dataController = new DataController(jsonConverter, mockDataContext.Object);
        }