public void It_returns_translation_for_given_keys()
        {
            var provider = new FluentTranslationProvider();

            provider.AddTranslations().ForController<TranslationController>()
                .AreaUrl(new Dictionary<string, string>
                {
                    { "es", "es-Area" }
                })
                .RoutePrefixUrl(new Dictionary<string, string>
                {
                    { "es", "es-Prefix" }
                })
                .RouteUrl(c => c.Index(), new Dictionary<string, string>
                {
                    { "es", "es-Index" }
                });

            provider.AddTranslations()
                .ForKey("CustomAreaKey", new Dictionary<string, string>
                {
                    { "es", "es-CustomArea" }
                })
                .ForKey("CustomPrefixKey", new Dictionary<string, string>
                {
                    { "es", "es-CustomPrefix" }
                })
                .ForKey("CustomRouteKey", new Dictionary<string, string>
                {
                    { "es", "es-CustomIndex" }
                });

            var keyGenerator = new TranslationKeyGenerator();

            Assert.That(provider.GetTranslation(keyGenerator.AreaUrl<TranslationController>(), "en"), Is.Null);
            Assert.That(provider.GetTranslation(keyGenerator.RoutePrefixUrl<TranslationController>(), "en"), Is.Null);
            Assert.That(provider.GetTranslation(keyGenerator.RouteUrl<TranslationController>(c => c.Index()), "en"), Is.Null);

            Assert.That(provider.GetTranslation(keyGenerator.AreaUrl<TranslationController>(), "es"), Is.EqualTo("es-Area"));
            Assert.That(provider.GetTranslation(keyGenerator.RoutePrefixUrl<TranslationController>(), "es"), Is.EqualTo("es-Prefix"));
            Assert.That(provider.GetTranslation(keyGenerator.RouteUrl<TranslationController>(c => c.Index()), "es"), Is.EqualTo("es-Index"));

            Assert.That(provider.GetTranslation("CustomAreaKey", "es"), Is.EqualTo("es-CustomArea"));
            Assert.That(provider.GetTranslation("CustomPrefixKey", "es"), Is.EqualTo("es-CustomPrefix"));
            Assert.That(provider.GetTranslation("CustomRouteKey", "es"), Is.EqualTo("es-CustomIndex"));
        }
        public void It_can_add_tranlsations_for_actions_with_defaulted_params()
        {
            var provider = new FluentTranslationProvider();

            provider.AddTranslations().ForController<TranslateActionsController>()
                .RouteUrl(c => c.Index(1), new Dictionary<string, string>
                {
                    { "es", "hola" }
                });

            var keyGenerator = new TranslationKeyGenerator();
            var translationKey = keyGenerator.RouteUrl<TranslateActionsController>(c => c.Index(1));
            var translation = provider.GetTranslation(translationKey, "es");

            Assert.That(translation, Is.EqualTo("hola"));
        }