using System; using FluentAssertions; using NUnit.Framework; using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Core.Configuration; using NzbDrone.Core.Localization; using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.Localization { [TestFixture] public class LocalizationServiceFixture : CoreTest { [SetUp] public void Setup() { Mocker.GetMock().Setup(m => m.UILanguage).Returns("en"); 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("BackupNow"); localizedString.Should().Be("Backup Now"); } [Test] public void should_get_string_in_french() { Mocker.GetMock().Setup(m => m.UILanguage).Returns("fr"); var localizedString = Subject.GetLocalizedString("BackupNow"); localizedString.Should().Be("Sauvegarder maintenant"); } [Test] public void should_get_string_in_default_dictionary_if_unknown_language_and_string_exists() { Mocker.GetMock().Setup(m => m.UILanguage).Returns(""); var localizedString = Subject.GetLocalizedString("BackupNow"); localizedString.Should().Be("Backup Now"); } [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)); } } }