# HG changeset patch # User IBBoard # Date 1270568588 0 # Node ID e3e4f7a92f8b8f34c90b85c833831549e5326011 # Parent 15cf2fe2a627d4ff8a444e25de9f2ef89f2cdd0e Re #31: Break out Translations for language to own class * Add tests for translation sets Re #30: Improve Translations API * Add more tests diff -r 15cf2fe2a627 -r e3e4f7a92f8b IBBoard.Tests.csproj --- a/IBBoard.Tests.csproj Tue Apr 06 14:40:35 2010 +0000 +++ b/IBBoard.Tests.csproj Tue Apr 06 15:43:08 2010 +0000 @@ -38,6 +38,8 @@ + + diff -r 15cf2fe2a627 -r e3e4f7a92f8b Lang/AbstractTranslationSetTest.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lang/AbstractTranslationSetTest.cs Tue Apr 06 15:43:08 2010 +0000 @@ -0,0 +1,32 @@ +// This file (TranslationSetTest.cs) is a part of the IBBoard.Tests project and is copyright 2010 IBBoard +// +// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. + +using System; +using NUnit.Framework; + +namespace IBBoard.Lang +{ + public abstract class AbstractTranslationSetTest + { + + [Test()] + public void TestTranslationSetReturnForMissingValue() + { + AbstractTranslationSet translations = GetTranslationSet(); + Assert.IsNull(translations["missing"]); + } + + [Test()] + public void TestTranslationSetSettingAndRetrieval() + { + AbstractTranslationSet translations = GetTranslationSetWithFixedValue(); + Assert.AreEqual(GetFixedValueTranslation(), translations[GetFixedValueKey()]); + } + + protected abstract AbstractTranslationSet GetTranslationSet(); + protected abstract AbstractTranslationSet GetTranslationSetWithFixedValue(); + protected abstract string GetFixedValueKey(); + protected abstract string GetFixedValueTranslation(); + } +} diff -r 15cf2fe2a627 -r e3e4f7a92f8b Lang/ModifiableTranslationSetTest.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lang/ModifiableTranslationSetTest.cs Tue Apr 06 15:43:08 2010 +0000 @@ -0,0 +1,37 @@ +// This file (ModifiableTranslationSetTest.cs) is a part of the IBBoard.Tests project and is copyright 2010 IBBoard +// +// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. + +using System; +using NUnit.Framework; + +namespace IBBoard.Lang +{ + [TestFixture()] + public class ModifiableTranslationSetTest : AbstractTranslationSetTest + { + private const string TEST_ID = "testString"; + + protected override string GetFixedValueKey() + { + return TEST_ID; + } + + protected override string GetFixedValueTranslation() + { + return "new string"; + } + + protected override AbstractTranslationSet GetTranslationSet() + { + return new ModifiableTranslationSet("en"); + } + + protected override AbstractTranslationSet GetTranslationSetWithFixedValue() + { + ModifiableTranslationSet translations = new ModifiableTranslationSet("en"); + translations[GetFixedValueKey()] = GetFixedValueTranslation(); + return translations; + } + } +} diff -r 15cf2fe2a627 -r e3e4f7a92f8b Lang/TranslationTest.cs --- a/Lang/TranslationTest.cs Tue Apr 06 14:40:35 2010 +0000 +++ b/Lang/TranslationTest.cs Tue Apr 06 15:43:08 2010 +0000 @@ -64,5 +64,11 @@ Translation.Translate(translatable); Assert.AreEqual("Test String", translatable.Text); } + + [Test()] + public void TestResetDoesNotCauseErrors() + { + Assert.AreEqual("++ Missing Translation missingID ++", Translation.GetTranslation("missingID")); + } } }