using System; using FluentAssertions; using NUnit.Framework; using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Core.Configuration; using NzbDrone.Core.Languages; using NzbDrone.Core.Localization; using NzbDrone.Core.Test.Framework; using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.Localization { [TestFixture] public class LocalizationServiceFixture : CoreTest { [SetUp] public void Setup() { Mocker.GetMock().Setup(m => m.UILanguage).Returns((int)Language.English); Mocker.GetMock().Setup(m => m.StartUpFolder).Returns(TestContext.CurrentContext.TestDirectory); } [Test] public void should_get_string_in_dictionary_if_lang_exists_and_string_exists() { var localizedString = Subject.GetLocalizedString("UiLanguage"); localizedString.Should().Be("UI Language"); } [Test] public void should_get_string_in_french() { Mocker.GetMock().Setup(m => m.UILanguage).Returns((int)Language.French); var localizedString = Subject.GetLocalizedString("UiLanguage"); localizedString.Should().Be("Langue de l'IU"); ExceptionVerification.ExpectedErrors(1); } [Test] public void should_get_string_in_default_dictionary_if_unknown_language_and_string_exists() { Mocker.GetMock().Setup(m => m.UILanguage).Returns(0); var localizedString = Subject.GetLocalizedString("UiLanguage"); localizedString.Should().Be("UI Language"); } [Test] public void should_return_argument_if_string_doesnt_exists() { var localizedString = Subject.GetLocalizedString("badString"); localizedString.Should().Be("badString"); } [Test] public void should_return_argument_if_string_doesnt_exists_default_lang() { var localizedString = Subject.GetLocalizedString("badString"); localizedString.Should().Be("badString"); } [Test] public void should_throw_if_empty_string_passed() { Assert.Throws(() => Subject.GetLocalizedString("")); } [Test] public void should_throw_if_null_string_passed() { Assert.Throws(() => Subject.GetLocalizedString(null)); } } }