1 // ================================================================================================
3 // MediaWikiRedirectParserのテストクラスソース。</summary>
5 // <copyright file="MediaWikiRedirectParserTest.cs" company="honeplusのメモ帳">
6 // Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
9 // ================================================================================================
11 namespace Honememo.Wptscs.Parsers
14 using Honememo.Parsers;
15 using Honememo.Wptscs.Models;
16 using Honememo.Wptscs.Websites;
17 using NUnit.Framework;
20 /// <see cref="MediaWikiRedirectParser"/>のテストクラスです。
23 internal class MediaWikiRedirectParserTest
25 #region ITextParserインタフェース実装メソッド
28 /// <see cref="MediaWikiRedirectParser.TryParseToEndCondition"/>メソッドテストケース。
31 public void TestTryParseToEndCondition()
35 using (MediaWikiRedirectParser parser = new MediaWikiRedirectParser(new MockFactory().GetMediaWiki("en")))
38 Assert.IsTrue(parser.TryParseToEndCondition("#redirect [[Test]]", null, out element));
39 Assert.IsInstanceOf(typeof(MediaWikiLink), element);
40 link = (MediaWikiLink)element;
41 Assert.AreEqual("Test", link.Title);
42 Assert.IsNull(link.Section);
45 Assert.IsTrue(parser.TryParseToEndCondition("#redirect [[Test#Section]]", null, out element));
46 Assert.IsInstanceOf(typeof(MediaWikiLink), element);
47 link = (MediaWikiLink)element;
48 Assert.AreEqual("Test", link.Title);
49 Assert.AreEqual("Section", link.Section);
51 // リダイレクトの前にスペースや空行があってもOK
52 Assert.IsTrue(parser.TryParseToEndCondition(" \r\n \r\n#REDIRECT [[ Test2 ]] \r\n \r\n", null, out element));
53 Assert.IsInstanceOf(typeof(MediaWikiLink), element);
54 link = (MediaWikiLink)element;
55 Assert.AreEqual("Test2", link.Title);
56 Assert.IsNull(link.Section);
59 Assert.IsFalse(parser.TryParseToEndCondition("'''Example''' may refer to:", null, out element));
60 Assert.IsNull(element);
63 Assert.IsFalse(parser.TryParseToEndCondition("#転送 [[Test]]", null, out element));
64 Assert.IsNull(element);
67 Assert.IsFalse(parser.TryParseToEndCondition(String.Empty, null, out element));
68 Assert.IsNull(element);
69 Assert.IsFalse(parser.TryParseToEndCondition(null, null, out element));
70 Assert.IsNull(element);
73 using (MediaWikiRedirectParser parser = new MediaWikiRedirectParser(new MockFactory().GetMediaWiki("ja")))
76 Assert.IsTrue(parser.TryParseToEndCondition("#転送 [[Test]]", null, out element));
77 Assert.IsInstanceOf(typeof(MediaWikiLink), element);
78 link = (MediaWikiLink)element;
79 Assert.AreEqual("Test", link.Title);
84 /// <see cref="MediaWikiRedirectParser.TryParseToEndCondition"/>
85 /// メソッドテストケース(Dispose)。
88 [ExpectedException(typeof(ObjectDisposedException))]
89 public void TestTryParseToEndConditionDispose()
91 MediaWikiRedirectParser parser = new MediaWikiRedirectParser(new MockFactory().GetMediaWiki("en"));
94 parser.TryParseToEndCondition(String.Empty, null, out result);