public void TestTryGetValue()
{
IgnoreCaseDictionary<string> d = new IgnoreCaseDictionary<string>();
- String value;
+ string value;
Assert.IsFalse(d.TryGetValue("TestKey", out value));
Assert.IsNull(value);
// HtmlElementのテストクラスソース。</summary>
//
// <copyright file="HtmlElementTest.cs" company="honeplusのメモ帳">
-// Copyright (C) 2011 Honeplus. All rights reserved.</copyright>
+// Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
// <author>
// Honeplus</author>
// ================================================================================================
Assert.AreEqual("<form>", element.ToString());
element.Attributes.Add("action", "/test.html");
Assert.AreEqual("<form action=\"/test.html\">", element.ToString());
- element.Attributes.Add("disabled", "");
+ element.Attributes.Add("disabled", String.Empty);
Assert.AreEqual("<form action=\"/test.html\" disabled=\"\">", element.ToString());
element.Add(new TextElement("フォーム内のテキスト"));
Assert.AreEqual("<form action=\"/test.html\" disabled=\"\">フォーム内のテキスト</form>", element.ToString());
Assert.AreEqual(0, xmlElement.Attributes.Count);
}
-
/// <summary>
/// TryParseメソッドテストケース(不正でNG)。
/// </summary>
// XmlElementのテストクラスソース。</summary>
//
// <copyright file="XmlElementTest.cs" company="honeplusのメモ帳">
-// Copyright (C) 2011 Honeplus. All rights reserved.</copyright>
+// Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
// <author>
// Honeplus</author>
// ================================================================================================
Assert.AreEqual("<form />", element.ToString());
element.Attributes.Add("action", "/test.html");
Assert.AreEqual("<form action=\"/test.html\" />", element.ToString());
- element.Attributes.Add("disabled", "");
+ element.Attributes.Add("disabled", String.Empty);
Assert.AreEqual("<form action=\"/test.html\" disabled=\"\" />", element.ToString());
element.Add(new TextElement("フォーム内のテキスト"));
Assert.AreEqual("<form action=\"/test.html\" disabled=\"\">フォーム内のテキスト</form>", element.ToString());
{
// null
Assert.IsTrue(StringUtils.StartsWith(null, null, 3));
- Assert.IsFalse(StringUtils.StartsWith(null, "", 2));
- Assert.IsFalse(StringUtils.StartsWith("", null, 5));
+ Assert.IsFalse(StringUtils.StartsWith(null, String.Empty, 2));
+ Assert.IsFalse(StringUtils.StartsWith(String.Empty, null, 5));
// 空、文字数
- Assert.IsFalse(StringUtils.StartsWith("", "", 0));
- Assert.IsTrue(StringUtils.StartsWith("a", "", 0));
- Assert.IsTrue(StringUtils.StartsWith("abcedf0123あいうえお", "", 14));
- Assert.IsFalse(StringUtils.StartsWith("abcedf0123あいうえお", "", 15));
- Assert.IsFalse(StringUtils.StartsWith("abcedf0123あいうえお", "", -1));
+ Assert.IsFalse(StringUtils.StartsWith(String.Empty, String.Empty, 0));
+ Assert.IsTrue(StringUtils.StartsWith("a", String.Empty, 0));
+ Assert.IsTrue(StringUtils.StartsWith("abcedf0123あいうえお", String.Empty, 14));
+ Assert.IsFalse(StringUtils.StartsWith("abcedf0123あいうえお", String.Empty, 15));
+ Assert.IsFalse(StringUtils.StartsWith("abcedf0123あいうえお", String.Empty, -1));
// 通常
Assert.IsTrue(StringUtils.StartsWith("abcedf0123あいうえお", "bc", 1));
int span = 0x7D - 0x20;
for (int i = 0; i < 100000; i++)
{
- b.Append(Char.ConvertFromUtf32(i % span + 0x20));
+ b.Append(Char.ConvertFromUtf32((i % span) + 0x20));
}
// 先頭から最後までひたすら実行して時間がかかりすぎないかをチェック
{
using System;
using System.Collections.Generic;
- using NUnit.Framework;
using Honememo.Wptscs.Models;
using Honememo.Wptscs.Websites;
+ using NUnit.Framework;
/// <summary>
/// Translatorのテストクラスです。
[TestFixture]
public class TranslatorTest
{
- #region モッククラス
-
- /// <summary>
- /// Translatorテスト用のモッククラスです。
- /// </summary>
- public class TranslatorMock : Translator
- {
- #region テスト支援用パラメータ
-
- /// <summary>
- /// <see cref="RunBody"/>で例外を投げるか?
- /// </summary>
- public bool exception = false;
-
- #endregion
-
- #region 非公開プロパティテスト用のオーラーライドプロパティ
-
- /// <summary>
- /// ログテキスト生成用ロガー。
- /// </summary>
- public new Logger Logger
- {
- get
- {
- return base.Logger;
- }
-
- set
- {
- base.Logger = value;
- }
- }
-
- /// <summary>
- /// 変換後テキスト。
- /// </summary>
- public new string Text
- {
- get
- {
- return base.Text;
- }
-
- set
- {
- base.Text = value;
- }
- }
-
- #endregion
-
- #region ダミーメソッド
-
- /// <summary>
- /// 翻訳支援処理実行部の本体。
- /// </summary>
- /// <param name="name">記事名。</param>
- /// <returns><c>true</c> 処理成功</returns>
- protected override void RunBody(string name)
- {
- if (exception)
- {
- throw new ApplicationException("Dummy");
- }
- }
-
- #endregion
- }
-
- /// <summary>
- /// Translatorテスト用のモッククラスです。
- /// </summary>
- public class TranslatorIgnoreMock : Translator
- {
- #region コンストラクタ
-
- /// <summary>
- /// デフォルトコンストラクタを隠すためのダミーコンストラクタ。
- /// </summary>
- /// <param name="dummy">ダミー。</param>
- public TranslatorIgnoreMock(string dummy)
- {
- }
-
- #endregion
-
- #region ダミーメソッド
-
- /// <summary>
- /// 翻訳支援処理実行部の本体。
- /// </summary>
- /// <param name="name">記事名。</param>
- /// <returns><c>true</c> 処理成功</returns>
- protected override void RunBody(string name)
- {
- }
-
- #endregion
- }
-
- /// <summary>
- /// Websiteテスト用のモッククラスです。
- /// </summary>
- public class WebsiteMock : Website
- {
- #region ダミーメソッド
-
- /// <summary>
- /// ページを取得。
- /// </summary>
- /// <param name="title">ページタイトル。</param>
- /// <returns>取得したページ。</returns>
- /// <remarks>取得できない場合(通信エラーなど)は例外を投げる。</remarks>
- public override Page GetPage(string title)
- {
- return null;
- }
-
- #endregion
- }
-
- #endregion
-
#region プロパティテストケース
/// <summary>
// 失敗はApplicationExceptionで表現、RunBodyから例外が投げられること
translator.Logger.AddMessage("testlog");
translator.Text = "testtext";
- translator.exception = true;
+ translator.Exception = true;
try
{
translator.Run("test");
}
#endregion
+
+ #region モッククラス
+
+ /// <summary>
+ /// Translatorテスト用のモッククラスです。
+ /// </summary>
+ public class TranslatorMock : Translator
+ {
+ #region テスト支援用プロパティ
+
+ /// <summary>
+ /// <see cref="RunBody"/>で例外を投げるか?
+ /// </summary>
+ public bool Exception
+ {
+ get;
+ set;
+ }
+
+ #endregion
+
+ #region 非公開プロパティテスト用のオーラーライドプロパティ
+
+ /// <summary>
+ /// ログテキスト生成用ロガー。
+ /// </summary>
+ public new Logger Logger
+ {
+ get
+ {
+ return base.Logger;
+ }
+
+ set
+ {
+ base.Logger = value;
+ }
+ }
+
+ /// <summary>
+ /// 変換後テキスト。
+ /// </summary>
+ public new string Text
+ {
+ get
+ {
+ return base.Text;
+ }
+
+ set
+ {
+ base.Text = value;
+ }
+ }
+
+ #endregion
+
+ #region ダミーメソッド
+
+ /// <summary>
+ /// 翻訳支援処理実行部の本体。
+ /// </summary>
+ /// <param name="name">記事名。</param>
+ protected override void RunBody(string name)
+ {
+ if (this.Exception)
+ {
+ throw new ApplicationException("Dummy");
+ }
+ }
+
+ #endregion
+ }
+
+ /// <summary>
+ /// Translatorテスト用のモッククラスです。
+ /// </summary>
+ public class TranslatorIgnoreMock : Translator
+ {
+ #region コンストラクタ
+
+ /// <summary>
+ /// デフォルトコンストラクタを隠すためのダミーコンストラクタ。
+ /// </summary>
+ /// <param name="dummy">ダミー。</param>
+ public TranslatorIgnoreMock(string dummy)
+ {
+ }
+
+ #endregion
+
+ #region ダミーメソッド
+
+ /// <summary>
+ /// 翻訳支援処理実行部の本体。
+ /// </summary>
+ /// <param name="name">記事名。</param>
+ protected override void RunBody(string name)
+ {
+ }
+
+ #endregion
+ }
+
+ /// <summary>
+ /// Translatorテスト用のモッククラスです。
+ /// </summary>
+ public class WebsiteMock : Website
+ {
+ #region ダミーメソッド
+
+ /// <summary>
+ /// ページを取得。
+ /// </summary>
+ /// <param name="title">ページタイトル。</param>
+ /// <returns>取得したページ。</returns>
+ /// <remarks>取得できない場合(通信エラーなど)は例外を投げる。</remarks>
+ public override Page GetPage(string title)
+ {
+ return null;
+ }
+
+ #endregion
+ }
+
+ #endregion
}
}
// <summary>
// Configのテストクラスソース。</summary>
//
-// <copyright file="ConfigTest.cs.cs" company="honeplusのメモ帳">
+// <copyright file="ConfigTest.cs" company="honeplusのメモ帳">
// Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
// <author>
// Honeplus</author>
using System.Text;
using System.Xml;
using System.Xml.Serialization;
- using NUnit.Framework;
using Honememo.Utilities;
using Honememo.Wptscs.Logics;
using Honememo.Wptscs.Websites;
+ using NUnit.Framework;
/// <summary>
/// Configのテストクラスです。
[TestFixture]
public class ConfigTest
{
- #region モッククラス
-
- /// <summary>
- /// Configテスト用のモッククラスです。
- /// </summary>
- /// <remarks>そのままではnewすることができないため。</remarks>
- public class DummyConfig : Config
- {
- }
-
- #endregion
-
#region 定数
/// <summary>
Assert.IsNotNull(en);
Assert.AreEqual("http://en.wikipedia.org", en.Location);
Assert.IsTrue(en.Language.Names.ContainsKey("ja"));
+
// TODO: この辺も、内容の確認が必要
Assert.IsTrue(config.ItemTables.Count > 0);
Assert.IsTrue(config.HeadingTable.Count > 0);
IDictionary<string, string> record = new SortedDictionary<string, string>();
record["recordKey"] = "recordValue";
config.HeadingTable.Add(record);
+
// TODO: 全然未実装
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
new XmlSerializer(typeof(Config)).Serialize(w, config);
}
- Assert.AreEqual("<Config><Translator>MediaWikiTranslator</Translator><Websites />"
+ Assert.AreEqual(
+ "<Config><Translator>MediaWikiTranslator</Translator><Websites />"
+ "<ItemTables><ItemTable From=\"en\" To=\"ja\"><Item From=\"dicKey\" To=\"dicTest\" /></ItemTable></ItemTables>"
- + "<HeadingTable><Group><Word Lang=\"recordKey\">recordValue</Word></Group></HeadingTable></Config>", b.ToString());
+ + "<HeadingTable><Group><Word Lang=\"recordKey\">recordValue</Word></Group></HeadingTable></Config>",
+ b.ToString());
}
/// <summary>
}
#endregion
+
+ #region モッククラス
+
+ /// <summary>
+ /// Configテスト用のモッククラスです。
+ /// </summary>
+ /// <remarks>そのままではnewすることができないため。</remarks>
+ public class DummyConfig : Config
+ {
+ }
+
+ #endregion
}
}
using System.Text;
using System.Xml;
using System.Xml.Serialization;
- using NUnit.Framework;
using Honememo.Utilities;
+ using NUnit.Framework;
/// <summary>
/// Languageのテストクラスです。
// 消すとデフォルトが有効になること
lang.Bracket = null;
Assert.AreEqual(" ($1) ", lang.Bracket);
- lang.Bracket = "";
+ lang.Bracket = String.Empty;
Assert.AreEqual(" ($1) ", lang.Bracket);
}
{
Language lang;
using (XmlReader r = XmlReader.Create(
- new StringReader("<Language Code=\"ja\"><Names>"
+ 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);
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());
+ 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
// テスト用にサーバー設定を書き換え
// ※ フルパスじゃないとURIで取得できないので、ここで書き換える必要有り
- UriBuilder b = new UriBuilder("file", "");
+ UriBuilder b = new UriBuilder("file", String.Empty);
b.Path = Path.GetFullPath(MockFactory.TestMediaWikiDir) + "\\";
wiki.Location = new Uri(b.Uri, lang + "/").ToString();
wiki.ExportPath = "$1.xml";
return wiki;
}
-
#endregion
}
}
// TranslationDictionaryのテストクラスソース。</summary>
//
// <copyright file="TranslationDictionaryTest.cs" company="honeplusのメモ帳">
-// Copyright (C) 2011 Honeplus. All rights reserved.</copyright>
+// Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
// <author>
// Honeplus</author>
// ================================================================================================
[TestFixture]
public class TranslationDictionaryTest
{
-
-
#region XMLシリアライズ用メソッドテストケース
/// <summary>
[Test]
public void TestReadXml()
{
- //TODO: リダイレクトとタイムスタンプも
+ // TODO: リダイレクトとタイムスタンプも
TranslationDictionary dic;
using (XmlReader r = XmlReader.Create(
- new StringReader("<TranslationDictionary From=\"en\" To=\"ja\"><Item From=\".example\" To=\"。さんぷる\" />"
+ new StringReader(
+ "<TranslationDictionary From=\"en\" To=\"ja\"><Item From=\".example\" To=\"。さんぷる\" />"
+ "<Item From=\"Template:Disambig\" To=\"Template:曖昧さ回避\" /></TranslationDictionary>")))
{
dic = new XmlSerializer(typeof(TranslationDictionary)).Deserialize(r) as TranslationDictionary;
}
+
Assert.AreEqual(2, dic.Count);
Assert.AreEqual("。さんぷる", dic[".example"].Word);
Assert.AreEqual("Template:曖昧さ回避", dic["Template:Disambig"].Word);
[Test]
public void TestWriteXml()
{
- //TODO: リダイレクトとタイムスタンプも
+ // TODO: リダイレクトとタイムスタンプも
TranslationDictionary dic = new TranslationDictionary("en", "ja");
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
new XmlSerializer(typeof(TranslationDictionary)).Serialize(w, dic);
}
- Assert.AreEqual("<TranslationDictionary From=\"en\" To=\"ja\"><Item From=\".example\" To=\"。さんぷる\" />"
- + "<Item From=\"Template:Disambig\" To=\"Template:曖昧さ回避\" /></TranslationDictionary>", b2.ToString());
+ Assert.AreEqual(
+ "<TranslationDictionary From=\"en\" To=\"ja\"><Item From=\".example\" To=\"。さんぷる\" />"
+ + "<Item From=\"Template:Disambig\" To=\"Template:曖昧さ回避\" /></TranslationDictionary>",
+ b2.ToString());
}
#endregion
// TranslationTableのテストクラスソース。</summary>
//
// <copyright file="TranslationTableTest.cs" company="honeplusのメモ帳">
-// Copyright (C) 2011 Honeplus. All rights reserved.</copyright>
+// Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
// <author>
// Honeplus</author>
// ================================================================================================
{
TranslationTable table;
using (XmlReader r = XmlReader.Create(
- new StringReader("<TranslationTable><Group><Word Lang=\"en\">See Also</Word><Word Lang=\"ja\">関連項目</Word></Group>"
+ new StringReader(
+ "<TranslationTable><Group><Word Lang=\"en\">See Also</Word><Word Lang=\"ja\">関連項目</Word></Group>"
+ "<Group><Word Lang=\"en\">History</Word><Word Lang=\"fr\">Histoire</Word></Group></TranslationTable>")))
{
table = new XmlSerializer(typeof(TranslationTable)).Deserialize(r) as TranslationTable;
}
+
Assert.AreEqual(2, table.Count);
Assert.AreEqual("See Also", table[0]["en"]);
Assert.AreEqual("関連項目", table[0]["ja"]);
new XmlSerializer(typeof(TranslationTable)).Serialize(w, table);
}
- Assert.AreEqual("<TranslationTable><Group><Word Lang=\"en\">See Also</Word><Word Lang=\"ja\">関連項目</Word></Group>"
- + "<Group><Word Lang=\"en\">History</Word><Word Lang=\"fr\">Histoire</Word></Group></TranslationTable>", b2.ToString());
+ Assert.AreEqual(
+ "<TranslationTable><Group><Word Lang=\"en\">See Also</Word><Word Lang=\"ja\">関連項目</Word></Group>"
+ + "<Group><Word Lang=\"en\">History</Word><Word Lang=\"fr\">Histoire</Word></Group></TranslationTable>",
+ b2.ToString());
}
#endregion
namespace Honememo.Wptscs.Parsers
{
using System;
- using NUnit.Framework;
using Honememo.Parsers;
using Honememo.Wptscs.Models;
using Honememo.Wptscs.Websites;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiHeadingParserのテストクラスです。
[Test]
public void TestConstructor()
{
+ // TODO: ちゃんと設定されているかも確認する?
MediaWikiHeadingParser parser = new MediaWikiHeadingParser(
new MediaWikiParser(new MockFactory().GetMediaWiki("en")));
- // TODO: ちゃんと設定されているかも確認する?
}
#endregion
namespace Honememo.Wptscs.Parsers
{
using System;
- using NUnit.Framework;
using Honememo.Parsers;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiHeadingのテストクラスです。
namespace Honememo.Wptscs.Parsers
{
using System;
- using NUnit.Framework;
using Honememo.Parsers;
using Honememo.Wptscs.Models;
using Honememo.Wptscs.Websites;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiLinkParserのテストクラスです。
Assert.AreEqual("100px", link.PipeTexts[1].ToString());
Assert.AreEqual("テスト[[画像]]", link.PipeTexts[2].ToString());
Assert.IsInstanceOf(typeof(ListElement), link.PipeTexts[2]);
- ListElement list = ((ListElement)link.PipeTexts[2]);
+ ListElement list = (ListElement)link.PipeTexts[2];
Assert.AreEqual(2, list.Count);
Assert.AreEqual("テスト", list[0].ToString());
Assert.AreEqual("[[画像]]", list[1].ToString());
{
using System;
using System.Collections.Generic;
- using NUnit.Framework;
using Honememo.Parsers;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiLinkのテストクラスです。
namespace Honememo.Wptscs.Parsers
{
using System;
- using NUnit.Framework;
using Honememo.Parsers;
using Honememo.Wptscs.Models;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiNowikiParserのテストクラスです。
// MediaWikiParserのテストクラスソース。</summary>
//
// <copyright file="MediaWikiParserTest.cs" company="honeplusのメモ帳">
-// Copyright (C) 2011 Honeplus. All rights reserved.</copyright>
+// Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
// <author>
// Honeplus</author>
// ================================================================================================
namespace Honememo.Wptscs.Parsers
{
using System;
- using NUnit.Framework;
using Honememo.Parsers;
using Honememo.Wptscs.Models;
using Honememo.Wptscs.Websites;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiParserのテストクラスです。
[TestFixture]
public class MediaWikiParserTest
{
- // TODO: いっぱい足りない
+ //// TODO: いっぱい足りない
#region インスタンス実装メソッドテストケース
namespace Honememo.Wptscs.Parsers
{
using System;
- using NUnit.Framework;
using Honememo.Parsers;
using Honememo.Wptscs.Models;
using Honememo.Wptscs.Websites;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiRedirectParserのテストクラスです。
// 通常のリダイレクト
Assert.IsTrue(parser.TryParse("#redirect [[Test]]", out element));
Assert.IsInstanceOf(typeof(MediaWikiLink), element);
- link = (MediaWikiLink) element;
+ link = (MediaWikiLink)element;
Assert.AreEqual("Test", link.Title);
Assert.IsNull(link.Section);
namespace Honememo.Wptscs.Parsers
{
using System;
- using NUnit.Framework;
using Honememo.Parsers;
using Honememo.Wptscs.Models;
using Honememo.Wptscs.Websites;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiTemplateParserのテストクラスです。
Assert.AreEqual(1, template.PipeTexts.Count);
Assert.AreEqual("test=[[innerlink]]{{innertemplate}}", template.PipeTexts[0].ToString());
Assert.IsInstanceOf(typeof(ListElement), template.PipeTexts[0]);
- ListElement list = ((ListElement)template.PipeTexts[0]);
+ ListElement list = (ListElement)template.PipeTexts[0];
Assert.AreEqual(3, list.Count);
Assert.AreEqual("test=", list[0].ToString());
Assert.AreEqual("[[innerlink]]", list[1].ToString());
namespace Honememo.Wptscs.Parsers
{
using System;
- using NUnit.Framework;
using Honememo.Parsers;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiTemplateのテストクラスです。
namespace Honememo.Wptscs.Parsers
{
using System;
- using NUnit.Framework;
using Honememo.Parsers;
using Honememo.Wptscs.Models;
using Honememo.Wptscs.Websites;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiVariableParserのテストクラスです。
Assert.AreEqual("変数名", variable.Variable);
Assert.AreEqual("[[内部リンク]]{{ref-en}}", variable.Value.ToString());
Assert.IsInstanceOf(typeof(ListElement), variable.Value);
- ListElement list = ((ListElement)variable.Value);
+ ListElement list = (ListElement)variable.Value;
Assert.AreEqual(2, list.Count);
Assert.IsInstanceOf(typeof(MediaWikiLink), list[0]);
Assert.AreEqual("[[内部リンク]]", list[0].ToString());
namespace Honememo.Wptscs.Parsers
{
using System;
- using NUnit.Framework;
using Honememo.Parsers;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiVariableのテストクラスです。
// NUnitテスト支援用クラスソース。</summary>
//
// <copyright file="PrivateAccessor.cs" company="honeplusのメモ帳">
-// Copyright (C) 2011 Honeplus. All rights reserved.</copyright>
+// Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
// <author>
// Honeplus</author>
// ================================================================================================
/// テストするクラスのオブジェクトで、指定されたプロパティに値を設定する。
/// </summary>
/// <param name="name">プロパティ名。</param>
- /// <param name="index">インデックスプロパティの場合のインデックス。</param>
/// <param name="value">新しいプロパティ値。</param>
+ /// <param name="index">インデックスプロパティの場合のインデックス。</param>
/// <remarks>
/// 設定先オブジェクトには <c>NewInstance()</c> または <c> SetInstance()</c>
/// で指定されたオブジェクトを用いる。
// AppDefaultWebProxyのテストクラスソース。</summary>
//
// <copyright file="AppDefaultWebProxyTest.cs" company="honeplusのメモ帳">
-// Copyright (C) 2011 Honeplus. All rights reserved.</copyright>
+// Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
// <author>
// Honeplus</author>
// ================================================================================================
{
using System;
using System.IO;
- using NUnit.Framework;
- using Honememo.Wptscs.Utilities;
using Honememo.Wptscs.Properties;
+ using Honememo.Wptscs.Utilities;
+ using NUnit.Framework;
/// <summary>
/// AppDefaultWebProxyのテストクラスです。
public void TestUserAgent()
{
IWebProxy proxy = new AppDefaultWebProxy();
- //Settings.Default.UserAgent = String.Empty;
+ ////Settings.Default.UserAgent = String.Empty;
// 初期状態ではアプリ名を元に生成した値
Version ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
- //Assert.AreEqual(
- // String.Format(Settings.Default.DefaultUserAgent, ver.Major, ver.Minor),
- // proxy.UserAgent);
+ ////Assert.AreEqual(
+ //// String.Format(Settings.Default.DefaultUserAgent, ver.Major, ver.Minor),
+ //// proxy.UserAgent);
Assert.AreEqual(
String.Format("WikipediaTranslationSupportTool/{0}.{1:D2}", ver.Major, ver.Minor),
proxy.UserAgent);
// アプリ設定時はアプリに格納された設定値
- //Settings.Default.UserAgent = "test setting useragent";
- //Assert.AreEqual("test setting useragent", proxy.UserAgent);
+ ////Settings.Default.UserAgent = "test setting useragent";
+ ////Assert.AreEqual("test setting useragent", proxy.UserAgent);
// プロパティ設定時はそれが最優先
proxy.UserAgent = "test property useragent";
// nullなら無効
proxy.UserAgent = null;
- //Assert.AreEqual("test setting useragent", proxy.UserAgent);
+ ////Assert.AreEqual("test setting useragent", proxy.UserAgent);
Assert.IsNotEmpty(proxy.UserAgent);
}
public void TestReferer()
{
IWebProxy proxy = new AppDefaultWebProxy();
- //Settings.Default.Referer = String.Empty;
+ ////Settings.Default.Referer = String.Empty;
// 初期状態では空
Assert.IsEmpty(proxy.Referer);
// アプリ設定時はアプリに格納された設定値
- //Settings.Default.Referer = "test setting referer";
- //Assert.AreEqual("test setting referer", proxy.Referer);
+ ////Settings.Default.Referer = "test setting referer";
+ ////Assert.AreEqual("test setting referer", proxy.Referer);
// プロパティ設定時はそちらが優先
proxy.Referer = "test property referer";
Assert.IsEmpty(proxy.Referer);
// nullなら無効
- //proxy.Referer = null;
- //Assert.AreEqual("test setting referer", proxy.Referer);
+ ////proxy.Referer = null;
+ ////Assert.AreEqual("test setting referer", proxy.Referer);
}
#endregion
IWebProxy proxy = new AppDefaultWebProxy();
// テストファイルを読んで例外が発生しなければOKとする
- UriBuilder b = new UriBuilder("file", "");
+ UriBuilder b = new UriBuilder("file", String.Empty);
b.Path = Path.GetFullPath(testFile);
using (proxy.GetStream(b.Uri))
{
[TestFixture]
public class FormUtilsTest
{
- #region モッククラス
-
- /// <summary>
- /// Websiteテスト用のモッククラスです。
- /// </summary>
- public class DummyCell : DataGridViewCell
- {
- }
-
- #endregion
-
#region リソース関連テストケース
/// <summary>
// ※ バージョンが変わるごとにバージョン表記の部分を書き換えるのは面倒なので置換
Assert.AreEqual(
"Wikipedia 翻訳支援ツール VerX.XX",
- new System.Text.RegularExpressions.Regex("Ver[0-9]+\\.[0-9]+")
- .Replace(FormUtils.ApplicationName(), "VerX.XX"));
+ new System.Text.RegularExpressions.Regex("Ver[0-9]+\\.[0-9]+").Replace(FormUtils.ApplicationName(), "VerX.XX"));
}
/// <summary>
}
#endregion
+
+ #region モッククラス
+
+ /// <summary>
+ /// DataGridViewCellテスト用のモッククラスです。
+ /// </summary>
+ public class DummyCell : DataGridViewCell
+ {
+ }
+
+ #endregion
}
}
{
using System;
using System.Collections.Generic;
- using NUnit.Framework;
using Honememo.Parsers;
using Honememo.Tests;
using Honememo.Utilities;
using Honememo.Wptscs.Models;
using Honememo.Wptscs.Parsers;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiPageのテストクラスです。
[TestFixture]
public class MediaWikiPageTest
{
- #region モッククラス
-
- /// <summary>
- /// Websiteテスト用のモッククラスです。
- /// </summary>
- public class DummySite : MediaWiki
- {
- #region コンストラクタ
-
- /// <summary>
- /// コンストラクタ。
- /// </summary>
- /// <param name="lang">ウェブサイトの言語。</param>
- public DummySite(Language lang)
- : base(lang)
- {
- }
-
- #endregion
-
- #region ダミーメソッド
-
- /// <summary>
- /// ページを取得。
- /// </summary>
- /// <param name="title">ページタイトル。</param>
- /// <returns>取得したページ。</returns>
- /// <remarks>取得できない場合(通信エラーなど)は例外を投げる。</remarks>
- public override Page GetPage(string title)
- {
- if (title == "Template:Test/doc")
- {
- return new MediaWikiPage(
- this,
- title,
- "[[ja:テストページ]]<nowiki>[[zh:試験]]</nowiki><!--[[ru:test]]-->[[fr:Test_Fr]]");
- }
-
- return base.GetPage(title);
- }
-
- #endregion
- }
-
- #endregion
-
#region コンストラクタテストケース
/// <summary>
public void TestGetInterlanguage()
{
// 普通のページ
- MediaWikiPage page = new MediaWikiPage(new DummySite(new Language("en")), "TestTitle", "TestText\n"
- + " [[ja:テストページ]]<nowiki>[[zh:試験]]</nowiki><!--[[ru:test]]-->[[fr:Test_Fr]]");
+ MediaWikiPage page = new MediaWikiPage(
+ new DummySite(new Language("en")),
+ "TestTitle",
+ "TestText\n [[ja:テストページ]]<nowiki>[[zh:試験]]</nowiki><!--[[ru:test]]-->[[fr:Test_Fr]]");
Assert.AreEqual("[[ja:テストページ]]", page.GetInterlanguage("ja").ToString());
Assert.AreEqual("[[fr:Test_Fr]]", page.GetInterlanguage("fr").ToString());
Assert.IsNull(page.GetInterlanguage("de"));
}
#endregion
+
+ #region モッククラス
+
+ /// <summary>
+ /// MediaWikiテスト用のモッククラスです。
+ /// </summary>
+ public class DummySite : MediaWiki
+ {
+ #region コンストラクタ
+
+ /// <summary>
+ /// コンストラクタ。
+ /// </summary>
+ /// <param name="lang">ウェブサイトの言語。</param>
+ public DummySite(Language lang)
+ : base(lang)
+ {
+ }
+
+ #endregion
+
+ #region ダミーメソッド
+
+ /// <summary>
+ /// ページを取得。
+ /// </summary>
+ /// <param name="title">ページタイトル。</param>
+ /// <returns>取得したページ。</returns>
+ /// <remarks>取得できない場合(通信エラーなど)は例外を投げる。</remarks>
+ public override Page GetPage(string title)
+ {
+ if (title == "Template:Test/doc")
+ {
+ return new MediaWikiPage(
+ this,
+ title,
+ "[[ja:テストページ]]<nowiki>[[zh:試験]]</nowiki><!--[[ru:test]]-->[[fr:Test_Fr]]");
+ }
+
+ return base.GetPage(title);
+ }
+
+ #endregion
+ }
+
+ #endregion
}
}
using System.Text;
using System.Xml;
using System.Xml.Serialization;
- using NUnit.Framework;
using Honememo.Models;
using Honememo.Utilities;
using Honememo.Wptscs.Models;
+ using NUnit.Framework;
/// <summary>
/// MediaWikiのテストクラスです。
/// <summary>
/// テスト用の値を設定したMediaWikiオブジェクトを返す。
/// </summary>
+ /// <param name="language">言語コード。</param>
+ /// <returns>テスト用の値を設定したオブジェクト。</returns>
public MediaWiki GetTestServer(string language)
{
// ※ 下記URL生成時は、きちんとパス区切り文字を入れてやら無いとフォルダが認識されない。
// また、httpで取得した場合とfileで取得した場合では先頭の大文字小文字が異なることが
// あるため、それについては随時期待値を調整して対処。
- UriBuilder b = new UriBuilder("file", "");
+ UriBuilder b = new UriBuilder("file", String.Empty);
b.Path = Path.GetFullPath(testDir) + "\\";
MediaWiki server = new MediaWiki(new Language(language), new Uri(b.Uri, language + "/").ToString());
server.ExportPath = "$1.xml";
Assert.IsNullOrEmpty(site.LinkInterwikiFormat);
// 値を設定するとその値が返る
- site.LinkInterwikiFormat = ("{{仮リンク|$1|$2|$3|label=$4}}");
+ site.LinkInterwikiFormat = "{{仮リンク|$1|$2|$3|label=$4}}";
Assert.AreEqual("{{仮リンク|$1|$2|$3|label=$4}}", site.LinkInterwikiFormat);
site.LinkInterwikiFormat = null;
Assert.IsNullOrEmpty(site.LinkInterwikiFormat);
Assert.IsNullOrEmpty(site.LangFormat);
// 値を設定するとその値が返る
- site.LangFormat = ("{{Lang|$1|$2}}");
+ site.LangFormat = "{{Lang|$1|$2}}";
Assert.AreEqual("{{Lang|$1|$2}}", site.LangFormat);
site.LangFormat = null;
Assert.IsNullOrEmpty(site.LangFormat);
Assert.IsNotNull(site);
Assert.AreEqual("http://ja.wikipedia.org", site.Location);
Assert.AreEqual("ja", site.Language.Code);
- // TODO: プロパティに値が設定されたパターンを追加すべき
- // TODO: プロパティが空の場合、きちんとデフォルト値が参照されることも確認すべき
+
+ //// TODO: プロパティに値が設定されたパターンを追加すべき
+ //// TODO: プロパティが空の場合、きちんとデフォルト値が参照されることも確認すべき
}
/// <summary>
// プロパティはデフォルト値の場合出力しないという動作あり
Assert.AreEqual("<MediaWiki><Location>http://ja.wikipedia.org</Location><Language Code=\"ja\"><Names /><Bracket /></Language><MetaApi /><ExportPath /><Redirect /><TemplateNamespace /><CategoryNamespace /><FileNamespace /><MagicWords /><InterwikiPrefixs /><DocumentationTemplates /><LinkInterwikiFormat /><LangFormat /></MediaWiki>", b.ToString());
- // TODO: プロパティに値が設定されたパターンを追加すべき
+
+ //// TODO: プロパティに値が設定されたパターンを追加すべき
}
#endregion
{
using System;
using System.Collections.Generic;
- using NUnit.Framework;
using Honememo.Tests;
using Honememo.Utilities;
+ using NUnit.Framework;
/// <summary>
/// Pageのテストクラスです。
[TestFixture]
public class PageTest
{
- #region モッククラス
-
- /// <summary>
- /// Pageテスト用のモッククラスです。
- /// </summary>
- public class DummySite : Website
- {
- #region ダミーメソッド
-
- /// <summary>
- /// ページを取得。
- /// </summary>
- /// <param name="title">ページタイトル。</param>
- /// <returns>取得したページ。</returns>
- /// <remarks>取得できない場合(通信エラーなど)は例外を投げる。</remarks>
- public override Page GetPage(string title)
- {
- return null;
- }
-
- #endregion
- }
-
- #endregion
-
#region コンストラクタテストケース
/// <summary>
}
#endregion
+
+ #region モッククラス
+
+ /// <summary>
+ /// Pageテスト用のモッククラスです。
+ /// </summary>
+ public class DummySite : Website
+ {
+ #region ダミーメソッド
+
+ /// <summary>
+ /// ページを取得。
+ /// </summary>
+ /// <param name="title">ページタイトル。</param>
+ /// <returns>取得したページ。</returns>
+ /// <remarks>取得できない場合(通信エラーなど)は例外を投げる。</remarks>
+ public override Page GetPage(string title)
+ {
+ return null;
+ }
+
+ #endregion
+ }
+
+ #endregion
}
}
// <summary>
// Websiteのテストクラスソース。</summary>
//
-// <copyright file="WebsiteTest.cs.cs" company="honeplusのメモ帳">
-// Copyright (C) 2011 Honeplus. All rights reserved.</copyright>
+// <copyright file="WebsiteTest.cs" company="honeplusのメモ帳">
+// Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
// <author>
// Honeplus</author>
// ================================================================================================
using System.Text;
using System.Xml;
using System.Xml.Serialization;
- using NUnit.Framework;
using Honememo.Utilities;
using Honememo.Wptscs.Models;
+ using NUnit.Framework;
/// <summary>
/// Websiteのテストクラスです。
[TestFixture]
public class WebsiteTest
{
+ #region プロパティテストケース
+
+ /// <summary>
+ /// Locationプロパティテストケース。
+ /// </summary>
+ [Test]
+ public void TestLocation()
+ {
+ DummySite site = new DummySite();
+ site.Location = "test";
+ Assert.AreEqual("test", site.Location);
+ }
+
+ /// <summary>
+ /// Locationプロパティテストケース(null)。
+ /// </summary>
+ [Test]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestLocationNull()
+ {
+ new DummySite().Location = null;
+ }
+
+ /// <summary>
+ /// Locationプロパティテストケース(空)。
+ /// </summary>
+ [Test]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestLocationBlank()
+ {
+ new DummySite().Location = " ";
+ }
+
+ /// <summary>
+ /// Languageプロパティテストケース。
+ /// </summary>
+ [Test]
+ public void TestLanguage()
+ {
+ DummySite site = new DummySite();
+ site.Language = new Language("ja");
+ Assert.AreEqual("ja", site.Language.Code);
+ }
+
+ /// <summary>
+ /// Languageプロパティテストケース(null)。
+ /// </summary>
+ [Test]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestLanguageNull()
+ {
+ new DummySite().Language = null;
+ }
+
+ #endregion
+
+ #region メソッドテストケース
+
+ /// <summary>
+ /// XMLデシリアライズテストケース。
+ /// </summary>
+ [Test]
+ public void TestReadXml()
+ {
+ DummySite site;
+ using (XmlReader r = XmlReader.Create(
+ new StringReader("<DummySite><Location>http://ja.wikipedia.org</Location>"
+ + "<Language Code=\"ja\"><Names /></Language></DummySite>")))
+ {
+ site = new XmlSerializer(typeof(DummySite)).Deserialize(r) as DummySite;
+ }
+
+ Assert.IsNotNull(site);
+ Assert.AreEqual("http://ja.wikipedia.org", site.Location);
+ Assert.AreEqual("ja", site.Language.Code);
+ }
+
+ /// <summary>
+ /// XMLシリアライズテストケース。
+ /// </summary>
+ [Test]
+ public void TestWriteXml()
+ {
+ Language lang = new Language("ja");
+ DummySite site = new DummySite();
+ site.Location = "http://ja.wikipedia.org";
+ site.Language = lang;
+ XmlWriterSettings settings = new XmlWriterSettings();
+ settings.OmitXmlDeclaration = true;
+
+ StringBuilder b = new StringBuilder();
+ using (XmlWriter w = XmlWriter.Create(b, settings))
+ {
+ new XmlSerializer(typeof(DummySite)).Serialize(w, site);
+ }
+
+ Assert.AreEqual("<DummySite><Location>http://ja.wikipedia.org</Location><Language Code=\"ja\"><Names /><Bracket /></Language></DummySite>", b.ToString());
+ }
+
+ #endregion
+
#region モッククラス
/// <summary>
}
#endregion
-
- #region プロパティテストケース
-
- /// <summary>
- /// Locationプロパティテストケース。
- /// </summary>
- [Test]
- public void TestLocation()
- {
- DummySite site = new DummySite();
- site.Location = "test";
- Assert.AreEqual("test", site.Location);
- }
-
- /// <summary>
- /// Locationプロパティテストケース(null)。
- /// </summary>
- [Test]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestLocationNull()
- {
- new DummySite().Location = null;
- }
-
- /// <summary>
- /// Locationプロパティテストケース(空)。
- /// </summary>
- [Test]
- [ExpectedException(typeof(ArgumentException))]
- public void TestLocationBlank()
- {
- new DummySite().Location = " ";
- }
-
- /// <summary>
- /// Languageプロパティテストケース。
- /// </summary>
- [Test]
- public void TestLanguage()
- {
- DummySite site = new DummySite();
- site.Language = new Language("ja");
- Assert.AreEqual("ja", site.Language.Code);
- }
-
- /// <summary>
- /// Languageプロパティテストケース(null)。
- /// </summary>
- [Test]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestLanguageNull()
- {
- new DummySite().Language = null;
- }
-
- #endregion
-
- #region メソッドテストケース
-
- /// <summary>
- /// XMLデシリアライズテストケース。
- /// </summary>
- [Test]
- public void TestReadXml()
- {
- DummySite site;
- using (XmlReader r = XmlReader.Create(
- new StringReader("<DummySite><Location>http://ja.wikipedia.org</Location>"
- + "<Language Code=\"ja\"><Names /></Language></DummySite>")))
- {
- site = new XmlSerializer(typeof(DummySite)).Deserialize(r) as DummySite;
- }
-
- Assert.IsNotNull(site);
- Assert.AreEqual("http://ja.wikipedia.org", site.Location);
- Assert.AreEqual("ja", site.Language.Code);
- }
-
- /// <summary>
- /// XMLシリアライズテストケース。
- /// </summary>
- [Test]
- public void TestWriteXml()
- {
- Language lang = new Language("ja");
- DummySite site = new DummySite();
- site.Location = "http://ja.wikipedia.org";
- site.Language = lang;
- XmlWriterSettings settings = new XmlWriterSettings();
- settings.OmitXmlDeclaration = true;
-
- StringBuilder b = new StringBuilder();
- using (XmlWriter w = XmlWriter.Create(b, settings))
- {
- new XmlSerializer(typeof(DummySite)).Serialize(w, site);
- }
-
- Assert.AreEqual("<DummySite><Location>http://ja.wikipedia.org</Location><Language Code=\"ja\"><Names /><Bracket /></Language></DummySite>", b.ToString());
- }
-
- #endregion
}
}
<Compile Include="Parsers\MediaWikiVariableTest.cs" />
<Compile Include="Websites\MediaWikiPageTest.cs" />
<Compile Include="Websites\PageTest.cs" />
- <Compile Include="Models\MockFoctory.cs" />
+ <Compile Include="Models\MockFactory.cs" />
<Compile Include="Models\LanguageTest.cs" />
<Compile Include="Websites\MediaWikiTest.cs" />
<Compile Include="Models\TranslationDictionaryTest.cs" />