-// ================================================================================================\r
-// <summary>\r
-// Languageのテストクラスソース。</summary>\r
-//\r
-// <copyright file="LanguageTest.cs" company="honeplusのメモ帳">\r
-// Copyright (C) 2010 Honeplus. All rights reserved.</copyright>\r
-// <author>\r
-// Honeplus</author>\r
-// ================================================================================================\r
-\r
-namespace Honememo.Wptscs.Models\r
-{\r
- using System;\r
- using System.IO;\r
- using System.Reflection;\r
- using System.Text;\r
- using System.Xml;\r
- using System.Xml.Serialization;\r
- using NUnit.Framework;\r
- using Honememo.Utilities;\r
-\r
- /// <summary>\r
- /// Languageのテストクラスです。\r
- /// </summary>\r
- [TestFixture]\r
- public class LanguageTest\r
- {\r
- #region プロパティテストケース\r
-\r
- /// <summary>\r
- /// Codeプロパティテストケース。\r
- /// </summary>\r
- [Test]\r
- public void TestCode()\r
- {\r
- Language lang = new Language("en");\r
- Assert.AreEqual("en", lang.Code);\r
- }\r
-\r
- /// <summary>\r
- /// Codeプロパティテストケース(コードがnull)。\r
- /// </summary>\r
- [Test]\r
- [ExpectedException(typeof(ArgumentNullException))]\r
- public void TestCodeNull()\r
- {\r
- Language lang = new Language(null);\r
- }\r
-\r
- /// <summary>\r
- /// Codeプロパティテストケース(コードが空)。\r
- /// </summary>\r
- [Test]\r
- [ExpectedException(typeof(ArgumentException))]\r
- public void TestCodeBlank()\r
- {\r
- Language lang = new Language(" ");\r
- }\r
-\r
- /// <summary>\r
- /// Namesプロパティテストケース。\r
- /// </summary>\r
- [Test]\r
- public void TestNames()\r
- {\r
- Language lang = new Language("en");\r
-\r
- // 初期状態で空のディクショナリーを作成\r
- Assert.NotNull(lang.Names);\r
- Assert.AreEqual(0, lang.Names.Count);\r
-\r
- Language.LanguageName name = new Language.LanguageName { Name = "テスト", ShortName = "テ" };\r
- lang.Names.Add("ja", name);\r
- Assert.IsTrue(lang.Names.ContainsKey("ja"));\r
- Assert.AreEqual(name, lang.Names["ja"]);\r
- Assert.IsFalse(lang.Names.ContainsKey("en"));\r
- }\r
-\r
- /// <summary>\r
- /// Namesプロパティテストケース(オブジェクトがnull)。\r
- /// </summary>\r
- [Test]\r
- [ExpectedException(typeof(ArgumentNullException))]\r
- public void TestNamesNull()\r
- {\r
- new Language("en").Names = null;\r
- }\r
-\r
- /// <summary>\r
- /// Bracketプロパティテストケース。\r
- /// </summary>\r
- [Test]\r
- public void TestBracket()\r
- {\r
- Language lang = new Language("en");\r
-\r
- // 設定ファイルからデフォルト値が設定されていること\r
- Assert.AreEqual(" ({0}) ", lang.Bracket);\r
-\r
- // 設定後はそちらが有効になること\r
- lang.Bracket = "test";\r
- Assert.AreEqual("test", lang.Bracket);\r
-\r
- // 消すとデフォルトが有効になること\r
- lang.Bracket = null;\r
- Assert.AreEqual(" ({0}) ", lang.Bracket);\r
- lang.Bracket = "";\r
- Assert.AreEqual(" ({0}) ", lang.Bracket);\r
- }\r
-\r
- #endregion\r
-\r
- #region XMLシリアライズ用メソッドテストケース\r
-\r
- /// <summary>\r
- /// XMLデシリアライズテストケース。\r
- /// </summary>\r
- [Test]\r
- public void TestReadXml()\r
- {\r
- Language lang;\r
- using (XmlReader r = XmlReader.Create(\r
- new StringReader("<Language Code=\"ja\"><Names>"\r
- + "<LanguageName Code=\"en\"><Name>Japanese language</Name><ShortName>Japanese</ShortName></LanguageName>"\r
- + "<LanguageName Code=\"zh\"><Name>日语</Name><ShortName /></LanguageName>"\r
- + "</Names><Bracket>({0})</Bracket></Language>")))\r
- {\r
- lang = new XmlSerializer(typeof(Language)).Deserialize(r) as Language;\r
- }\r
- Assert.IsNotNull(lang);\r
- Assert.AreEqual("ja", lang.Code);\r
- Assert.AreEqual("Japanese language", lang.Names["en"].Name);\r
- Assert.AreEqual("Japanese", lang.Names["en"].ShortName);\r
- Assert.AreEqual("日语", lang.Names["zh"].Name);\r
- Assert.IsEmpty(lang.Names["zh"].ShortName);\r
- Assert.IsFalse(lang.Names.ContainsKey("ja"));\r
- Assert.AreEqual("({0})", lang.Bracket);\r
- }\r
-\r
- /// <summary>\r
- /// XMLシリアライズテストケース。\r
- /// </summary>\r
- [Test]\r
- public void TestWriteXml()\r
- {\r
- Language lang = new Language("ja");\r
- XmlWriterSettings settings = new XmlWriterSettings();\r
- settings.OmitXmlDeclaration = true;\r
-\r
- StringBuilder b = new StringBuilder();\r
- using (XmlWriter w = XmlWriter.Create(b, settings))\r
- {\r
- new XmlSerializer(typeof(Language)).Serialize(w, lang);\r
- }\r
-\r
- Assert.AreEqual("<Language Code=\"ja\"><Names /><Bracket /></Language>", b.ToString());\r
-\r
- lang.Names.Add("en", new Language.LanguageName { Name = "Japanese language", ShortName = "Japanese" });\r
- lang.Names.Add("zh", new Language.LanguageName { Name = "日语" });\r
- lang.Bracket = "({0})";\r
-\r
- StringBuilder b2 = new StringBuilder();\r
- using (XmlWriter w = XmlWriter.Create(b2, settings))\r
- {\r
- new XmlSerializer(typeof(Language)).Serialize(w, lang);\r
- }\r
-\r
- Assert.AreEqual("<Language Code=\"ja\"><Names>"\r
- + "<LanguageName Code=\"en\"><Name>Japanese language</Name><ShortName>Japanese</ShortName></LanguageName>"\r
- + "<LanguageName Code=\"zh\"><Name>日语</Name><ShortName /></LanguageName>"\r
- + "</Names><Bracket>({0})</Bracket></Language>", b2.ToString());\r
- }\r
-\r
- #endregion\r
- }\r
-}\r
+// ================================================================================================
+// <summary>
+// Languageのテストクラスソース。</summary>
+//
+// <copyright file="LanguageTest.cs" company="honeplusのメモ帳">
+// Copyright (C) 2010 Honeplus. All rights reserved.</copyright>
+// <author>
+// Honeplus</author>
+// ================================================================================================
+
+namespace Honememo.Wptscs.Models
+{
+ using System;
+ using System.IO;
+ using System.Reflection;
+ using System.Text;
+ using System.Xml;
+ using System.Xml.Serialization;
+ using NUnit.Framework;
+ using Honememo.Utilities;
+
+ /// <summary>
+ /// Languageのテストクラスです。
+ /// </summary>
+ [TestFixture]
+ public class LanguageTest
+ {
+ #region プロパティテストケース
+
+ /// <summary>
+ /// Codeプロパティテストケース。
+ /// </summary>
+ [Test]
+ public void TestCode()
+ {
+ Language lang = new Language("en");
+ Assert.AreEqual("en", lang.Code);
+ }
+
+ /// <summary>
+ /// Codeプロパティテストケース(コードがnull)。
+ /// </summary>
+ [Test]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestCodeNull()
+ {
+ Language lang = new Language(null);
+ }
+
+ /// <summary>
+ /// Codeプロパティテストケース(コードが空)。
+ /// </summary>
+ [Test]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestCodeBlank()
+ {
+ Language lang = new Language(" ");
+ }
+
+ /// <summary>
+ /// Namesプロパティテストケース。
+ /// </summary>
+ [Test]
+ public void TestNames()
+ {
+ Language lang = new Language("en");
+
+ // 初期状態で空のディクショナリーを作成
+ Assert.NotNull(lang.Names);
+ Assert.AreEqual(0, lang.Names.Count);
+
+ Language.LanguageName name = new Language.LanguageName { Name = "テスト", ShortName = "テ" };
+ lang.Names.Add("ja", name);
+ Assert.IsTrue(lang.Names.ContainsKey("ja"));
+ Assert.AreEqual(name, lang.Names["ja"]);
+ Assert.IsFalse(lang.Names.ContainsKey("en"));
+ }
+
+ /// <summary>
+ /// Namesプロパティテストケース(オブジェクトがnull)。
+ /// </summary>
+ [Test]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestNamesNull()
+ {
+ new Language("en").Names = null;
+ }
+
+ /// <summary>
+ /// Bracketプロパティテストケース。
+ /// </summary>
+ [Test]
+ public void TestBracket()
+ {
+ Language lang = new Language("en");
+
+ // 設定ファイルからデフォルト値が設定されていること
+ Assert.AreEqual(" ({0}) ", lang.Bracket);
+
+ // 設定後はそちらが有効になること
+ lang.Bracket = "test";
+ Assert.AreEqual("test", lang.Bracket);
+
+ // 消すとデフォルトが有効になること
+ lang.Bracket = null;
+ Assert.AreEqual(" ({0}) ", lang.Bracket);
+ lang.Bracket = "";
+ Assert.AreEqual(" ({0}) ", lang.Bracket);
+ }
+
+ #endregion
+
+ #region XMLシリアライズ用メソッドテストケース
+
+ /// <summary>
+ /// XMLデシリアライズテストケース。
+ /// </summary>
+ [Test]
+ public void TestReadXml()
+ {
+ Language lang;
+ using (XmlReader r = XmlReader.Create(
+ new StringReader("<Language Code=\"ja\"><Names>"
+ + "<LanguageName Code=\"en\"><Name>Japanese language</Name><ShortName>Japanese</ShortName></LanguageName>"
+ + "<LanguageName Code=\"zh\"><Name>日语</Name><ShortName /></LanguageName>"
+ + "</Names><Bracket>({0})</Bracket></Language>")))
+ {
+ lang = new XmlSerializer(typeof(Language)).Deserialize(r) as Language;
+ }
+ Assert.IsNotNull(lang);
+ Assert.AreEqual("ja", lang.Code);
+ Assert.AreEqual("Japanese language", lang.Names["en"].Name);
+ Assert.AreEqual("Japanese", lang.Names["en"].ShortName);
+ Assert.AreEqual("日语", lang.Names["zh"].Name);
+ Assert.IsEmpty(lang.Names["zh"].ShortName);
+ Assert.IsFalse(lang.Names.ContainsKey("ja"));
+ Assert.AreEqual("({0})", lang.Bracket);
+ }
+
+ /// <summary>
+ /// XMLシリアライズテストケース。
+ /// </summary>
+ [Test]
+ public void TestWriteXml()
+ {
+ Language lang = new Language("ja");
+ XmlWriterSettings settings = new XmlWriterSettings();
+ settings.OmitXmlDeclaration = true;
+
+ StringBuilder b = new StringBuilder();
+ using (XmlWriter w = XmlWriter.Create(b, settings))
+ {
+ new XmlSerializer(typeof(Language)).Serialize(w, lang);
+ }
+
+ Assert.AreEqual("<Language Code=\"ja\"><Names /><Bracket /></Language>", b.ToString());
+
+ lang.Names.Add("en", new Language.LanguageName { Name = "Japanese language", ShortName = "Japanese" });
+ lang.Names.Add("zh", new Language.LanguageName { Name = "日语" });
+ lang.Bracket = "({0})";
+
+ StringBuilder b2 = new StringBuilder();
+ using (XmlWriter w = XmlWriter.Create(b2, settings))
+ {
+ new XmlSerializer(typeof(Language)).Serialize(w, lang);
+ }
+
+ Assert.AreEqual("<Language Code=\"ja\"><Names>"
+ + "<LanguageName Code=\"en\"><Name>Japanese language</Name><ShortName>Japanese</ShortName></LanguageName>"
+ + "<LanguageName Code=\"zh\"><Name>日语</Name><ShortName /></LanguageName>"
+ + "</Names><Bracket>({0})</Bracket></Language>", b2.ToString());
+ }
+
+ #endregion
+ }
+}