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"));
        }