OSDN Git Service

#30244 Visual Studio 2012 Express for Windows Desktop, StyleCop 4.7, WiX 3.6 に合わせたソース...
[wptscs/wpts.git] / WptscsTest / Parsers / MediaWikiLinkTest.cs
index 200069f..174c1ab 100644 (file)
@@ -12,13 +12,13 @@ namespace Honememo.Wptscs.Parsers
 {
     using System;
     using System.Collections.Generic;
-    using NUnit.Framework;
     using Honememo.Parsers;
+    using Microsoft.VisualStudio.TestTools.UnitTesting;
 
     /// <summary>
-    /// MediaWikiLinkのテストクラスです。
+    /// <see cref="MediaWikiLink"/>のテストクラスです。
     /// </summary>
-    [TestFixture]
+    [TestClass]
     public class MediaWikiLinkTest
     {
         #region コンストラクタテストケース
@@ -26,7 +26,7 @@ namespace Honememo.Wptscs.Parsers
         /// <summary>
         /// コンストラクタテストケース。
         /// </summary>
-        [Test]
+        [TestMethod]
         public void TestConstructor()
         {
             MediaWikiLink element;
@@ -49,7 +49,7 @@ namespace Honememo.Wptscs.Parsers
         /// <summary>
         /// Titleプロパティテストケース。
         /// </summary>
-        [Test]
+        [TestMethod]
         public void TestTitle()
         {
             MediaWikiLink element = new MediaWikiLink();
@@ -62,7 +62,7 @@ namespace Honememo.Wptscs.Parsers
         /// <summary>
         /// Sectionプロパティテストケース。
         /// </summary>
-        [Test]
+        [TestMethod]
         public void TestSection()
         {
             MediaWikiLink element = new MediaWikiLink();
@@ -75,7 +75,7 @@ namespace Honememo.Wptscs.Parsers
         /// <summary>
         /// PipeTextsプロパティテストケース。
         /// </summary>
-        [Test]
+        [TestMethod]
         public void TestPipeTexts()
         {
             MediaWikiLink element = new MediaWikiLink();
@@ -88,22 +88,22 @@ namespace Honememo.Wptscs.Parsers
         }
 
         /// <summary>
-        /// Codeプロパティテストケース。
+        /// Interwikiプロパティテストケース。
         /// </summary>
-        [Test]
-        public void TestCode()
+        [TestMethod]
+        public void TestInterwiki()
         {
             MediaWikiLink element = new MediaWikiLink();
 
-            Assert.IsNull(element.Code);
-            element.Code = "test";
-            Assert.AreEqual("test", element.Code);
+            Assert.IsNull(element.Interwiki);
+            element.Interwiki = "test";
+            Assert.AreEqual("test", element.Interwiki);
         }
 
         /// <summary>
         /// IsColonプロパティテストケース。
         /// </summary>
-        [Test]
+        [TestMethod]
         public void TestIsColon()
         {
             MediaWikiLink element = new MediaWikiLink();
@@ -120,9 +120,38 @@ namespace Honememo.Wptscs.Parsers
         #region 公開メソッドテストケース
 
         /// <summary>
+        /// IsSubpageメソッドテストケース。
+        /// </summary>
+        [TestMethod]
+        public void TestIsSubpage()
+        {
+            MediaWikiLink element = new MediaWikiLink();
+
+            // 通常の記事へのリンク
+            element.Title = "testtitle";
+            Assert.IsFalse(element.IsSubpage());
+
+            // 先頭が / で始まるサブページへのリンク
+            element.Title = "/testtitle";
+            Assert.IsTrue(element.IsSubpage());
+            element.Title = "/testtitle/";
+            Assert.IsTrue(element.IsSubpage());
+
+            // 先頭が ../ で始まるサブページへのリンク
+            element.Title = "../";
+            Assert.IsTrue(element.IsSubpage());
+            element.Title = "../../";
+            Assert.IsTrue(element.IsSubpage());
+            element.Title = "../testtitle";
+            Assert.IsTrue(element.IsSubpage());
+            element.Title = "../../testtitle";
+            Assert.IsTrue(element.IsSubpage());
+        }
+
+        /// <summary>
         /// GetLinkStringメソッドテストケース。
         /// </summary>
-        [Test]
+        [TestMethod]
         public void TestGetLinkString()
         {
             MediaWikiLink element = new MediaWikiLink();
@@ -132,7 +161,7 @@ namespace Honememo.Wptscs.Parsers
             Assert.AreEqual("testtitle", element.GetLinkString());
 
             // タイトルとセクション
-            element.Section = String.Empty;
+            element.Section = string.Empty;
             Assert.AreEqual("testtitle#", element.GetLinkString());
             element.Section = "testsection";
             Assert.AreEqual("testtitle#testsection", element.GetLinkString());
@@ -143,7 +172,7 @@ namespace Honememo.Wptscs.Parsers
             Assert.AreEqual("testtitle#testsection", element.GetLinkString());
 
             // タイトルとセクションとパイプ後の文字列とコード
-            element.Code = "en";
+            element.Interwiki = "en";
             Assert.AreEqual("en:testtitle#testsection", element.GetLinkString());
 
             // タイトルとセクションとパイプ後の文字列とコードとコロン
@@ -157,7 +186,7 @@ namespace Honememo.Wptscs.Parsers
             element.PipeTexts.Add(new TextElement("thumb"));
             element.PipeTexts.Add(new TextElement("right"));
             element.PipeTexts.Add(new TextElement("[[ケプラー22b]](想像図)"));
-            element.Code = null;
+            element.Interwiki = null;
             element.IsColon = false;
             Assert.AreEqual("ファイル:Kepler22b-artwork.jpg", element.GetLinkString());
         }
@@ -169,7 +198,7 @@ namespace Honememo.Wptscs.Parsers
         /// <summary>
         /// ToStringメソッドテストケース。
         /// </summary>
-        [Test]
+        [TestMethod]
         public void TestToString()
         {
             MediaWikiLink element = new MediaWikiLink();
@@ -179,7 +208,7 @@ namespace Honememo.Wptscs.Parsers
             Assert.AreEqual("[[testtitle]]", element.ToString());
 
             // タイトルとセクション
-            element.Section = String.Empty;
+            element.Section = string.Empty;
             Assert.AreEqual("[[testtitle#]]", element.ToString());
             element.Section = "testsection";
             Assert.AreEqual("[[testtitle#testsection]]", element.ToString());
@@ -190,7 +219,7 @@ namespace Honememo.Wptscs.Parsers
             Assert.AreEqual("[[testtitle#testsection|testpipe1|testpipe2]]", element.ToString());
 
             // タイトルとセクションとパイプ後の文字列とコード
-            element.Code = "en";
+            element.Interwiki = "en";
             Assert.AreEqual("[[en:testtitle#testsection|testpipe1|testpipe2]]", element.ToString());
 
             // タイトルとセクションとパイプ後の文字列とコードとコロン
@@ -204,7 +233,7 @@ namespace Honememo.Wptscs.Parsers
             element.PipeTexts.Add(new TextElement("thumb"));
             element.PipeTexts.Add(new TextElement("right"));
             element.PipeTexts.Add(new TextElement("[[ケプラー22b]](想像図)"));
-            element.Code = null;
+            element.Interwiki = null;
             element.IsColon = false;
             Assert.AreEqual("[[ファイル:Kepler22b-artwork.jpg|thumb|right|[[ケプラー22b]](想像図)]]", element.ToString());
         }