comparison Lang/AbstractTranslationSetTest.cs @ 21:2834da2b8891

Re #35: Add multi-level cascading of translations * Add tests of "parent language" property * Move some test values to constants instead of abstract methods Also: * Fix warning about tests not being executable because they're on an abstract class by not marking abstract class as a test fixture
author IBBoard <dev@ibboard.co.uk>
date Wed, 07 Apr 2010 19:36:08 +0000
parents bcb6e83752a6
children e9bad86c1360
comparison
equal deleted inserted replaced
20:b3bc581a8433 21:2834da2b8891
7 7
8 namespace IBBoard.Lang 8 namespace IBBoard.Lang
9 { 9 {
10 public abstract class AbstractTranslationSetTest 10 public abstract class AbstractTranslationSetTest
11 { 11 {
12 protected const string TEST_KEY = "testKey";
13 protected const string TEST_VALUE = "testTranslationValue";
14 protected const string INHERITED_KEY = "inherited";
15 protected const string INHERITED_VALUE = "Inherited Translation";
12 16
13 [Test()] 17 [Test()]
14 public void TestTranslationSetReturnForMissingValue() 18 public void TestTranslationSetReturnForMissingValue()
15 { 19 {
16 AbstractTranslationSet translations = GetTranslationSet(); 20 AbstractTranslationSet translations = GetTranslationSet();
19 23
20 [Test()] 24 [Test()]
21 public void TestTranslationSetSettingAndRetrieval() 25 public void TestTranslationSetSettingAndRetrieval()
22 { 26 {
23 AbstractTranslationSet translations = GetTranslationSetWithFixedValue(); 27 AbstractTranslationSet translations = GetTranslationSetWithFixedValue();
24 Assert.AreEqual(GetFixedValueTranslation(), translations[GetFixedValueKey()]); 28 Assert.AreEqual(TEST_VALUE, translations[TEST_KEY]);
25 } 29 }
26 30
27 [Test()] 31 [Test()]
28 public void TestTranslationSetName() 32 public void TestTranslationSetName()
29 { 33 {
31 Assert.AreEqual("English", translations.LanguageName); 35 Assert.AreEqual("English", translations.LanguageName);
32 translations = GetTranslationSet("it"); 36 translations = GetTranslationSet("it");
33 Assert.AreEqual("italiano", translations.LanguageName); 37 Assert.AreEqual("italiano", translations.LanguageName);
34 translations = GetTranslationSet("zz"); 38 translations = GetTranslationSet("zz");
35 Assert.AreEqual("Unknown (zz)", translations.LanguageName); 39 Assert.AreEqual("Unknown (zz)", translations.LanguageName);
40 }
41
42 [Test()]
43 public void TestTranslationInheritence()
44 {
45 AbstractTranslationSet translations = GetTranslationSetWithInheritance("it", "en");
46 Assert.AreEqual("en", translations.ParentLanguage.Code);
47 Assert.AreEqual(TEST_VALUE, translations[TEST_KEY]);
48 Assert.AreEqual(INHERITED_VALUE, translations[INHERITED_KEY]);
36 } 49 }
37 50
38 [Test()] 51 [Test()]
39 public void TestEquality() 52 public void TestEquality()
40 { 53 {
52 { 65 {
53 return GetTranslationSet("en"); 66 return GetTranslationSet("en");
54 } 67 }
55 68
56 protected abstract AbstractTranslationSet GetTranslationSet(string language); 69 protected abstract AbstractTranslationSet GetTranslationSet(string language);
70 protected abstract AbstractTranslationSet GetTranslationSetWithInheritance(string language, string parentLanguage);
57 protected abstract AbstractTranslationSet GetTranslationSetWithFixedValue(); 71 protected abstract AbstractTranslationSet GetTranslationSetWithFixedValue();
58 protected abstract string GetFixedValueKey();
59 protected abstract string GetFixedValueTranslation();
60 } 72 }
61 } 73 }