X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=WptscsTest%2FWebsites%2FMediaWikiPageTest.cs;h=6535861bb140faa0a1031e9fc82ccb1d7564b3d6;hb=37517d324914f66633a6aad7004b6cbc17fe78f2;hp=7092b0d1f6906d5ea3a569c86d586a2762d63306;hpb=d4aa6c79214cc295c646bc91ecbd2d9387f195bd;p=wptscs%2Fwpts.git
diff --git a/WptscsTest/Websites/MediaWikiPageTest.cs b/WptscsTest/Websites/MediaWikiPageTest.cs
index 7092b0d..6535861 100644
--- a/WptscsTest/Websites/MediaWikiPageTest.cs
+++ b/WptscsTest/Websites/MediaWikiPageTest.cs
@@ -13,17 +13,16 @@ namespace Honememo.Wptscs.Websites
using System;
using System.Collections.Generic;
using Honememo.Parsers;
- using Honememo.Tests;
using Honememo.Utilities;
using Honememo.Wptscs.Models;
using Honememo.Wptscs.Parsers;
using NUnit.Framework;
///
- /// MediaWikiPageã®ãã¹ãã¯ã©ã¹ã§ãã
+ /// ã®ãã¹ãã¯ã©ã¹ã§ãã
///
[TestFixture]
- public class MediaWikiPageTest
+ class MediaWikiPageTest
{
#region ã³ã³ã¹ãã©ã¯ã¿ãã¹ãã±ã¼ã¹
@@ -34,7 +33,7 @@ namespace Honememo.Wptscs.Websites
public void TestConstructorWebsiteTitleTextTimestamp()
{
DateTime t = DateTime.Now;
- MediaWiki s = new DummySite(new Language("en"));
+ MediaWiki s = new MediaWiki(new Language("en"));
MediaWikiPage page = new MediaWikiPage(s, "TestTitle", "TestText", t);
Assert.AreSame(s, page.Website);
Assert.AreEqual("TestTitle", page.Title);
@@ -48,7 +47,7 @@ namespace Honememo.Wptscs.Websites
[Test]
public void TestConstructorWebsiteTitleText()
{
- MediaWiki s = new DummySite(new Language("en"));
+ MediaWiki s = new MediaWiki(new Language("en"));
MediaWikiPage page = new MediaWikiPage(s, "TestTitle", "TestText");
Assert.AreEqual(s, page.Website);
Assert.AreEqual("TestTitle", page.Title);
@@ -62,7 +61,7 @@ namespace Honememo.Wptscs.Websites
[Test]
public void TestConstructorWebsiteTitle()
{
- MediaWiki s = new DummySite(new Language("en"));
+ MediaWiki s = new MediaWiki(new Language("en"));
MediaWikiPage page = new MediaWikiPage(s, "TestTitle");
Assert.AreEqual(s, page.Website);
Assert.AreEqual("TestTitle", page.Title);
@@ -87,7 +86,7 @@ namespace Honememo.Wptscs.Websites
[ExpectedException(typeof(ArgumentException))]
public void TestConstructorTitleBlank()
{
- new MediaWikiPage(new DummySite(new Language("en")), " ");
+ new MediaWikiPage(new MediaWiki(new Language("en")), " ");
}
#endregion
@@ -95,7 +94,7 @@ namespace Honememo.Wptscs.Websites
#region ããããã£ãã¹ãã±ã¼ã¹
///
- /// Redirectããããã£ãã¹ãã±ã¼ã¹ï¼æ£å¸¸ç³»ï¼ã
+ /// ããããã£ãã¹ãã±ã¼ã¹ï¼æ£å¸¸ç³»ï¼ã
///
[Test]
public void TestRedirect()
@@ -117,7 +116,7 @@ namespace Honememo.Wptscs.Websites
}
///
- /// Redirectããããã£ãã¹ãã±ã¼ã¹ï¼Textæªè¨å®ï¼ã
+ /// ããããã£ãã¹ãã±ã¼ã¹ï¼Textæªè¨å®ï¼ã
///
[Test]
[ExpectedException(typeof(InvalidOperationException))]
@@ -126,47 +125,19 @@ namespace Honememo.Wptscs.Websites
MediaWikiLink dummy = new MediaWikiPage(new MockFactory().GetMediaWiki("en"), "TestTitle").Redirect;
}
- ///
- /// Elementããããã£ãã¹ãã±ã¼ã¹ï¼æ£å¸¸ç³»ï¼ã
- ///
- [Test]
- public void TestElement()
- {
- IElement element = new MediaWikiPage(new MockFactory().GetMediaWiki("en"), "TestTitle", "'''Title''' is [[xxx]].").Element;
- Assert.IsNotNull(element);
- Assert.AreEqual("'''Title''' is [[xxx]].", element.ToString());
- Assert.IsInstanceOf(typeof(ListElement), element);
- ListElement list = (ListElement)element;
- Assert.AreEqual(3, list.Count);
- Assert.AreEqual("'''Title''' is ", list[0].ToString());
- Assert.AreEqual("[[xxx]]", list[1].ToString());
- Assert.IsInstanceOf(typeof(MediaWikiLink), list[1]);
- Assert.AreEqual(".", list[2].ToString());
- }
-
- ///
- /// Elementããããã£ãã¹ãã±ã¼ã¹ï¼Textæªè¨å®ï¼ã
- ///
- [Test]
- [ExpectedException(typeof(InvalidOperationException))]
- public void TestElementTextNull()
- {
- IElement dummy = new MediaWikiPage(new MockFactory().GetMediaWiki("en"), "TestTitle").Element;
- }
-
#endregion
#region å
¬éã¡ã½ãããã¹ãã±ã¼ã¹
///
- /// GetInterlanguageã¡ã½ãããã¹ãã±ã¼ã¹ï¼é常ãã¼ã¸ï¼ã
+ /// ã¡ã½ãããã¹ãã±ã¼ã¹ï¼é常ãã¼ã¸ï¼ã
///
[Test]
public void TestGetInterlanguage()
{
// æ®éã®ãã¼ã¸
MediaWikiPage page = new MediaWikiPage(
- new DummySite(new Language("en")),
+ new MediaWiki(new Language("en")),
"TestTitle",
"TestText\n [[ja:ãã¹ããã¼ã¸]][[zh:試é¨]][[fr:Test_Fr]]");
Assert.AreEqual("[[ja:ãã¹ããã¼ã¸]]", page.GetInterlanguage("ja").ToString());
@@ -177,7 +148,7 @@ namespace Honememo.Wptscs.Websites
}
///
- /// GetInterlanguageã¡ã½ãããã¹ãã±ã¼ã¹ï¼é常ãã¼ã¸å®ãã¼ã¿ä½¿ç¨ï¼ã
+ /// ã¡ã½ãããã¹ãã±ã¼ã¹ï¼é常ãã¼ã¸å®ãã¼ã¿ä½¿ç¨ï¼ã
///
[Test, Timeout(20000)]
public void TestGetInterlanguageDiscoveryChannel()
@@ -191,7 +162,7 @@ namespace Honememo.Wptscs.Websites
}
///
- /// GetInterlanguageã¡ã½ãããã¹ãã±ã¼ã¹ï¼ãã³ãã¬ã¼ããã¼ã¸å®ãã¼ã¿ä½¿ç¨ï¼ã
+ /// ã¡ã½ãããã¹ãã±ã¼ã¹ï¼ãã³ãã¬ã¼ããã¼ã¸å®ãã¼ã¿ä½¿ç¨ï¼ã
///
[Test, Timeout(20000)]
public void TestGetInterlanguagePlanetboxBegin()
@@ -203,7 +174,7 @@ namespace Honememo.Wptscs.Websites
}
///
- /// GetInterlanguageã¡ã½ãããã¹ãã±ã¼ã¹ï¼Template:Documentation使ç¨ãã¼ã¸ï¼ã
+ /// ã¡ã½ãããã¹ãã±ã¼ã¹ï¼Template:Documentation使ç¨ãã¼ã¸ï¼ã
///
[Test]
public void TestGetInterlanguageDocumentation()
@@ -222,12 +193,23 @@ namespace Honememo.Wptscs.Websites
}
///
- /// IsRedirectã¡ã½ãããã¹ãã±ã¼ã¹ã
+ /// ã¡ã½ãããã¹ãã±ã¼ã¹ï¼Template:Documentationã«noincludeã§å²ã¾ããè¨èªéãªã³ã¯ãåå¨ï¼ã
+ ///
+ [Test]
+ public void TestGetInterlanguagePartial()
+ {
+ MediaWikiPage page = (MediaWikiPage)new MockFactory().GetMediaWiki("en").GetPage("Template:Partial");
+ Assert.AreEqual("[[ja:Template:Partial]]", page.GetInterlanguage("ja").ToString());
+ Assert.IsNull(page.GetInterlanguage("ru"));
+ }
+
+ ///
+ /// ã¡ã½ãããã¹ãã±ã¼ã¹ã
///
[Test]
public void TestIsRedirect()
{
- MediaWiki site = new DummySite(new Language("en"));
+ MediaWiki site = new MediaWiki(new Language("en"));
MediaWikiPage page = new MediaWikiPage(site, "TestTitle", "#REDIRECT [[Test Redirect]]");
Assert.IsTrue(page.IsRedirect());
Assert.AreEqual("Test Redirect", page.Redirect.Title);
@@ -250,12 +232,12 @@ namespace Honememo.Wptscs.Websites
}
///
- /// Normalizeã¡ã½ãããã¹ãã±ã¼ã¹ã
+ /// ã¡ã½ãããã¹ãã±ã¼ã¹ã
///
[Test]
public void TestNormalize()
{
- MediaWiki site = new DummySite(new Language("en"));
+ MediaWiki site = new MediaWiki(new Language("en"));
MediaWikiPage page = new MediaWikiPage(site, "A/b/c");
// ãµããã¼ã¸ã®æ£è¦å
@@ -285,33 +267,26 @@ namespace Honememo.Wptscs.Websites
// éå
¬éã¡ã½ããã«ã¤ãã¦ã¯protected以ä¸ãã¾ãã¯ããããé¨åã ãå®æ½
///
- /// ValidateIncompleteã¡ã½ãããã¹ãã±ã¼ã¹ï¼æ£å¸¸ç³»ï¼ã
+ /// ã¡ã½ãããã¹ãã±ã¼ã¹ï¼æ£å¸¸ç³»ï¼ã
///
[Test]
public void TestValidateIncomplete()
{
- // æ£å¸¸ç³»ã¯ä¾å¤ãçºçããªããã°OK
- PrivateAccessor acc = new PrivateAccessor(
- new MediaWikiPage(
- new MediaWiki(new Language("en")),
- "TestTitle",
- "TestText"));
- acc.SetMethod("ValidateIncomplete", new Type[0]);
- acc.Invoke(new object[0]);
+ // Textã空ã®å ´åä¾å¤çºçãæ£å¸¸ç³»ã¯ä¾å¤ãçºçããªããã°OK
+ MediaWikiPageMock page = new MediaWikiPageMock(new MediaWiki(new Language("en")), "TestTitle");
+ page.Text = "TestText";
+ page.ValidateIncomplete();
}
///
- /// ValidateIncompleteã¡ã½ãããã¹ãã±ã¼ã¹ï¼ç°å¸¸ç³»ï¼ã
+ /// ã¡ã½ãããã¹ãã±ã¼ã¹ï¼ç°å¸¸ç³»ï¼ã
///
[Test]
[ExpectedException(typeof(InvalidOperationException))]
public void TestValidateIncompleteNg()
{
- // æ£å¸¸ç³»ã¯ä¾å¤ãçºçããªããã°OK
- PrivateAccessor acc = new PrivateAccessor(
- new MediaWikiPage(new MediaWiki(new Language("en")), "TestTitle"));
- acc.SetMethod("ValidateIncomplete");
- acc.Invoke();
+ // Textã空ã®å ´åä¾å¤çºç
+ new MediaWikiPageMock(new MediaWiki(new Language("en")), "TestTitle").ValidateIncomplete();
}
#endregion
@@ -319,9 +294,9 @@ namespace Honememo.Wptscs.Websites
#region ã¢ãã¯ã¯ã©ã¹
///
- /// MediaWikiãã¹ãç¨ã®ã¢ãã¯ã¯ã©ã¹ã§ãã
+ /// ãã¹ãç¨ã®ã¢ãã¯ã¯ã©ã¹ã§ãã
///
- public class DummySite : MediaWiki
+ private class DummySite : MediaWiki
{
#region ã³ã³ã¹ãã©ã¯ã¿
@@ -339,7 +314,7 @@ namespace Honememo.Wptscs.Websites
#region ããã¼ã¡ã½ãã
///
- /// ãã¼ã¸ãåå¾ã
+ /// ãã¼ã¸ãåå¾ãã«å¿ãã¦ãã¹ãç¨ã®çµæãè¿ãã
///
/// ãã¼ã¸ã¿ã¤ãã«ã
/// åå¾ãããã¼ã¸ã
@@ -360,6 +335,61 @@ namespace Honememo.Wptscs.Websites
#endregion
}
+ ///
+ /// ãã¹ãç¨ã®ã¢ãã¯ã¯ã©ã¹ã§ãã
+ ///
+ private class MediaWikiPageMock : MediaWikiPage
+ {
+ #region ã³ã³ã¹ãã©ã¯ã¿
+
+ ///
+ /// ã³ã³ã¹ãã©ã¯ã¿ã
+ /// ãã¼ã¸ã®æ¬æ, ã¿ã¤ã ã¹ã¿ã³ãã«ã¯nullãè¨å®ã
+ ///
+ /// ãã¼ã¸ãæå±ããã¦ã§ããµã¤ãã
+ /// ãã¼ã¸ã¿ã¤ãã«ã
+ public MediaWikiPageMock(MediaWiki website, string title)
+ : base(website, title)
+ {
+ }
+
+ #endregion
+
+ #region éå
¬éããããã£ãã¹ãç¨ã®ãªã¼ã©ã¼ã©ã¤ãããããã£
+
+ ///
+ /// ãã¼ã¸ã®æ¬æã
+ ///
+ public new string Text
+ {
+ get
+ {
+ return base.Text;
+ }
+
+ set
+ {
+ base.Text = value;
+ }
+ }
+
+ #endregion
+
+ #region éå
¬éã¡ã½ãããã¹ãç¨ã®ãªã¼ã©ã¼ã©ã¤ãã¡ã½ãã
+
+ ///
+ /// ãªãã¸ã§ã¯ããã¡ã½ããã®å®è¡ã«ä¸å®å
¨ãªç¶æ
ã§ãªããæ¤è¨¼ããã
+ /// ä¸å®å
¨ãªå ´åãä¾å¤ãã¹ãã¼ããã
+ ///
+ /// ãªãã¸ã§ã¯ãã¯ä¸å®å
¨ã
+ public new void ValidateIncomplete()
+ {
+ base.ValidateIncomplete();
+ }
+
+ #endregion
+ }
+
#endregion
}
}