>(Path.Combine(_outputFolder, Path.ChangeExtension(conceptualFile, RawModelFileExtension)));
- Assert.Equal(
+ Assert.AreEqual(
$"Hello World ",
model["rawTitle"]);
- Assert.Equal(
+ Assert.AreEqual(
string.Join(
"\n",
"",
@@ -588,7 +588,7 @@ public void TestBuildWithInvalidPath()
$"Test link: link 10 ",
""),
model["conceptual"].ToString().Replace("\r", ""));
- Assert.Equal(
+ Assert.AreEqual(
string.Join(
"\n",
"",
@@ -604,8 +604,8 @@ public void TestBuildWithInvalidPath()
"Test link: link 10 ",
""),
File.ReadAllText(conceptualOutputPath));
- Assert.Equal("Conceptual", model["type"]);
- Assert.Equal("Hello world!", model["meta"]);
+ Assert.AreEqual("Conceptual", model["type"]);
+ Assert.AreEqual("Hello world!", model["meta"]);
}
}
finally
@@ -613,7 +613,7 @@ public void TestBuildWithInvalidPath()
}
}
- [Fact]
+ [TestMethod]
public void TestBuildWithInvalidPathWithTokenAndMapping()
{
#region Prepare test data
@@ -645,9 +645,9 @@ public void TestBuildWithInvalidPathWithTokenAndMapping()
{
// check conceptual.
var conceptualOutputPath = Path.Combine(_outputFolder, "a.html");
- Assert.True(File.Exists(conceptualOutputPath));
- Assert.True(File.Exists(Path.Combine(_outputFolder, Path.ChangeExtension("a.md", RawModelFileExtension))));
- Assert.Equal(
+ Assert.IsTrue(File.Exists(conceptualOutputPath));
+ Assert.IsTrue(File.Exists(Path.Combine(_outputFolder, Path.ChangeExtension("a.md", RawModelFileExtension))));
+ Assert.AreEqual(
string.Join(
"\n",
"link a ",
@@ -675,7 +675,7 @@ protected override Task SendAsync(HttpRequestMessage reques
}
}
- [Fact]
+ [TestMethod]
public void TestBuildWithMultipleVersion()
{
#region Prepare test data
@@ -696,9 +696,9 @@ public void TestBuildWithMultipleVersion()
versionDir: versionDir);
var conceptualOutputPath = Path.Combine(_outputFolder, versionDir, Path.ChangeExtension("a.md", RawModelFileExtension));
- Assert.True(File.Exists(conceptualOutputPath));
+ Assert.IsTrue(File.Exists(conceptualOutputPath));
var conceptualWithFileMappingOutputPath = Path.Combine(_outputFolder, versionDir, subDir, Path.ChangeExtension("b.md", RawModelFileExtension));
- Assert.True(File.Exists(conceptualWithFileMappingOutputPath));
+ Assert.IsTrue(File.Exists(conceptualWithFileMappingOutputPath));
}
private static void AssertMetadataEqual(object expected, object actual)
@@ -706,7 +706,7 @@ private static void AssertMetadataEqual(object expected, object actual)
var expectedJObject = JObject.FromObject(expected);
var actualJObject = JObject.FromObject(actual);
var equal = JObject.DeepEquals(expectedJObject, actualJObject);
- Assert.True(equal, $"Expected: {expectedJObject.ToJsonString()};{Environment.NewLine}Actual: {actualJObject.ToJsonString()}.");
+ Assert.IsTrue(equal, $"Expected: {expectedJObject.ToJsonString()};{Environment.NewLine}Actual: {actualJObject.ToJsonString()}.");
}
private void BuildDocument(
diff --git a/test/Docfx.Build.Tests/ExtractSearchIndexFromHtmlTest.cs b/test/Docfx.Build.Tests/ExtractSearchIndexFromHtmlTest.cs
index 478ce955538..1ba27c603a4 100644
--- a/test/Docfx.Build.Tests/ExtractSearchIndexFromHtmlTest.cs
+++ b/test/Docfx.Build.Tests/ExtractSearchIndexFromHtmlTest.cs
@@ -4,16 +4,16 @@
using System.Text;
using Docfx.Plugins;
using HtmlAgilityPack;
-using Xunit;
namespace Docfx.Build.Engine.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class ExtractSearchIndexFromHtmlTest
{
private static readonly ExtractSearchIndex _extractor = new();
- [Fact]
+ [TestMethod]
public void TestBasicFeature()
{
var rawHtml = @"
@@ -39,10 +39,10 @@ This is article title
html.LoadHtml(rawHtml);
var href = "http://dotnet.github.io/docfx";
var item = _extractor.ExtractItem(html, href);
- Assert.Equal(new SearchIndexItem { Href = href, Title = "This is title in head metadata", Summary = "Hello World, Microsoft This is article title docfx can do anything..." }, item);
+ Assert.AreEqual(new SearchIndexItem { Href = href, Title = "This is title in head metadata", Summary = "Hello World, Microsoft This is article title docfx can do anything..." }, item);
}
- [Fact]
+ [TestMethod]
public void TestMRefMetadata()
{
var rawHtml = @"
@@ -75,7 +75,7 @@ This is article title
["Title"] = "ManagedReferenceExample",
["Summary"] = "Lorem Ipsum",
});
- Assert.Equal(new SearchIndexItem { Href = href, Title = "This is title in head metadata", Summary = "Hello World, Microsoft This is article title docfx can do anything..." }, itemNoMetadata);
+ Assert.AreEqual(new SearchIndexItem { Href = href, Title = "This is title in head metadata", Summary = "Hello World, Microsoft This is article title docfx can do anything..." }, itemNoMetadata);
_extractor.UseMetadata = true;
_extractor.UseMetadataTitle = true;
var itemWithMetadata = _extractor.ExtractItem(html, href, new()
@@ -84,7 +84,7 @@ This is article title
["Title"] = "ManagedReferenceExample",
["Summary"] = "Lorem Ipsum",
});
- Assert.Equal(new SearchIndexItem
+ Assert.AreEqual(new SearchIndexItem
{
Href = href,
Title = "ManagedReferenceExample",
@@ -98,7 +98,7 @@ This is article title
["Title"] = "ManagedReferenceExample",
["Summary"] = "Lorem Ipsum",
});
- Assert.Equal(new SearchIndexItem
+ Assert.AreEqual(new SearchIndexItem
{
Href = href,
Title = "This is title in head metadata",
@@ -107,7 +107,7 @@ This is article title
}, itemWithMetadataNoTitle);
}
- [Fact]
+ [TestMethod]
public void TestSearchableClass()
{
var rawHtml = @"
@@ -124,10 +124,10 @@ public void TestSearchableClass()
html.LoadHtml(rawHtml);
var href = "http://dotnet.github.io/docfx";
var item = _extractor.ExtractItem(html, href);
- Assert.Equal(new SearchIndexItem { Href = href, Title = "This is title in head metadata", Summary = "Cooooooool!" }, item);
+ Assert.AreEqual(new SearchIndexItem { Href = href, Title = "This is title in head metadata", Summary = "Cooooooool!" }, item);
}
- [Fact]
+ [TestMethod]
public void TestSearchDisableClass()
{
var rawHtml = @"
@@ -150,10 +150,10 @@ This is article title
html.LoadHtml(rawHtml);
var href = "http://dotnet.github.io/docfx";
var item = _extractor.ExtractItem(html, href);
- Assert.Null(item);
+ Assert.IsNull(item);
}
- [Fact]
+ [TestMethod]
public void TestArticleTagWithSearchableClass()
{
var rawHtml = @"
@@ -172,10 +172,10 @@ Only index once.
html.LoadHtml(rawHtml);
var href = "http://dotnet.github.io/docfx";
var item = _extractor.ExtractItem(html, href);
- Assert.Equal(new SearchIndexItem { Href = href, Title = "This is title in head metadata", Summary = "Only index once." }, item);
+ Assert.AreEqual(new SearchIndexItem { Href = href, Title = "This is title in head metadata", Summary = "Only index once." }, item);
}
- [Fact]
+ [TestMethod]
public void TestDisableTagWithSearchableClass()
{
var rawHtml = @"
@@ -196,10 +196,10 @@ Only index once.
html.LoadHtml(rawHtml);
var href = "http://dotnet.github.io/docfx";
var item = _extractor.ExtractItem(html, href);
- Assert.Null(item);
+ Assert.IsNull(item);
}
- [Fact]
+ [TestMethod]
public void TestEmptyItem()
{
var rawHtml = @"
@@ -215,10 +215,10 @@ public void TestEmptyItem()
html.LoadHtml(rawHtml);
var href = "http://dotnet.github.io/docfx";
var item = _extractor.ExtractItem(html, href);
- Assert.Equal(new SearchIndexItem { Href = href, Title = "This is title in head metadata", Summary = string.Empty }, item);
+ Assert.AreEqual(new SearchIndexItem { Href = href, Title = "This is title in head metadata", Summary = string.Empty }, item);
}
- [Fact]
+ [TestMethod]
public void TestBlockTagsVsInlineTags()
{
var rawHtml = @"
@@ -235,10 +235,10 @@ public void TestBlockTagsVsInlineTags()
html.LoadHtml(rawHtml);
var href = "http://dotnet.github.io/docfx";
var item = _extractor.ExtractItem(html, href);
- Assert.Equal(new SearchIndexItem { Href = href, Title = "", Summary = "Insert space in block level html tags Donotinsertspaceininlinehtmltags" }, item);
+ Assert.AreEqual(new SearchIndexItem { Href = href, Title = "", Summary = "Insert space in block level html tags Donotinsertspaceininlinehtmltags" }, item);
}
- [Fact]
+ [TestMethod]
public void TestIndexDotJsonWithNonEnglishCharacters()
{
var rawHtml = @"
@@ -294,6 +294,6 @@ This is article title
}
}";
var actualIndexJSON = File.ReadAllText(Path.Combine(tempTestFolder, "index.json"), Encoding.UTF8);
- Assert.Equal(expectedIndexJSON, actualIndexJSON, ignoreLineEndingDifferences: true);
+ Assert.AreEqual(expectedIndexJSON.ReplaceLineEndings(), actualIndexJSON.ReplaceLineEndings());
}
}
diff --git a/test/Docfx.Build.Tests/FileMetadataHelperTest.cs b/test/Docfx.Build.Tests/FileMetadataHelperTest.cs
index 72d6703db72..b8f6e01b16e 100644
--- a/test/Docfx.Build.Tests/FileMetadataHelperTest.cs
+++ b/test/Docfx.Build.Tests/FileMetadataHelperTest.cs
@@ -3,13 +3,13 @@
using System.Collections.Immutable;
using Docfx.Glob;
-using Xunit;
namespace Docfx.Build.Engine.Tests;
+[TestClass]
public class FileMetadataHelperTest
{
- [Fact]
+ [TestMethod]
public void TestGetChangedGlobs_AllTheSame()
{
var baseDir = "inputFolder";
@@ -38,11 +38,11 @@ public void TestGetChangedGlobs_AllTheSame()
});
var actual = FileMetadataHelper.GetChangedGlobs(left, right).ToList();
- Assert.NotNull(actual);
- Assert.Empty(actual);
+ Assert.IsNotNull(actual);
+ Assert.IsEmpty(actual);
}
- [Fact]
+ [TestMethod]
public void TestGetChangedGlobs_AllChanged_With_DifferentBaseDir()
{
var patterns = new string[] { "*md", "*.m", "abc", "/[]\\*.cs", "*/*.cs", "**" };
@@ -71,11 +71,11 @@ public void TestGetChangedGlobs_AllChanged_With_DifferentBaseDir()
});
var actualResults = FileMetadataHelper.GetChangedGlobs(left, right).ToList();
- Assert.NotNull(actualResults);
- Assert.Empty(actualResults);
+ Assert.IsNotNull(actualResults);
+ Assert.IsEmpty(actualResults);
}
- [Fact]
+ [TestMethod]
public void TestGetChangedGlobs_AllChanged_With_DifferentPattern()
{
var baseDir = "inputFolder";
@@ -106,16 +106,16 @@ public void TestGetChangedGlobs_AllChanged_With_DifferentPattern()
});
var actualResults = FileMetadataHelper.GetChangedGlobs(left, right).ToList();
- Assert.NotNull(actualResults);
- Assert.Equal(12, actualResults.Count);
+ Assert.IsNotNull(actualResults);
+ Assert.AreEqual(12, actualResults.Count);
var patterns = patternsA.Concat(patternsB).ToList();
for (var index = 0; index < patterns.Count; index++)
{
- Assert.Equal(patterns[index], actualResults[index].Raw);
+ Assert.AreEqual(patterns[index], actualResults[index].Raw);
}
}
- [Fact]
+ [TestMethod]
public void TestGetChangedGlobs_CrossGlobsChanged()
{
var baseDir = "inputFolder";
@@ -143,13 +143,13 @@ public void TestGetChangedGlobs_CrossGlobsChanged()
});
var actualResults = FileMetadataHelper.GetChangedGlobs(left, right).ToList();
- Assert.NotNull(actualResults);
- Assert.Equal(2, actualResults.Count);
- Assert.Equal(patterns[0], actualResults[0].Raw);
- Assert.Equal(patterns[2], actualResults[1].Raw);
+ Assert.IsNotNull(actualResults);
+ Assert.AreEqual(2, actualResults.Count);
+ Assert.AreEqual(patterns[0], actualResults[0].Raw);
+ Assert.AreEqual(patterns[2], actualResults[1].Raw);
}
- [Fact]
+ [TestMethod]
public void TestGetChangedGlobs_ReduceGlobsChanged()
{
var baseDir = "inputFolder";
@@ -171,12 +171,12 @@ public void TestGetChangedGlobs_ReduceGlobsChanged()
});
var actualResults = FileMetadataHelper.GetChangedGlobs(left, right).ToList();
- Assert.NotNull(actualResults);
- Assert.Single(actualResults);
- Assert.Equal(patterns[1], actualResults[0].Raw);
+ Assert.IsNotNull(actualResults);
+ Assert.ContainsSingle(actualResults);
+ Assert.AreEqual(patterns[1], actualResults[0].Raw);
}
- [Fact]
+ [TestMethod]
public void TestGetChangedGlobs_IncreaseGlobsChanged()
{
var baseDir = "inputFolder";
@@ -205,12 +205,12 @@ public void TestGetChangedGlobs_IncreaseGlobsChanged()
});
var actualResults = FileMetadataHelper.GetChangedGlobs(left, right).ToList();
- Assert.NotNull(actualResults);
- Assert.Single(actualResults);
- Assert.Equal(patterns[2], actualResults[0].Raw);
+ Assert.IsNotNull(actualResults);
+ Assert.ContainsSingle(actualResults);
+ Assert.AreEqual(patterns[2], actualResults[0].Raw);
}
- [Fact]
+ [TestMethod]
public void TestGetChangedGlobs_Changed()
{
var baseDir = "inputFolder";
@@ -240,14 +240,14 @@ public void TestGetChangedGlobs_Changed()
});
var actualResults = FileMetadataHelper.GetChangedGlobs(left, right).ToList();
- Assert.NotNull(actualResults);
- Assert.Equal(3, actualResults.Count);
- Assert.Equal(patterns[5], actualResults[0].Raw);
- Assert.Equal(patterns[2], actualResults[1].Raw);
- Assert.Equal(patterns[4], actualResults[2].Raw);
+ Assert.IsNotNull(actualResults);
+ Assert.AreEqual(3, actualResults.Count);
+ Assert.AreEqual(patterns[5], actualResults[0].Raw);
+ Assert.AreEqual(patterns[2], actualResults[1].Raw);
+ Assert.AreEqual(patterns[4], actualResults[2].Raw);
}
- [Fact]
+ [TestMethod]
public void TestGetChangedGlobs_Changed_Reverse()
{
var baseDir = "inputFolder";
@@ -271,8 +271,8 @@ public void TestGetChangedGlobs_Changed_Reverse()
});
var actualResults = FileMetadataHelper.GetChangedGlobs(left, right).ToList();
- Assert.NotNull(actualResults);
- Assert.Single(actualResults);
- Assert.Equal(patterns[1], actualResults[0].Raw);
+ Assert.IsNotNull(actualResults);
+ Assert.ContainsSingle(actualResults);
+ Assert.AreEqual(patterns[1], actualResults[0].Raw);
}
}
diff --git a/test/Docfx.Build.Tests/HtmlTemplateTest.cs b/test/Docfx.Build.Tests/HtmlTemplateTest.cs
index 83b2709b393..6050f76f834 100644
--- a/test/Docfx.Build.Tests/HtmlTemplateTest.cs
+++ b/test/Docfx.Build.Tests/HtmlTemplateTest.cs
@@ -1,33 +1,32 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Xunit;
-
using static Docfx.Build.HtmlTemplate;
namespace Docfx.Build.Engine.Tests;
+[TestClass]
public class HtmlTemplateTest
{
- [Fact]
+ [TestMethod]
public void HtmlTemplate_HtmlTest()
{
- Assert.Equal("ab", Html($"a{null}b").ToString());
- Assert.Equal("a1b", Html($"a{1}b").ToString());
- Assert.Equal("a<br/>b", Html($"a{" "}b").ToString());
- Assert.Equal("a b", Html($"a{UnsafeHtml(" ")}b").ToString());
- Assert.Equal("a2
b", Html($"a{Html($"{2}
")}b").ToString());
- Assert.Equal("", Html($"{new[] { 0, 1 }.Select(i => Html($"{i} "))} ").ToString());
+ Assert.AreEqual("ab", Html($"a{null}b").ToString());
+ Assert.AreEqual("a1b", Html($"a{1}b").ToString());
+ Assert.AreEqual("a<br/>b", Html($"a{" "}b").ToString());
+ Assert.AreEqual("a b", Html($"a{UnsafeHtml(" ")}b").ToString());
+ Assert.AreEqual("a2
b", Html($"a{Html($"{2}
")}b").ToString());
+ Assert.AreEqual("", Html($"{new[] { 0, 1 }.Select(i => Html($"{i} "))} ").ToString());
}
- [Fact]
+ [TestMethod]
public void HtmlTemplate_HtmlAttributesTest()
{
- Assert.Equal(" ", Html($" ").ToString());
- Assert.Equal(" ", Html($" ").ToString());
- Assert.Equal(" ", Html($" ").ToString());
- Assert.Equal(" ", Html($" ").ToString());
- Assert.Equal(" ", Html($" ").ToString());
- Assert.Equal(" ", Html($" ").ToString());
+ Assert.AreEqual(" ", Html($" ").ToString());
+ Assert.AreEqual(" ", Html($" ").ToString());
+ Assert.AreEqual(" ", Html($" ").ToString());
+ Assert.AreEqual(" ", Html($" ").ToString());
+ Assert.AreEqual(" ", Html($" ").ToString());
+ Assert.AreEqual(" ", Html($" ").ToString());
}
}
diff --git a/test/Docfx.Build.Tests/JintProcessorHelperTest.cs b/test/Docfx.Build.Tests/JintProcessorHelperTest.cs
index ff772e00a34..112281ec003 100644
--- a/test/Docfx.Build.Tests/JintProcessorHelperTest.cs
+++ b/test/Docfx.Build.Tests/JintProcessorHelperTest.cs
@@ -3,45 +3,45 @@
using Docfx.Common;
using Jint;
-using Xunit;
namespace Docfx.Build.Engine.Tests;
+[TestClass]
public class JintProcessorHelperTest
{
- [Trait("Related", "JintProcessor")]
- [Fact]
+ [TestProperty("Related", "JintProcessor")]
+ [TestMethod]
public void TestJObjectConvertWithJToken()
{
var testData = ConvertToObjectHelper.ConvertStrongTypeToObject(new TestData());
{
var engine = new Jint.Engine();
var jsValue = JintProcessorHelper.ConvertObjectToJsValue(engine, testData);
- Assert.True(jsValue.IsObject());
+ Assert.IsTrue(jsValue.IsObject());
dynamic value = jsValue.ToObject();
- Assert.Equal(2, value.ValueA);
- Assert.Equal("ValueB", value.ValueB);
+ Assert.AreEqual(2, value.ValueA);
+ Assert.AreEqual("ValueB", value.ValueB);
System.Dynamic.ExpandoObject valueDict = value.ValueDict;
var dict = (IDictionary)valueDict;
- Assert.Equal("Value1", dict["1"]);
- Assert.Equal(2.0, dict["key"]);
+ Assert.AreEqual("Value1", dict["1"]);
+ Assert.AreEqual(2.0, dict["key"]);
object[] array = value.ValueList;
- Assert.Equal("ValueA", array[0]);
- Assert.Equal("ValueB", array[1]);
+ Assert.AreEqual("ValueA", array[0]);
+ Assert.AreEqual("ValueB", array[1]);
}
}
- [Trait("Related", "JintProcessor")]
- [Theory]
- [InlineData("string", "string")]
- [InlineData(1, 1.0)]
- [InlineData(true, true)]
- [InlineData('a', "a")]
+ [TestProperty("Related", "JintProcessor")]
+ [TestMethod]
+ [DataRow("string", "string")]
+ [DataRow(1, 1.0)]
+ [DataRow(true, true)]
+ [DataRow('a', "a")]
public void TestJObjectConvertWithPrimaryType(object input, object expected)
{
var engine = new Jint.Engine();
var jsValue = JintProcessorHelper.ConvertObjectToJsValue(engine, input);
- Assert.Equal(expected, jsValue.ToObject());
+ Assert.AreEqual(expected, jsValue.ToObject());
}
private sealed class TestData
diff --git a/test/Docfx.Build.Tests/MarkdownTocReaderTest.cs b/test/Docfx.Build.Tests/MarkdownTocReaderTest.cs
index d59fa4cae26..f5ab0126811 100644
--- a/test/Docfx.Build.Tests/MarkdownTocReaderTest.cs
+++ b/test/Docfx.Build.Tests/MarkdownTocReaderTest.cs
@@ -2,13 +2,13 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Docfx.Plugins;
-using Xunit;
namespace Docfx.Build.TableOfContents.Tests;
+[TestClass]
public class MarkdownTocReaderTest
{
- [Fact]
+ [TestMethod]
public void TestTocMdReader()
{
var toc = MarkdownTocReader.LoadToc(@"
@@ -29,63 +29,63 @@ public void TestTocMdReader()
##
## [Article8](xref:article8)
", "test.md");
- Assert.Equal(3, toc.Count);
- Assert.Equal("Article1", toc[0].Name);
- Assert.Equal("article1.md", toc[0].Href);
+ Assert.AreEqual(3, toc.Count);
+ Assert.AreEqual("Article1", toc[0].Name);
+ Assert.AreEqual("article1.md", toc[0].Href);
{
var toc0 = toc[0].Items;
- Assert.Equal(3, toc0.Count);
- Assert.Equal("Container1", toc0[0].Name);
- Assert.Null(toc0[0].Href);
+ Assert.AreEqual(3, toc0.Count);
+ Assert.AreEqual("Container1", toc0[0].Name);
+ Assert.IsNull(toc0[0].Href);
{
var toc0_0 = toc0[0].Items;
- Assert.Equal(2, toc0_0.Count);
- Assert.Equal("Article2", toc0_0[0].Name);
- Assert.Equal("Article 2", toc0_0[0].DisplayName);
- Assert.Equal("article2.md", toc0_0[0].Href);
- Assert.Equal("Article3", toc0_0[1].Name);
- Assert.Equal("article3.md", toc0_0[1].Href);
+ Assert.AreEqual(2, toc0_0.Count);
+ Assert.AreEqual("Article2", toc0_0[0].Name);
+ Assert.AreEqual("Article 2", toc0_0[0].DisplayName);
+ Assert.AreEqual("article2.md", toc0_0[0].Href);
+ Assert.AreEqual("Article3", toc0_0[1].Name);
+ Assert.AreEqual("article3.md", toc0_0[1].Href);
}
- Assert.Equal("Container2", toc0[1].Name);
- Assert.Null(toc0[1].Href);
+ Assert.AreEqual("Container2", toc0[1].Name);
+ Assert.IsNull(toc0[1].Href);
{
var toc0_1 = toc0[1].Items;
- Assert.Single(toc0_1);
- Assert.Equal("Article4", toc0_1[0].Name);
- Assert.Equal("article4.md", toc0_1[0].Href);
+ Assert.ContainsSingle(toc0_1);
+ Assert.AreEqual("Article4", toc0_1[0].Name);
+ Assert.AreEqual("article4.md", toc0_1[0].Href);
{
var toc0_1_0 = toc0_1[0].Items;
- Assert.Single(toc0_1_0);
- Assert.Equal("Article5", toc0_1_0[0].Name);
- Assert.Equal("article5.md", toc0_1_0[0].Href);
+ Assert.ContainsSingle(toc0_1_0);
+ Assert.AreEqual("Article5", toc0_1_0[0].Name);
+ Assert.AreEqual("article5.md", toc0_1_0[0].Href);
}
}
- Assert.Equal("Article6", toc0[2].Name);
- Assert.Equal("article6.md", toc0[2].Href);
+ Assert.AreEqual("Article6", toc0[2].Name);
+ Assert.AreEqual("article6.md", toc0[2].Href);
}
- Assert.Equal("Article7", toc[1].Name);
- Assert.Equal("article7.md", toc[1].Href);
+ Assert.AreEqual("Article7", toc[1].Name);
+ Assert.AreEqual("article7.md", toc[1].Href);
{
var toc1 = toc[1].Items;
- Assert.Single(toc1);
- Assert.Equal("External", toc1[0].Name);
- Assert.Equal("http://www.microsoft.com", toc1[0].Href);
+ Assert.ContainsSingle(toc1);
+ Assert.AreEqual("External", toc1[0].Name);
+ Assert.AreEqual("http://www.microsoft.com", toc1[0].Href);
}
- Assert.Equal("XrefArticles", toc[2].Name);
- Assert.Equal("xref", toc[2].Uid);
+ Assert.AreEqual("XrefArticles", toc[2].Name);
+ Assert.AreEqual("xref", toc[2].Uid);
{
var toc1 = toc[2].Items;
- Assert.Equal(3, toc1.Count);
- Assert.Null(toc1[0].Name);
- Assert.Equal("article8", toc1[0].Uid);
- Assert.Null(toc1[1].Name);
- Assert.Equal("article8", toc1[1].Uid);
- Assert.Equal("Article8", toc1[2].Name);
- Assert.Equal("article8", toc1[2].Uid);
+ Assert.AreEqual(3, toc1.Count);
+ Assert.IsNull(toc1[0].Name);
+ Assert.AreEqual("article8", toc1[0].Uid);
+ Assert.IsNull(toc1[1].Name);
+ Assert.AreEqual("article8", toc1[1].Uid);
+ Assert.AreEqual("Article8", toc1[2].Name);
+ Assert.AreEqual("article8", toc1[2].Uid);
}
}
- [Fact]
+ [TestMethod]
public void TestBadMdToc()
{
var ex = Assert.Throws(() =>
@@ -96,9 +96,9 @@ public void TestBadMdToc()
>_<
>_<
", "test.md"));
- Assert.Equal(@"Invalid toc file: test.md, Details: Unknown syntax at line 3:
+ Assert.AreEqual(@"Invalid toc file: test.md, Details: Unknown syntax at line 3:
[bad]()
>_<
->_<", ex.Message, ignoreLineEndingDifferences: true);
+>_<".ReplaceLineEndings(), ex.Message.ReplaceLineEndings());
}
}
diff --git a/test/Docfx.Build.Tests/PostProcessors/SitemapGeneratorTests.cs b/test/Docfx.Build.Tests/PostProcessors/SitemapGeneratorTests.cs
index 68860158bfb..a20a7e0cdde 100644
--- a/test/Docfx.Build.Tests/PostProcessors/SitemapGeneratorTests.cs
+++ b/test/Docfx.Build.Tests/PostProcessors/SitemapGeneratorTests.cs
@@ -4,12 +4,12 @@
using System.Xml.Linq;
using Docfx.Plugins;
using Docfx.Tests.Common;
-using Xunit;
using DocumentType = Docfx.DataContracts.Common.Constants.DocumentType;
namespace Docfx.Build.Engine.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class SitemapGeneratorTests : TestBase
{
public override void Dispose()
@@ -17,7 +17,7 @@ public override void Dispose()
base.Dispose();
}
- [Fact]
+ [TestMethod]
public void TestSitemapGenerator()
{
// Arrange
@@ -53,19 +53,19 @@ public void TestSitemapGenerator()
manifest = sitemapGenerator.Process(manifest, outputFolder);
// Assert
- Assert.Equal("https://example.com/", manifest.Sitemap.BaseUrl);
- Assert.True(File.Exists(sitemapPath));
+ Assert.AreEqual("https://example.com/", manifest.Sitemap.BaseUrl);
+ Assert.IsTrue(File.Exists(sitemapPath));
var sitemap = XDocument.Load(sitemapPath);
var ns = sitemap.Root.Name.Namespace;
var urls = sitemap.Root.Elements(ns + "url").ToArray();
- Assert.Equal(4, urls.Length);
+ Assert.AreEqual(4, urls.Length);
// URLs are ordered based on HTML output's RelativePath.
- Assert.EndsWith("/Conceptual.html", urls[0].Element(ns + "loc").Value);
- Assert.EndsWith("/Dashboard.html", urls[1].Element(ns + "loc").Value);
- Assert.EndsWith("/ManagedReference.html", urls[2].Element(ns + "loc").Value);
- Assert.EndsWith("/Resource.html", urls[3].Element(ns + "loc").Value);
+ StringAssert.EndsWith(urls[0].Element(ns + "loc").Value, "/Conceptual.html");
+ StringAssert.EndsWith(urls[1].Element(ns + "loc").Value, "/Dashboard.html");
+ StringAssert.EndsWith(urls[2].Element(ns + "loc").Value, "/ManagedReference.html");
+ StringAssert.EndsWith(urls[3].Element(ns + "loc").Value, "/Resource.html");
}
private static ManifestItem GetManifestItem(string documentType, string outputFileExtension = ".html")
diff --git a/test/Docfx.Build.Tests/RemoveDebugInfoTest.cs b/test/Docfx.Build.Tests/RemoveDebugInfoTest.cs
index 588155d564b..d670105c6db 100644
--- a/test/Docfx.Build.Tests/RemoveDebugInfoTest.cs
+++ b/test/Docfx.Build.Tests/RemoveDebugInfoTest.cs
@@ -4,11 +4,10 @@
using Docfx.Plugins;
using Docfx.Tests.Common;
-using Xunit;
-
namespace Docfx.Build.Engine.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class RemoveDebugInfoTest : TestBase
{
private readonly string _outputFolder;
@@ -26,7 +25,7 @@ public override void Dispose()
base.Dispose();
}
- [Fact]
+ [TestMethod]
public void TestBasicFeature()
{
Manifest manifest = new()
@@ -46,6 +45,6 @@ public void TestBasicFeature()
}.Process(manifest, _outputFolder);
var actual = File.ReadAllText(Path.Combine(_outputFolder, "a.html"));
- Assert.Equal("sectionMicrosoft Bing
", actual);
+ Assert.AreEqual("sectionMicrosoft Bing
", actual);
}
}
diff --git a/test/Docfx.Build.Tests/TemplateManagerUnitTest.DotnetToolMode.cs b/test/Docfx.Build.Tests/TemplateManagerUnitTest.DotnetToolMode.cs
index 838bff1a889..5cc2afb7c91 100644
--- a/test/Docfx.Build.Tests/TemplateManagerUnitTest.DotnetToolMode.cs
+++ b/test/Docfx.Build.Tests/TemplateManagerUnitTest.DotnetToolMode.cs
@@ -4,7 +4,6 @@
using Docfx.Common;
using Docfx.Tests.Common;
using FluentAssertions;
-using Xunit;
using Switches = Docfx.DataContracts.Common.Constants.Switches;
namespace Docfx.Build.Engine.Tests;
@@ -17,8 +16,8 @@ public partial class TemplateManagerUnitTest
///
/// DotnetToolsMode switch is not set or disabled. (it depends on test execution order)
///
- [Trait("Related", "TemplateProcessor")]
- [Fact]
+ [TestProperty("Related", "TemplateProcessor")]
+ [TestMethod]
public void TestDotnetToolsMode_Default()
{
// Arrange
@@ -35,8 +34,8 @@ public void TestDotnetToolsMode_Default()
///
/// DotnetToolsMode switch is enabled
///
- [Trait("Related", "TemplateProcessor")]
- [Fact]
+ [TestProperty("Related", "TemplateProcessor")]
+ [TestMethod]
public void TestDotnetToolsMode_Enabled()
{
// Arrange
@@ -71,8 +70,8 @@ public void TestDotnetToolsMode_Enabled()
///
/// DotnetToolMode is enabled but path is invalid.
///
- [Trait("Related", "TemplateProcessor")]
- [Fact]
+ [TestProperty("Related", "TemplateProcessor")]
+ [TestMethod]
public void TestDotnetToolsMode_InvalidPath()
{
// Arrange
diff --git a/test/Docfx.Build.Tests/TemplateManagerUnitTest.cs b/test/Docfx.Build.Tests/TemplateManagerUnitTest.cs
index 22c766f0612..dc42b97b573 100644
--- a/test/Docfx.Build.Tests/TemplateManagerUnitTest.cs
+++ b/test/Docfx.Build.Tests/TemplateManagerUnitTest.cs
@@ -4,11 +4,10 @@
using Docfx.Plugins;
using Docfx.Tests.Common;
-using Xunit;
-
namespace Docfx.Build.Engine.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public partial class TemplateManagerUnitTest : TestBase
{
private readonly string _inputFolder;
@@ -20,8 +19,8 @@ public TemplateManagerUnitTest()
_outputFolder = GetRandomFolder();
}
- [Trait("Related", "ResourceFinder")]
- [Fact]
+ [TestProperty("Related", "ResourceFinder")]
+ [TestMethod]
public void TestTemplateManagerWithMultipleThemesShouldWork()
{
// If the same resource name exists in the override folder, use the overridden one
@@ -31,20 +30,20 @@ public void TestTemplateManagerWithMultipleThemesShouldWork()
manager.ProcessTheme(outputFolder, true);
// 1. Support tmpl1.zip
var file1 = Path.Combine(outputFolder, "tmpl1.dot.$");
- Assert.True(File.Exists(file1));
- Assert.Equal("Override: This is file with complex filename characters", File.ReadAllText(file1));
+ Assert.IsTrue(File.Exists(file1));
+ Assert.AreEqual("Override: This is file with complex filename characters", File.ReadAllText(file1));
// backslash is also supported
var file2 = Path.Combine(outputFolder, "sub/file1");
- Assert.True(File.Exists(file2));
- Assert.Equal("Override: This is file inside a subfolder", File.ReadAllText(file2));
+ Assert.IsTrue(File.Exists(file2));
+ Assert.AreEqual("Override: This is file inside a subfolder", File.ReadAllText(file2));
}
#region Mustache template processor test
- [Trait("Related", "TemplateProcessor")]
- [Trait("Related", "Mustache")]
- [Fact]
+ [TestProperty("Related", "TemplateProcessor")]
+ [TestProperty("Related", "Mustache")]
+ [TestMethod]
public void TestMustacheTemplateProcessSingleTemplateWithNoScriptShouldWork()
{
// 1. Prepare template
@@ -75,7 +74,7 @@ public void TestMustacheTemplateProcessSingleTemplateWithNoScriptShouldWork()
ProcessTemplate(templateName, null, new[] { item }, model, _outputFolder, Tuple.Create("default.tmpl", template));
var outputFile = Path.Combine(_outputFolder, Path.ChangeExtension(modelFileName, null));
- Assert.True(File.Exists(outputFile));
+ Assert.IsTrue(File.Exists(outputFile));
AssertEqualIgnoreCrlf(@"
name1=test1,
name2=;
@@ -84,9 +83,9 @@ public void TestMustacheTemplateProcessSingleTemplateWithNoScriptShouldWork()
", File.ReadAllText(outputFile));
}
- [Trait("Related", "TemplateProcessor")]
- [Trait("Related", "Mustache")]
- [Fact]
+ [TestProperty("Related", "TemplateProcessor")]
+ [TestProperty("Related", "Mustache")]
+ [TestMethod]
public void TestMustacheTemplateProcessSingleTemplateWithNoScriptWithPartialShouldWork()
{
// 1. Prepare template
@@ -132,7 +131,7 @@ public void TestMustacheTemplateProcessSingleTemplateWithNoScriptWithPartialShou
Tuple.Create("partial2.tmpl.partial", partial2));
var outputFile = Path.Combine(_outputFolder, Path.ChangeExtension(modelFileName, null));
- Assert.True(File.Exists(outputFile));
+ Assert.IsTrue(File.Exists(outputFile));
AssertEqualIgnoreCrlf(@"
test1
test2
@@ -143,9 +142,9 @@ public void TestMustacheTemplateProcessSingleTemplateWithNoScriptWithPartialShou
", File.ReadAllText(outputFile));
}
- [Trait("Related", "TemplateProcessor")]
- [Trait("Related", "Mustache")]
- [Fact]
+ [TestProperty("Related", "TemplateProcessor")]
+ [TestProperty("Related", "Mustache")]
+ [TestMethod]
public void TestMustacheTemplateWithMasterPageShouldWork()
{
// 1. Prepare template
@@ -204,8 +203,8 @@ Hello Body
Tuple.Create("partial2.tmpl.partial", partial2));
var outputFile = Path.Combine(_outputFolder, Path.ChangeExtension(modelFileName, null));
- Assert.True(File.Exists(Path.Combine(_outputFolder, "reference1.html")));
- Assert.True(File.Exists(outputFile));
+ Assert.IsTrue(File.Exists(Path.Combine(_outputFolder, "reference1.html")));
+ Assert.IsTrue(File.Exists(outputFile));
AssertEqualIgnoreCrlf(@"
Hello Master
@@ -226,9 +225,9 @@ Hello Body
", File.ReadAllText(outputFile));
}
- [Trait("Related", "TemplateProcessor")]
- [Trait("Related", "Mustache")]
- [Fact]
+ [TestProperty("Related", "TemplateProcessor")]
+ [TestProperty("Related", "Mustache")]
+ [TestMethod]
public void TestMustacheTemplateProcessInvalidTemplateShouldFail()
{
var templateName = "InvalidTemplate.html";
@@ -249,9 +248,9 @@ public void TestMustacheTemplateProcessInvalidTemplateShouldFail()
);
}
- [Trait("Related", "TemplateProcessor")]
- [Trait("Related", "Mustache")]
- [Fact]
+ [TestProperty("Related", "TemplateProcessor")]
+ [TestProperty("Related", "Mustache")]
+ [TestMethod]
public void TestMustacheTemplateProcessSingleTemplateWithIncludesShouldWork()
{
var templateName = "WithIncludes.html";
@@ -293,17 +292,17 @@ public void TestMustacheTemplateProcessSingleTemplateWithIncludesShouldWork()
Tuple.Create("reference2.html", string.Empty)
);
var outputFilePath = Path.Combine(_outputFolder, Path.ChangeExtension(modelFileName, "html"));
- Assert.True(File.Exists(outputFilePath));
- Assert.True(File.Exists(Path.Combine(_outputFolder, "reference1.html")));
- Assert.True(File.Exists(Path.Combine(_outputFolder, "reference2.html")));
+ Assert.IsTrue(File.Exists(outputFilePath));
+ Assert.IsTrue(File.Exists(Path.Combine(_outputFolder, "reference1.html")));
+ Assert.IsTrue(File.Exists(Path.Combine(_outputFolder, "reference2.html")));
AssertEqualIgnoreCrlf(@"
test1
test2
", File.ReadAllText(outputFilePath));
}
- [Trait("Related", "TemplateProcessor")]
- [Fact]
+ [TestProperty("Related", "TemplateProcessor")]
+ [TestMethod]
public void TestMustacheTemplateProcessSingleTemplateWithRequireScriptShouldWork()
{
var templateName = "WithRequireScript.html";
@@ -353,7 +352,7 @@ function isAbsolutePath(path) {
Tuple.Create("util.js", utilScript)
);
var outputFilePath = Path.Combine(_outputFolder, Path.ChangeExtension(modelFileName, "html"));
- Assert.True(File.Exists(outputFilePath));
+ Assert.IsTrue(File.Exists(outputFilePath));
AssertEqualIgnoreCrlf(@"
result1 = true
result2 = true
@@ -361,9 +360,9 @@ function isAbsolutePath(path) {
", File.ReadAllText(outputFilePath));
}
- [Trait("Related", "TemplateProcessor")]
- [Trait("Related", "Mustache")]
- [Fact]
+ [TestProperty("Related", "TemplateProcessor")]
+ [TestProperty("Related", "Mustache")]
+ [TestMethod]
public void TestMustacheTemplateProcessTemplateFolderWithDifferentTypeShouldWork()
{
var templateName = "TemplateFolder.html";
@@ -415,14 +414,14 @@ public void TestMustacheTemplateProcessTemplateFolderWithDifferentTypeShouldWork
Tuple.Create("conceptual.md.js", script)
);
var outputFilePath1 = Path.Combine(_outputFolder, "TestTemplateProcessor_TemplateFolderWithDifferentType1.md");
- Assert.True(File.Exists(outputFilePath1));
+ Assert.IsTrue(File.Exists(outputFilePath1));
AssertEqualIgnoreCrlf(@"
conceptual:
test1
test2
", File.ReadAllText(outputFilePath1));
var outputFilePath2 = Path.Combine(_outputFolder, "TestTemplateProcessor_TemplateFolderWithDifferentType2.html");
- Assert.True(File.Exists(outputFilePath2));
+ Assert.IsTrue(File.Exists(outputFilePath2));
AssertEqualIgnoreCrlf(@"
default:
test1
@@ -430,9 +429,9 @@ public void TestMustacheTemplateProcessTemplateFolderWithDifferentTypeShouldWork
", File.ReadAllText(outputFilePath2));
}
- [Trait("Related", "TemplateProcessor")]
- [Trait("Related", "Mustache")]
- [Fact]
+ [TestProperty("Related", "TemplateProcessor")]
+ [TestProperty("Related", "Mustache")]
+ [TestMethod]
public void TestMustacheTemplateWithScriptWithLongStringInModelShouldWork()
{
// https://github.com/sebastienros/jint/issues/357
@@ -469,11 +468,11 @@ public void TestMustacheTemplateWithScriptWithLongStringInModelShouldWork()
Tuple.Create("default.html.js", script)
);
var outputFilePath1 = Path.Combine(_outputFolder, "TestMustacheTemplateWithScriptWithLongStringInModelShouldWork.html");
- Assert.True(File.Exists(outputFilePath1));
- Assert.Equal($"{{"model":{{"name":"{longName}"}},"__global":{{}}}}", File.ReadAllText(outputFilePath1));
+ Assert.IsTrue(File.Exists(outputFilePath1));
+ Assert.AreEqual($"{{"model":{{"name":"{longName}"}},"__global":{{}}}}", File.ReadAllText(outputFilePath1));
}
- [Fact]
+ [TestMethod]
public void JsRegexShouldNotShareStatusAmongFunctions()
{
// https://github.com/sebastienros/jint/issues/364
@@ -509,11 +508,11 @@ function isAbsolutePath(path) {
Tuple.Create("default.html.js", script)
);
var outputFilePath1 = Path.Combine(_outputFolder, "file.html");
- Assert.True(File.Exists(outputFilePath1));
- Assert.Equal("True,True", File.ReadAllText(outputFilePath1));
+ Assert.IsTrue(File.Exists(outputFilePath1));
+ Assert.AreEqual("True,True", File.ReadAllText(outputFilePath1));
}
- [Fact]
+ [TestMethod]
public void JsCreateDateShouldNotThrowError()
{
var templateName = "TemplateFolder.html";
@@ -538,8 +537,8 @@ public void JsCreateDateShouldNotThrowError()
Tuple.Create("default.html.js", script)
);
var outputFilePath1 = Path.Combine(_outputFolder, "file.html");
- Assert.True(File.Exists(outputFilePath1));
- Assert.Equal("2019-08-19T05:40:30.463Z", File.ReadAllText(outputFilePath1));
+ Assert.IsTrue(File.Exists(outputFilePath1));
+ Assert.AreEqual("2019-08-19T05:40:30.463Z", File.ReadAllText(outputFilePath1));
}
#endregion
@@ -592,6 +591,6 @@ private static void WriteTemplate(string cwd, params Tuple[] fil
private static void AssertEqualIgnoreCrlf(string expected, string actual)
{
- Assert.Equal(expected.Replace("\r\n", "\n"), actual.Replace("\r\n", "\n"));
+ Assert.AreEqual(expected.Replace("\r\n", "\n"), actual.Replace("\r\n", "\n"));
}
}
diff --git a/test/Docfx.Build.Tests/TemplatePageLoaderUnitTest.cs b/test/Docfx.Build.Tests/TemplatePageLoaderUnitTest.cs
index c85c2c72929..9e1978d65d1 100644
--- a/test/Docfx.Build.Tests/TemplatePageLoaderUnitTest.cs
+++ b/test/Docfx.Build.Tests/TemplatePageLoaderUnitTest.cs
@@ -3,11 +3,10 @@
using Docfx.Tests.Common;
-using Xunit;
-
namespace Docfx.Build.Engine.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class TemplatePageLoaderUnitTest : TestBase
{
private readonly string _inputFolder;
@@ -17,32 +16,32 @@ public TemplatePageLoaderUnitTest()
_inputFolder = GetRandomFolder();
}
- [Fact]
+ [TestMethod]
public void TestLoaderWhenNoFileExists()
{
using var listener = new TestListenerScope();
var templates = LoadAllTemplates();
- Assert.Empty(listener.Items);
- Assert.Empty(templates);
+ Assert.IsEmpty(listener.Items);
+ Assert.IsEmpty(templates);
CreateFile("a.js", string.Empty, _inputFolder);
templates = LoadAllTemplates();
- Assert.Empty(listener.Items);
- Assert.Empty(templates);
+ Assert.IsEmpty(listener.Items);
+ Assert.IsEmpty(templates);
// only allows file under root folder
CreateFile("sub/a.tmpl", string.Empty, _inputFolder);
templates = LoadAllTemplates();
- Assert.Empty(listener.Items);
- Assert.Empty(templates);
+ Assert.IsEmpty(listener.Items);
+ Assert.IsEmpty(templates);
CreateFile("a.tmpl.js", string.Empty, _inputFolder);
templates = LoadAllTemplates();
- Assert.Empty(listener.Items);
- Assert.Empty(templates);
+ Assert.IsEmpty(listener.Items);
+ Assert.IsEmpty(templates);
}
- [Fact]
+ [TestMethod]
public void TestLoaderWhenRendererExists()
{
CreateFile("a.tmpl", string.Empty, _inputFolder);
@@ -50,21 +49,21 @@ public void TestLoaderWhenRendererExists()
using var listener = new TestListenerScope();
var templates = LoadAllTemplates();
- Assert.Empty(listener.Items);
+ Assert.IsEmpty(listener.Items);
- Assert.Single(templates);
+ Assert.ContainsSingle(templates);
var template = templates[0];
- Assert.NotNull(template.Renderer);
- Assert.Equal(TemplateType.Default, template.TemplateType);
- Assert.Equal("a", template.Name);
- Assert.Equal("a", template.Type);
- Assert.Equal(string.Empty, template.Extension);
- Assert.Null(template.Preprocessor);
- Assert.False(template.ContainsGetOptions);
- Assert.False(template.ContainsModelTransformation);
+ Assert.IsNotNull(template.Renderer);
+ Assert.AreEqual(TemplateType.Default, template.TemplateType);
+ Assert.AreEqual("a", template.Name);
+ Assert.AreEqual("a", template.Type);
+ Assert.AreEqual(string.Empty, template.Extension);
+ Assert.IsNull(template.Preprocessor);
+ Assert.IsFalse(template.ContainsGetOptions);
+ Assert.IsFalse(template.ContainsModelTransformation);
}
- [Fact]
+ [TestMethod]
public void TestLoaderWhenPreprocessorExists()
{
CreateFile("a.primary.tmpl", string.Empty, _inputFolder);
@@ -73,24 +72,24 @@ public void TestLoaderWhenPreprocessorExists()
using var listener = new TestListenerScope();
var templates = LoadAllTemplates();
- Assert.Empty(listener.Items);
+ Assert.IsEmpty(listener.Items);
- Assert.Single(templates);
+ Assert.ContainsSingle(templates);
var template = templates[0];
- Assert.NotNull(template.Renderer);
- Assert.Equal(TemplateType.Primary, template.TemplateType);
- Assert.Equal("a.primary", template.Name);
- Assert.Equal("a", template.Type);
- Assert.Equal(string.Empty, template.Extension);
- Assert.NotNull(template.Preprocessor);
- Assert.False(template.ContainsGetOptions);
- Assert.True(template.ContainsModelTransformation);
+ Assert.IsNotNull(template.Renderer);
+ Assert.AreEqual(TemplateType.Primary, template.TemplateType);
+ Assert.AreEqual("a.primary", template.Name);
+ Assert.AreEqual("a", template.Type);
+ Assert.AreEqual(string.Empty, template.Extension);
+ Assert.IsNotNull(template.Preprocessor);
+ Assert.IsFalse(template.ContainsGetOptions);
+ Assert.IsTrue(template.ContainsModelTransformation);
var output = template.TransformModel(new { a = 1 });
- Assert.Null(output);
+ Assert.IsNull(output);
}
- [Fact]
+ [TestMethod]
public void TestLoaderWhenStandalonePreprocessorExists()
{
CreateFile("a.ext.TMPL.js", "exports.transform = function(){}", _inputFolder);
@@ -98,21 +97,21 @@ public void TestLoaderWhenStandalonePreprocessorExists()
using var listener = new TestListenerScope();
var templates = LoadAllTemplates();
- Assert.Empty(listener.Items);
+ Assert.IsEmpty(listener.Items);
- Assert.Single(templates);
+ Assert.ContainsSingle(templates);
var template = templates[0];
- Assert.Null(template.Renderer);
- Assert.Equal(TemplateType.Default, template.TemplateType);
- Assert.Equal("a.ext", template.Name);
- Assert.Equal("a", template.Type);
- Assert.Equal(".ext", template.Extension);
- Assert.NotNull(template.Preprocessor);
- Assert.False(template.ContainsGetOptions);
- Assert.True(template.ContainsModelTransformation);
+ Assert.IsNull(template.Renderer);
+ Assert.AreEqual(TemplateType.Default, template.TemplateType);
+ Assert.AreEqual("a.ext", template.Name);
+ Assert.AreEqual("a", template.Type);
+ Assert.AreEqual(".ext", template.Extension);
+ Assert.IsNotNull(template.Preprocessor);
+ Assert.IsFalse(template.ContainsGetOptions);
+ Assert.IsTrue(template.ContainsModelTransformation);
var output = template.TransformModel(new { a = 1 });
- Assert.Null(output);
+ Assert.IsNull(output);
}
private List LoadAllTemplates()
diff --git a/test/Docfx.Build.Tests/TemplatePreprocessorLoaderUnitTest.cs b/test/Docfx.Build.Tests/TemplatePreprocessorLoaderUnitTest.cs
index 85b8c806178..2d3bda78e76 100644
--- a/test/Docfx.Build.Tests/TemplatePreprocessorLoaderUnitTest.cs
+++ b/test/Docfx.Build.Tests/TemplatePreprocessorLoaderUnitTest.cs
@@ -3,11 +3,10 @@
using Docfx.Tests.Common;
-using Xunit;
-
namespace Docfx.Build.Engine.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class TemplatePreprocessorLoaderUnitTest : TestBase
{
private readonly string _inputFolder;
@@ -17,21 +16,21 @@ public TemplatePreprocessorLoaderUnitTest()
_inputFolder = GetRandomFolder();
}
- [Fact]
+ [TestMethod]
public void TestLoaderWithValidInput()
{
using var listener = new TestListenerScope();
var preprocessor = Load("a.ext.TMPL.js", "exports.transform = function(model) { return model; }");
- Assert.Empty(listener.Items);
+ Assert.IsEmpty(listener.Items);
- Assert.NotNull(preprocessor);
- Assert.False(preprocessor.ContainsGetOptions);
- Assert.True(preprocessor.ContainsModelTransformation);
+ Assert.IsNotNull(preprocessor);
+ Assert.IsFalse(preprocessor.ContainsGetOptions);
+ Assert.IsTrue(preprocessor.ContainsModelTransformation);
var input = new { a = 1 };
var output = preprocessor.TransformModel(input);
- Assert.Equal(input.a, ((dynamic)output).a);
+ Assert.AreEqual(input.a, ((dynamic)output).a);
}
private ITemplatePreprocessor Load(string path, string content)
diff --git a/test/Docfx.Build.Tests/TemplateProcessorUnitTest.cs b/test/Docfx.Build.Tests/TemplateProcessorUnitTest.cs
index 097a821e3e6..2923d73735e 100644
--- a/test/Docfx.Build.Tests/TemplateProcessorUnitTest.cs
+++ b/test/Docfx.Build.Tests/TemplateProcessorUnitTest.cs
@@ -5,11 +5,10 @@
using Docfx.Plugins;
using Docfx.Tests.Common;
-using Xunit;
-
namespace Docfx.Build.Engine.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class TemplateProcessorUnitTest : TestBase
{
private readonly string _inputFolder;
@@ -23,7 +22,7 @@ public TemplateProcessorUnitTest()
_templateFolder = GetRandomFolder();
}
- [Fact]
+ [TestMethod]
public void TestXrefWithTemplate()
{
CreateFile("partials/xref.html.tmpl", "{{uid}} {{summary}}
{{#isGood}}Good!{{/isGood}}", _templateFolder);
@@ -40,8 +39,8 @@ public void TestXrefWithTemplate()
};
var output = Process("index", "input", new { reference = "reference" }, xref);
- Assert.Equal($"{_outputFolder}/input.html".ToNormalizedFullPath(), output.Output[".html"].RelativePath.ToNormalizedPath());
- Assert.Equal(@"
+ Assert.AreEqual($"{_outputFolder}/input.html".ToNormalizedFullPath(), output.Output[".html"].RelativePath.ToNormalizedPath());
+ Assert.AreEqual(@"
reference hello world
Good!
", File.ReadAllText(Path.Combine(_outputFolder, "input.html")));
diff --git a/test/Docfx.Build.Tests/TemplateRendererLoaderUnitTest.cs b/test/Docfx.Build.Tests/TemplateRendererLoaderUnitTest.cs
index d693de7be5d..3364c0295b8 100644
--- a/test/Docfx.Build.Tests/TemplateRendererLoaderUnitTest.cs
+++ b/test/Docfx.Build.Tests/TemplateRendererLoaderUnitTest.cs
@@ -3,11 +3,10 @@
using Docfx.Tests.Common;
-using Xunit;
-
namespace Docfx.Build.Engine.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class TemplateRendererLoaderUnitTest : TestBase
{
private readonly string _inputFolder;
@@ -17,32 +16,32 @@ public TemplateRendererLoaderUnitTest()
_inputFolder = GetRandomFolder();
}
- [Fact]
+ [TestMethod]
public void TestLoaderWhenNoFileExists()
{
using var listener = new TestListenerScope();
var renderers = LoadAllRenderers();
- Assert.Empty(listener.Items);
- Assert.Empty(renderers);
+ Assert.IsEmpty(listener.Items);
+ Assert.IsEmpty(renderers);
var file1 = CreateFile("a.js", string.Empty, _inputFolder);
renderers = LoadAllRenderers();
- Assert.Empty(listener.Items);
- Assert.Empty(renderers);
+ Assert.IsEmpty(listener.Items);
+ Assert.IsEmpty(renderers);
// only allows file under root folder
var file2 = CreateFile("sub/a.tmpl", string.Empty, _inputFolder);
renderers = LoadAllRenderers();
- Assert.Empty(listener.Items);
- Assert.Empty(renderers);
+ Assert.IsEmpty(listener.Items);
+ Assert.IsEmpty(renderers);
var file3 = CreateFile("a.tmpl.js", string.Empty, _inputFolder);
renderers = LoadAllRenderers();
- Assert.Empty(listener.Items);
- Assert.Empty(renderers);
+ Assert.IsEmpty(listener.Items);
+ Assert.IsEmpty(renderers);
}
- [Fact]
+ [TestMethod]
public void TestLoaderWithValidInput()
{
var file1 = CreateFile("a.tmpl", "{{name}}", _inputFolder);
@@ -50,19 +49,19 @@ public void TestLoaderWithValidInput()
using var listener = new TestListenerScope();
var renderers = LoadAllRenderers();
- Assert.Empty(listener.Items);
+ Assert.IsEmpty(listener.Items);
- Assert.Single(renderers);
+ Assert.ContainsSingle(renderers);
var renderer = renderers[0];
- Assert.NotNull(renderer);
+ Assert.IsNotNull(renderer);
var model = new { name = "model" };
var output = renderer.Render(model);
- Assert.Equal("model", output);
+ Assert.AreEqual("model", output);
}
- [Fact]
+ [TestMethod]
public void TestSingleFileLoaderWithValidInput()
{
var path = "a.tmpl";
@@ -71,14 +70,14 @@ public void TestSingleFileLoaderWithValidInput()
using var listener = new TestListenerScope();
var renderer = Load(path);
- Assert.Empty(listener.Items);
+ Assert.IsEmpty(listener.Items);
- Assert.NotNull(renderer);
+ Assert.IsNotNull(renderer);
var model = new { name = "model" };
var output = renderer.Render(model);
- Assert.Equal("model", output);
+ Assert.AreEqual("model", output);
}
private List LoadAllRenderers()
diff --git a/test/Docfx.Build.Tests/TocDocumentProcessorTest.cs b/test/Docfx.Build.Tests/TocDocumentProcessorTest.cs
index 11d201e646f..bd17575f916 100644
--- a/test/Docfx.Build.Tests/TocDocumentProcessorTest.cs
+++ b/test/Docfx.Build.Tests/TocDocumentProcessorTest.cs
@@ -9,11 +9,11 @@
using Docfx.Plugins;
using Docfx.Tests.Common;
using Newtonsoft.Json.Linq;
-using Xunit;
namespace Docfx.Build.TableOfContents.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class TocDocumentProcessorTest : TestBase
{
private readonly string _outputFolder;
@@ -40,7 +40,7 @@ public override void Dispose()
base.Dispose();
}
- [Fact]
+ [TestMethod]
public void ProcessMarkdownTocWithComplexHrefShouldSucceed()
{
var fileName = "#ctor";
@@ -55,7 +55,7 @@ public void ProcessMarkdownTocWithComplexHrefShouldSucceed()
BuildDocument(files);
var outputRawModelPath = Path.GetFullPath(Path.Combine(_outputFolder, Path.ChangeExtension(toc, RawModelFileExtension)));
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize(outputRawModelPath);
var expectedModel = new TocItemViewModel
{
@@ -73,7 +73,7 @@ public void ProcessMarkdownTocWithComplexHrefShouldSucceed()
AssertTocEqual(expectedModel, model);
}
- [Fact]
+ [TestMethod]
public void ProcessMarkdownTocWithAbsoluteHrefShouldSucceed()
{
var content = @"
@@ -89,7 +89,7 @@ public void ProcessMarkdownTocWithAbsoluteHrefShouldSucceed()
BuildDocument(files);
var outputRawModelPath = Path.GetFullPath(Path.Combine(_outputFolder, Path.ChangeExtension(toc, RawModelFileExtension)));
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize(outputRawModelPath);
var expectedModel = new TocItemViewModel
{
@@ -135,7 +135,7 @@ public void ProcessMarkdownTocWithAbsoluteHrefShouldSucceed()
AssertTocEqual(expectedModel, model);
}
- [Fact]
+ [TestMethod]
public void ProcessMarkdownTocWithRelativeHrefShouldSucceed()
{
var file1 = _fileCreator.CreateFile(string.Empty, FileType.MarkdownContent);
@@ -153,7 +153,7 @@ public void ProcessMarkdownTocWithRelativeHrefShouldSucceed()
files.Add(DocumentType.Article, new[] { file1, file2, toc });
BuildDocument(files);
var outputRawModelPath = Path.GetFullPath(Path.Combine(_outputFolder, Path.ChangeExtension(toc, RawModelFileExtension)));
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize(outputRawModelPath);
var expectedModel = new TocItemViewModel
{
@@ -207,7 +207,7 @@ public void ProcessMarkdownTocWithRelativeHrefShouldSucceed()
AssertTocEqual(expectedModel, model);
}
- [Fact]
+ [TestMethod]
public void ProcessYamlTocWithFolderShouldSucceed()
{
var file1 = _fileCreator.CreateFile(string.Empty, FileType.MarkdownContent);
@@ -233,7 +233,7 @@ public void ProcessYamlTocWithFolderShouldSucceed()
files.Add(DocumentType.Article, new[] { file1, file2, toc, subToc });
BuildDocument(files);
var outputRawModelPath = Path.GetFullPath(Path.Combine(_outputFolder, Path.ChangeExtension(toc, RawModelFileExtension)));
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize(outputRawModelPath);
var expectedModel = new TocItemViewModel
{
@@ -276,7 +276,7 @@ public void ProcessYamlTocWithFolderShouldSucceed()
AssertTocEqual(expectedModel, model);
}
- [Fact]
+ [TestMethod]
public void ProcessYamlTocWithMetadataShouldSucceed()
{
var file1 = _fileCreator.CreateFile(string.Empty, FileType.MarkdownContent);
@@ -295,23 +295,23 @@ public void ProcessYamlTocWithMetadataShouldSucceed()
files.Add(DocumentType.Article, new[] { file1, toc, });
BuildDocument(files);
var outputRawModelPath = Path.GetFullPath(Path.Combine(_outputFolder, Path.ChangeExtension(toc, RawModelFileExtension)));
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize(outputRawModelPath);
if (JsonUtility.IsSystemTextJsonSupported())
{
var meta = (IDictionary)model.Metadata["metadata"];
- Assert.NotNull(meta);
- Assert.Single(meta);
- Assert.Equal("content", meta["meta"]);
+ Assert.IsNotNull(meta);
+ Assert.ContainsSingle(meta);
+ Assert.AreEqual("content", meta["meta"]);
}
else
{
var meta = (JObject)model.Metadata["metadata"];
- Assert.NotNull(meta);
- Assert.Single(meta);
- Assert.Equal("content", meta["meta"]);
+ Assert.IsNotNull(meta);
+ Assert.ContainsSingle>(meta);
+ Assert.AreEqual("content", meta["meta"]);
}
var expectedModel = new TocItemViewModel
@@ -338,7 +338,7 @@ public void ProcessYamlTocWithMetadataShouldSucceed()
AssertTocEqual(expectedModel, model);
}
- [Fact]
+ [TestMethod]
public void ProcessYamlTocWithReferencedTocShouldSucceed()
{
var file1 = _fileCreator.CreateFile(string.Empty, FileType.MarkdownContent);
@@ -381,7 +381,7 @@ public void ProcessYamlTocWithReferencedTocShouldSucceed()
BuildDocument(files);
var outputRawModelPath = Path.GetFullPath(Path.Combine(_outputFolder, Path.ChangeExtension(toc, RawModelFileExtension)));
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize(outputRawModelPath);
var expectedModel = new TocItemViewModel
{
@@ -538,10 +538,10 @@ public void ProcessYamlTocWithReferencedTocShouldSucceed()
// Referenced TOC File should exist
var referencedTocPath = Path.Combine(_outputFolder, Path.ChangeExtension(sub1tocmd, RawModelFileExtension));
- Assert.True(File.Exists(referencedTocPath));
+ Assert.IsTrue(File.Exists(referencedTocPath));
}
- [Fact]
+ [TestMethod]
public void ProcessTocWithCircularReferenceShouldFail()
{
var referencedToc = _fileCreator.CreateFile(@"
@@ -560,10 +560,10 @@ public void ProcessTocWithCircularReferenceShouldFail()
FileCollection files = new(_inputFolder);
files.Add(DocumentType.Article, new[] { toc, subToc });
var e = Assert.Throws(() => BuildDocument(files));
- Assert.Equal($"Circular reference to {StringExtension.ToDisplayPath(Path.GetFullPath(Path.Combine(_inputFolder, subToc)))} is found in {StringExtension.ToDisplayPath(Path.GetFullPath(Path.Combine(_inputFolder, referencedToc)))}", e.Message, true);
+ Assert.AreEqual($"Circular reference to {StringExtension.ToDisplayPath(Path.GetFullPath(Path.Combine(_inputFolder, subToc)))} is found in {StringExtension.ToDisplayPath(Path.GetFullPath(Path.Combine(_inputFolder, referencedToc)))}", e.Message, true);
}
- [Fact]
+ [TestMethod]
public void ProcessMarkdownTocWithNonExistentReferencedTocShouldLogError()
{
var pathToReferencedToc = "non-existent/toc.yml";
@@ -580,14 +580,14 @@ public void ProcessMarkdownTocWithNonExistentReferencedTocShouldLogError()
BuildDocument(files);
Logger.UnregisterListener(listener);
- Assert.Single(listener.Items);
+ Assert.ContainsSingle(listener.Items);
- Assert.Equal(WarningCodes.Build.InvalidTocInclude, listener.Items[0].Code);
- Assert.Equal($"Referenced TOC file {StringExtension.ToDisplayPath(Path.GetFullPath(Path.Combine(_inputFolder, pathToReferencedToc)))} does not exist.", listener.Items[0].Message, true);
- Assert.Equal(LogLevel.Error, listener.Items[0].LogLevel);
+ Assert.AreEqual(WarningCodes.Build.InvalidTocInclude, listener.Items[0].Code);
+ Assert.AreEqual($"Referenced TOC file {StringExtension.ToDisplayPath(Path.GetFullPath(Path.Combine(_inputFolder, pathToReferencedToc)))} does not exist.", listener.Items[0].Message, true);
+ Assert.AreEqual(LogLevel.Error, listener.Items[0].LogLevel);
}
- [Fact]
+ [TestMethod]
public void ProcessYamlTocWithNonExistentReferencedTocShouldLogError()
{
var pathToReferencedToc = "non-existent/TOC.md";
@@ -603,14 +603,14 @@ public void ProcessYamlTocWithNonExistentReferencedTocShouldLogError()
BuildDocument(files);
Logger.UnregisterListener(listener);
- Assert.Single(listener.Items);
+ Assert.ContainsSingle(listener.Items);
- Assert.Equal(WarningCodes.Build.InvalidTocInclude, listener.Items[0].Code);
- Assert.Equal($"Referenced TOC file {StringExtension.ToDisplayPath(Path.GetFullPath(Path.Combine(_inputFolder, pathToReferencedToc)))} does not exist.", listener.Items[0].Message, true);
- Assert.Equal(LogLevel.Error, listener.Items[0].LogLevel);
+ Assert.AreEqual(WarningCodes.Build.InvalidTocInclude, listener.Items[0].Code);
+ Assert.AreEqual($"Referenced TOC file {StringExtension.ToDisplayPath(Path.GetFullPath(Path.Combine(_inputFolder, pathToReferencedToc)))} does not exist.", listener.Items[0].Message, true);
+ Assert.AreEqual(LogLevel.Error, listener.Items[0].LogLevel);
}
- [Fact]
+ [TestMethod]
public void ProcessYamlTocWithTocHrefShouldSucceed()
{
var file1 = _fileCreator.CreateFile(string.Empty, FileType.MarkdownContent);
@@ -640,7 +640,7 @@ public void ProcessYamlTocWithTocHrefShouldSucceed()
BuildDocument(files);
var outputRawModelPath = Path.GetFullPath(Path.Combine(_outputFolder, Path.ChangeExtension(toc, RawModelFileExtension)));
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize(outputRawModelPath);
var expectedModel = new TocItemViewModel
{
@@ -687,7 +687,7 @@ public void ProcessYamlTocWithTocHrefShouldSucceed()
AssertTocEqual(expectedModel, model);
}
- [Fact]
+ [TestMethod]
public void RelativePathToTocShouldChooseTheNearestReferenceToc()
{
// |-toc.md
@@ -712,12 +712,12 @@ public void RelativePathToTocShouldChooseTheNearestReferenceToc()
// Assert
var outputRawModelPath = Path.GetFullPath(Path.Combine(_outputFolder, Path.ChangeExtension(file, RawModelFileExtension)));
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize>(outputRawModelPath);
- Assert.Equal("../../toc.md", model["_tocRel"]);
+ Assert.AreEqual("../../toc.md", model["_tocRel"]);
}
- [Fact]
+ [TestMethod]
public void RelativePathToTocShouldExistWithUrlEncodedHref()
{
// Arrange
@@ -734,13 +734,13 @@ public void RelativePathToTocShouldExistWithUrlEncodedHref()
// Assert
var outputRawModelPath = Path.GetFullPath(Path.Combine(_outputFolder, Path.ChangeExtension(file, RawModelFileExtension)));
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize>(outputRawModelPath);
- Assert.Equal("../toc.md", model["_tocRel"]);
- Assert.Equal("Hello world!", model["meta"]);
+ Assert.AreEqual("../toc.md", model["_tocRel"]);
+ Assert.AreEqual("Hello world!", model["meta"]);
}
- [Fact]
+ [TestMethod]
public void ProcessYamlTocWithTocHrefAndHomepageShouldFail()
{
var content = @"
@@ -753,10 +753,10 @@ public void ProcessYamlTocWithTocHrefAndHomepageShouldFail()
FileCollection files = new(_inputFolder);
files.Add(DocumentType.Article, new[] { toc });
var e = Assert.Throws(() => BuildDocument(files));
- Assert.Equal("TopicHref should be used to specify the homepage for /Topic1/ when tocHref is used.", e.Message);
+ Assert.AreEqual("TopicHref should be used to specify the homepage for /Topic1/ when tocHref is used.", e.Message);
}
- [Fact]
+ [TestMethod]
public void LoadBadTocYamlFileShouldGiveLineNumber()
{
var content = @"
@@ -768,10 +768,10 @@ public void LoadBadTocYamlFileShouldGiveLineNumber()
href: x2.md";
var toc = _fileCreator.CreateFile(content, FileType.YamlToc);
var ex = Assert.Throws(() => TocHelper.LoadSingleToc(toc));
- Assert.Equal("toc.yml is not a valid TOC File: (Line: 3, Col: 10, Idx: 22) - (Line: 3, Col: 10, Idx: 22): While scanning a plain scalar value, found invalid mapping.", ex.Message);
+ Assert.AreEqual("toc.yml is not a valid TOC File: (Line: 3, Col: 10, Idx: 22) - (Line: 3, Col: 10, Idx: 22): While scanning a plain scalar value, found invalid mapping.", ex.Message);
}
- [Fact]
+ [TestMethod]
public void LoadTocYamlWithEmptyNodeShouldSucceed()
{
// Arrange
@@ -788,12 +788,12 @@ public void LoadTocYamlWithEmptyNodeShouldSucceed()
// Assert
var outputRawModelPath = Path.GetFullPath(Path.Combine(_outputFolder, Path.ChangeExtension(file, RawModelFileExtension)));
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize(outputRawModelPath);
- Assert.Single(model.Items); // empty node is removed
+ Assert.ContainsSingle(model.Items); // empty node is removed
}
- [Fact]
+ [TestMethod]
public void WarningShouldBeFromIncludedToc()
{
// Arrange
@@ -818,15 +818,15 @@ public void WarningShouldBeFromIncludedToc()
Logger.UnregisterListener(listener);
// Assert
- Assert.NotNull(listener.Items);
- Assert.Equal(2, listener.Items.Count);
- Assert.Equal(WarningCodes.Build.InvalidFileLink, listener.Items[0].Code);
- Assert.Equal("~/included/toc.yml", listener.Items[0].File);
- Assert.Equal(WarningCodes.Build.UidNotFound, listener.Items[1].Code);
- Assert.Equal("~/included/toc.yml", listener.Items[1].File);
+ Assert.IsNotNull(listener.Items);
+ Assert.AreEqual(2, listener.Items.Count);
+ Assert.AreEqual(WarningCodes.Build.InvalidFileLink, listener.Items[0].Code);
+ Assert.AreEqual("~/included/toc.yml", listener.Items[0].File);
+ Assert.AreEqual(WarningCodes.Build.UidNotFound, listener.Items[1].Code);
+ Assert.AreEqual("~/included/toc.yml", listener.Items[1].File);
}
- [Fact]
+ [TestMethod]
public void UrlDecodeHrefInYamlToc()
{
// Arrange
@@ -846,11 +846,11 @@ public void UrlDecodeHrefInYamlToc()
Logger.UnregisterListener(listener);
// Assert
- Assert.NotNull(listener.Items);
- Assert.Empty(listener.Items);
+ Assert.IsNotNull(listener.Items);
+ Assert.IsEmpty(listener.Items);
}
- [Fact]
+ [TestMethod]
public void UrlDecodeHrefInMarkdownToc()
{
// Arrange
@@ -868,8 +868,8 @@ public void UrlDecodeHrefInMarkdownToc()
Logger.UnregisterListener(listener);
// Assert
- Assert.NotNull(listener.Items);
- Assert.Empty(listener.Items);
+ Assert.IsNotNull(listener.Items);
+ Assert.IsEmpty(listener.Items);
}
#region Helper methods
@@ -949,7 +949,7 @@ private static void AssertTocEqual(TocItemViewModel expected, TocItemViewModel a
actual.Metadata.Clear();
}
YamlUtility.Serialize(swForActual, actual);
- Assert.Equal(swForExpected.ToString(), swForActual.ToString());
+ Assert.AreEqual(swForExpected.ToString(), swForActual.ToString());
}
#endregion
diff --git a/test/Docfx.Build.Tests/TocRestructureTest.cs b/test/Docfx.Build.Tests/TocRestructureTest.cs
index f1308faf7c9..62d2e582340 100644
--- a/test/Docfx.Build.Tests/TocRestructureTest.cs
+++ b/test/Docfx.Build.Tests/TocRestructureTest.cs
@@ -6,13 +6,13 @@
using Docfx.DataContracts.Common;
using Docfx.Plugins;
using Docfx.Tests.Common;
-using Xunit;
namespace Docfx.Build.TableOfContents.Tests;
+[TestClass]
public class TocRestructureTest : TestBase
{
- [Fact]
+ [TestMethod]
public void TestTocRestructureWithLeafNode()
{
var toc = GetTocItem(@"
@@ -52,7 +52,7 @@ public void TestTocRestructureWithLeafNode()
AssertTocEqual(expected, toc);
}
- [Fact]
+ [TestMethod]
public void TestTocRestructureWithContainerNode()
{
var toc = GetTocItem(@"
@@ -101,7 +101,7 @@ public void TestTocRestructureWithContainerNode()
AssertTocEqual(expected, toc);
}
- [Fact]
+ [TestMethod]
public void TestTocRestructureWithNoMatchNode()
{
var layout = @"
@@ -128,7 +128,7 @@ public void TestTocRestructureWithNoMatchNode()
AssertTocEqual(expected, toc);
}
- [Fact]
+ [TestMethod]
public void TestReplaceNodeWithMultipleNodesThrows()
{
var toc = GetTocItem(@"
@@ -147,7 +147,7 @@ public void TestReplaceNodeWithMultipleNodesThrows()
Assert.Throws(() => TocRestructureUtility.Restructure(toc, restructures));
}
- [Fact]
+ [TestMethod]
public void TestTocRestructureWithRestructureConflicts()
{
var toc = GetTocItem(@"
@@ -179,7 +179,7 @@ public void TestTocRestructureWithRestructureConflicts()
AssertTocEqual(expected, toc);
}
- [Fact]
+ [TestMethod]
public void TestTocRestructureAppliesToAllMatchedNodes()
{
var toc = GetTocItem(@"
@@ -225,7 +225,7 @@ public void TestTocRestructureAppliesToAllMatchedNodes()
private static void AssertTocEqual(TocItemViewModel expected, TocItemViewModel actual)
{
- Assert.Equal(expected.ToJsonString(), actual.ToJsonString());
+ Assert.AreEqual(expected.ToJsonString(), actual.ToJsonString());
}
private TreeItemRestructure GetRestructure(TreeItemActionType actionType, string uid, string[] childrenUids)
diff --git a/test/Docfx.Build.Tests/ValidateBookmarkTest.cs b/test/Docfx.Build.Tests/ValidateBookmarkTest.cs
index 24cc7edf5de..f0b6038f957 100644
--- a/test/Docfx.Build.Tests/ValidateBookmarkTest.cs
+++ b/test/Docfx.Build.Tests/ValidateBookmarkTest.cs
@@ -5,11 +5,10 @@
using Docfx.Plugins;
using Docfx.Tests.Common;
-using Xunit;
-
namespace Docfx.Build.Engine.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class ValidateBookmarkTest : TestBase
{
private readonly string _outputFolder;
@@ -29,7 +28,7 @@ public override void Dispose()
base.Dispose();
}
- [Fact]
+ [TestMethod]
public void TestBasicFeature()
{
Manifest manifest = new()
@@ -70,8 +69,8 @@ public void TestBasicFeature()
Logger.UnregisterListener(_listener);
}
var logs = _listener.Items;
- Assert.Equal(5, logs.Count);
- Assert.True(logs.All(l => l.Code == WarningCodes.Build.InvalidBookmark));
+ Assert.AreEqual(5, logs.Count);
+ Assert.IsTrue(logs.All(l => l.Code == WarningCodes.Build.InvalidBookmark));
var expected = new[]
{
Tuple.Create("Invalid link: '[link with source info](a.md#b2)'. The file a.md doesn't contain a bookmark named 'b2'.", "b.md"),
@@ -81,10 +80,10 @@ public void TestBasicFeature()
Tuple.Create("Invalid link: '[local link in token file](#b3)'. The file g.md doesn't contain a bookmark named 'b3'.", "token.md"),
};
var actual = logs.Select(l => Tuple.Create(l.Message, l.File)).ToList();
- Assert.True(!expected.Except(actual).Any() && expected.Length == actual.Count);
+ Assert.IsTrue(!expected.Except(actual).Any() && expected.Length == actual.Count);
}
- [Fact]
+ [TestMethod]
public void TestNoCheck()
{
// Arrange
@@ -116,16 +115,16 @@ public void TestNoCheck()
// Assert
var logs = _listener.Items;
- Assert.Single(logs);
+ Assert.ContainsSingle(logs);
var expected = new[]
{
Tuple.Create("Invalid link: 'test '. The file test.md doesn't contain a bookmark named 'invalid'.", "test.md"),
};
var actual = logs.Select(l => Tuple.Create(l.Message, l.File)).ToList();
- Assert.True(!expected.Except(actual).Any() && expected.Length == actual.Count);
+ Assert.IsTrue(!expected.Except(actual).Any() && expected.Length == actual.Count);
}
- [Fact]
+ [TestMethod]
public void TestLinkThatContainsNonAsciiChars()
{
Manifest manifest = new()
@@ -157,6 +156,6 @@ public void TestLinkThatContainsNonAsciiChars()
Logger.UnregisterListener(_listener);
}
var logs = _listener.Items;
- Assert.Empty(logs);
+ Assert.IsEmpty(logs);
}
}
diff --git a/test/Docfx.Build.Tests/WordCounterUnitTest.cs b/test/Docfx.Build.Tests/WordCounterUnitTest.cs
index 7b47b805dfe..6d457b8e8c1 100644
--- a/test/Docfx.Build.Tests/WordCounterUnitTest.cs
+++ b/test/Docfx.Build.Tests/WordCounterUnitTest.cs
@@ -1,23 +1,22 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Xunit;
-
namespace Docfx.Build.ConceptualDocuments.Tests;
-[Trait("Related", "Conceptual")]
+[TestProperty("Related", "Conceptual")]
+[TestClass]
public class WordCounterUnitTest
{
- [InlineData("", 0)]
- [InlineData(@"
Connect and TFS information ?! ", 4)]
- [InlineData(@"
Connect and TFS information ", 4)]
- [InlineData(@"Connect and TFS information Open Publishing is being developed by the Visual Studio China team. The team owns the MSDN and Technet platforms, as well as CAPS authoring tool, which is the replacement of DxStudio.
", 35)]
- [InlineData(@"Connect and TFS information Connect and TFS information Open Publishing is being developed by the Visual Studio China team. The team owns the MSDN and Technet platforms, as well as CAPS authoring tool, which is the replacement of DxStudio.
", 35)]
- [InlineData(@"Connect and TFS information Open Publishing is being developed by the Visual Studio China team. The team owns the MSDN and Technet platforms, as well as CAPS authoring tool, which is the replacement of DxStudio.
", 35)]
- [Theory]
+ [DataRow("", 0)]
+ [DataRow(@"
Connect and TFS information ?! ", 4)]
+ [DataRow(@"
Connect and TFS information ", 4)]
+ [DataRow(@"Connect and TFS information Open Publishing is being developed by the Visual Studio China team. The team owns the MSDN and Technet platforms, as well as CAPS authoring tool, which is the replacement of DxStudio.
", 35)]
+ [DataRow(@"Connect and TFS information Connect and TFS information Open Publishing is being developed by the Visual Studio China team. The team owns the MSDN and Technet platforms, as well as CAPS authoring tool, which is the replacement of DxStudio.
", 35)]
+ [DataRow(@"Connect and TFS information Open Publishing is being developed by the Visual Studio China team. The team owns the MSDN and Technet platforms, as well as CAPS authoring tool, which is the replacement of DxStudio.
", 35)]
+ [TestMethod]
public void TestWordCounter(string html, long expectedCount)
{
long wordCount = WordCounter.CountWord(html);
- Assert.Equal(expectedCount, wordCount);
+ Assert.AreEqual(expectedCount, wordCount);
}
}
diff --git a/test/Docfx.Build.Tests/XRefArchiveBuilderTest.cs b/test/Docfx.Build.Tests/XRefArchiveBuilderTest.cs
index 65314446a06..5c9703502d6 100644
--- a/test/Docfx.Build.Tests/XRefArchiveBuilderTest.cs
+++ b/test/Docfx.Build.Tests/XRefArchiveBuilderTest.cs
@@ -1,14 +1,13 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Xunit;
-
namespace Docfx.Build.Engine.Tests;
-[Trait("Related", "XRefArchive")]
+[TestProperty("Related", "XRefArchive")]
+[TestClass]
public class XRefArchiveBuilderTest
{
- [Fact]
+ [TestMethod]
public async Task TestDownload()
{
const string ZipFile = "test.zip";
@@ -20,15 +19,15 @@ public async Task TestDownload()
// sorted: true
// references: []
// ```
- Assert.True(await builder.DownloadAsync(new Uri("http://dotnet.github.io/docfx/xrefmap.yml"), ZipFile));
+ Assert.IsTrue(await builder.DownloadAsync(new Uri("http://dotnet.github.io/docfx/xrefmap.yml"), ZipFile));
using (var xar = XRefArchive.Open(ZipFile, XRefArchiveMode.Read))
{
var map = xar.GetMajor();
- Assert.Null(map.HrefUpdated);
- Assert.True(map.Sorted);
- Assert.NotNull(map.References);
- Assert.Null(map.Redirections);
+ Assert.IsNull(map.HrefUpdated);
+ Assert.IsTrue(map.Sorted);
+ Assert.IsNotNull(map.References);
+ Assert.IsNull(map.Redirections);
}
File.Delete(ZipFile);
}
diff --git a/test/Docfx.Build.Tests/XRefMapDownloaderTest.cs b/test/Docfx.Build.Tests/XRefMapDownloaderTest.cs
index 04f21141a85..dd40d46068c 100644
--- a/test/Docfx.Build.Tests/XRefMapDownloaderTest.cs
+++ b/test/Docfx.Build.Tests/XRefMapDownloaderTest.cs
@@ -2,22 +2,23 @@
// The .NET Foundation licenses this file to you under the MIT license.
using FluentAssertions;
-using Xunit;
namespace Docfx.Build.Engine.Tests;
+[TestClass]
public class XRefMapDownloadTest
{
- [Fact(Skip = "Flaky SSL connection problems on GH windows CI")]
+ [TestMethod]
+ [Ignore("Flaky SSL connection problems on GH windows CI")]
public async Task BaseUrlIsSet()
{
var downloader = new XRefMapDownloader();
var xrefs = await downloader.DownloadAsync(new Uri("https://dotnet.github.io/docfx/xrefmap.yml")) as XRefMap;
- Assert.NotNull(xrefs);
- Assert.Equal("https://dotnet.github.io/docfx/", xrefs.BaseUrl);
+ Assert.IsNotNull(xrefs);
+ Assert.AreEqual("https://dotnet.github.io/docfx/", xrefs.BaseUrl);
}
- [Fact]
+ [TestMethod]
public async Task ReadLocalXRefMapWithFallback()
{
var basePath = Path.GetRandomFileName();
@@ -29,11 +30,11 @@ public async Task ReadLocalXRefMapWithFallback()
select new Uri(u, UriKind.RelativeOrAbsolute)).GetReaderAsync(basePath, fallbackFolders);
var xrefSpec = reader.Find("str");
- Assert.NotNull(xrefSpec);
- Assert.Equal("https://docs.python.org/3.5/library/stdtypes.html#str", xrefSpec.Href);
+ Assert.IsNotNull(xrefSpec);
+ Assert.AreEqual("https://docs.python.org/3.5/library/stdtypes.html#str", xrefSpec.Href);
}
- [Fact]
+ [TestMethod]
public async Task ReadLocalXRefMapJsonFileTest()
{
// Arrange
@@ -47,7 +48,7 @@ public async Task ReadLocalXRefMapJsonFileTest()
xrefMap.References.Should().HaveCount(1);
}
- [Fact]
+ [TestMethod]
public async Task ReadLocalXRefMapGZippedJsonFileTest()
{
// Arrange
@@ -61,7 +62,7 @@ public async Task ReadLocalXRefMapGZippedJsonFileTest()
xrefMap.References.Should().HaveCount(1);
}
- [Fact]
+ [TestMethod]
public async Task ReadLocalXRefMapGZippedYamlFileTest()
{
// Arrange
@@ -78,7 +79,8 @@ public async Task ReadLocalXRefMapGZippedYamlFileTest()
///
/// XrefmapDownloader test for xrefmap that has no baseUrl and href is defined by relative path.
///
- [Fact(Skip = "Has dependency to external site content.")]
+ [TestMethod]
+ [Ignore("Has dependency to external site content.")]
public async Task ReadRemoteXRefMapYamlFileTest1()
{
// Arrange
@@ -107,7 +109,8 @@ public async Task ReadRemoteXRefMapYamlFileTest1()
///
/// XrefmapDownloader test for xrefmap that has no baseUrl, and href is defined by absolute path.
///
- [Fact(Skip = "Has dependency to external site content.")]
+ [TestMethod]
+ [Ignore("Has dependency to external site content.")]
public async Task ReadRemoteXRefMapJsonFileTest2()
{
// Arrange
diff --git a/test/Docfx.Build.Tests/XRefMapSerializationTest.cs b/test/Docfx.Build.Tests/XRefMapSerializationTest.cs
index afae124e4ae..79390fe8d90 100644
--- a/test/Docfx.Build.Tests/XRefMapSerializationTest.cs
+++ b/test/Docfx.Build.Tests/XRefMapSerializationTest.cs
@@ -4,13 +4,13 @@
using System.Text;
using Docfx.Common;
using FluentAssertions;
-using Xunit;
namespace Docfx.Build.Engine.Tests;
+[TestClass]
public class XRefMapSerializationTest
{
- [Fact]
+ [TestMethod]
public void XRefMapSerializationRoundTripTest()
{
var model = new XRefMap
diff --git a/test/Docfx.Build.UniversalReference.Tests/UniversalReferenceDocumentProcessorTest.cs b/test/Docfx.Build.UniversalReference.Tests/UniversalReferenceDocumentProcessorTest.cs
index acad455356f..6c3ed8ef49b 100644
--- a/test/Docfx.Build.UniversalReference.Tests/UniversalReferenceDocumentProcessorTest.cs
+++ b/test/Docfx.Build.UniversalReference.Tests/UniversalReferenceDocumentProcessorTest.cs
@@ -8,10 +8,9 @@
using Docfx.Plugins;
using Docfx.Tests.Common;
-using Xunit;
-
namespace Docfx.Build.UniversalReference.Tests;
+[TestClass]
public class UniversalReferenceDocumentProcessorTest : TestBase
{
private readonly string _outputFolder;
@@ -39,7 +38,7 @@ public UniversalReferenceDocumentProcessorTest()
#region Python
- [Fact]
+ [TestMethod]
public void ProcessPythonReferencesShouldSucceed()
{
var fileNames = new string[] { "cntk.core.yml", "cntk.core.Value.yml", "cntk.debugging.yml" };
@@ -51,11 +50,11 @@ public void ProcessPythonReferencesShouldSucceed()
foreach (var fileName in fileNames)
{
var outputRawModelPath = GetRawModelFilePath(fileName);
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
}
}
- [Fact]
+ [TestMethod]
public void ProcessPythonModelShouldSucceed()
{
var moduleFileName = "cntk.core.yml";
@@ -70,60 +69,60 @@ public void ProcessPythonModelShouldSucceed()
var outputModuleRawModelPath = GetRawModelFilePath(moduleFileName);
var outputClassRawModelPath = GetRawModelFilePath(classFileName);
- Assert.True(File.Exists(outputClassRawModelPath));
+ Assert.IsTrue(File.Exists(outputClassRawModelPath));
var moduleModel = JsonUtility.Deserialize(outputModuleRawModelPath);
- Assert.NotNull(moduleModel);
- Assert.Equal("Test UniversalReferenceDocumentProcessor", moduleModel.Metadata["meta"]);
- Assert.Equal(
+ Assert.IsNotNull(moduleModel);
+ Assert.AreEqual("Test UniversalReferenceDocumentProcessor", moduleModel.Metadata["meta"]);
+ Assert.AreEqual(
"Bases: \nInternal representation of minibatch data.
\n",
moduleModel.Children[0].Value[1].Summary);
- Assert.Equal("Class", moduleModel.Children[0].Value[1].Type);
+ Assert.AreEqual("Class", moduleModel.Children[0].Value[1].Type);
var classModel = JsonUtility.Deserialize(outputClassRawModelPath);
- Assert.NotNull(classModel);
- Assert.Equal("Test UniversalReferenceDocumentProcessor", classModel.Metadata["meta"]);
+ Assert.IsNotNull(classModel);
+ Assert.AreEqual("Test UniversalReferenceDocumentProcessor", classModel.Metadata["meta"]);
- Assert.Single(classModel.SupportedLanguages);
- Assert.Equal("python", classModel.SupportedLanguages[0]);
+ Assert.ContainsSingle(classModel.SupportedLanguages);
+ Assert.AreEqual("python", classModel.SupportedLanguages[0]);
- Assert.Equal("Class", classModel.Type);
+ Assert.AreEqual("Class", classModel.Type);
- Assert.Equal("Value", classModel.Name[0].Value);
- Assert.Equal("cntk.core.Value", classModel.FullName[0].Value);
+ Assert.AreEqual("Value", classModel.Name[0].Value);
+ Assert.AreEqual("cntk.core.Value", classModel.FullName[0].Value);
- Assert.Equal("https://github.com/Microsoft/CNTK", classModel.Source[0].Value.Remote.Repo);
- Assert.Equal("cntk/core.py", classModel.Source[0].Value.Remote.Path);
- Assert.Equal(182, classModel.Source[0].Value.StartLine);
+ Assert.AreEqual("https://github.com/Microsoft/CNTK", classModel.Source[0].Value.Remote.Repo);
+ Assert.AreEqual("cntk/core.py", classModel.Source[0].Value.Remote.Path);
+ Assert.AreEqual(182, classModel.Source[0].Value.StartLine);
- Assert.Equal(6, classModel.Syntax.Parameters.Count);
- Assert.Equal("shape", classModel.Syntax.Parameters[0].Name);
- Assert.Equal("tuple", classModel.Syntax.Parameters[0].Type[0].Uid);
- Assert.Equal("shape of the value
\n",
+ Assert.AreEqual(6, classModel.Syntax.Parameters.Count);
+ Assert.AreEqual("shape", classModel.Syntax.Parameters[0].Name);
+ Assert.AreEqual("tuple", classModel.Syntax.Parameters[0].Type[0].Uid);
+ Assert.AreEqual("shape of the value
\n",
classModel.Syntax.Parameters[0].Description);
- Assert.Equal("cntk.cntk_py.Value", classModel.Inheritance[0].Value[0].Type.Uid);
- Assert.Equal("builtins.object", classModel.Inheritance[0].Value[0].Inheritance[0].Type.Uid);
+ Assert.AreEqual("cntk.cntk_py.Value", classModel.Inheritance[0].Value[0].Type.Uid);
+ Assert.AreEqual("builtins.object", classModel.Inheritance[0].Value[0].Inheritance[0].Type.Uid);
- Assert.Single(classModel.Children);
- Assert.Equal("python", classModel.Children[0].Language);
- Assert.Equal(5, classModel.Children[0].Value.Count);
+ Assert.ContainsSingle(classModel.Children);
+ Assert.AreEqual("python", classModel.Children[0].Language);
+ Assert.AreEqual(5, classModel.Children[0].Value.Count);
var firstChildrenValue = classModel.Children[0].Value[0];
- Assert.Equal("Method", firstChildrenValue.Type);
- Assert.Equal("cntk.core.Value.create", firstChildrenValue.Uid);
- Assert.Equal("create", firstChildrenValue.Name[0].Value);
- Assert.Equal("cntk.core.Value.create", firstChildrenValue.FullName[0].Value);
- Assert.Equal("Creates a object.
\n",
+ Assert.AreEqual("Method", firstChildrenValue.Type);
+ Assert.AreEqual("cntk.core.Value.create", firstChildrenValue.Uid);
+ Assert.AreEqual("create", firstChildrenValue.Name[0].Value);
+ Assert.AreEqual("cntk.core.Value.create", firstChildrenValue.FullName[0].Value);
+ Assert.AreEqual("Creates a object.
\n",
firstChildrenValue.Summary);
- Assert.Equal(" object.
\n",
+ Assert.AreEqual(" object.
\n",
firstChildrenValue.Syntax.Return[0].Value.Description);
- Assert.Equal("type1", firstChildrenValue.Syntax.Return[0].Value.Type[0].Uid);
- Assert.Equal("type2", firstChildrenValue.Syntax.Return[0].Value.Type[1].Uid);
- Assert.Equal("type3", firstChildrenValue.Syntax.Return[0].Value.Type[2].Uid);
+ Assert.AreEqual("type1", firstChildrenValue.Syntax.Return[0].Value.Type[0].Uid);
+ Assert.AreEqual("type2", firstChildrenValue.Syntax.Return[0].Value.Type[1].Uid);
+ Assert.AreEqual("type3", firstChildrenValue.Syntax.Return[0].Value.Type[2].Uid);
}
- [Fact]
+ [TestMethod]
public void ApplyOverwriteDocumentForPythonShouldSucceed()
{
var fileName = "cntk.core.Value.yml";
@@ -135,19 +134,19 @@ public void ApplyOverwriteDocumentForPythonShouldSucceed()
BuildDocument(files);
var outputRawModelPath = GetRawModelFilePath(fileName);
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
var model = JsonUtility.Deserialize(outputRawModelPath);
- Assert.NotNull(model);
+ Assert.IsNotNull(model);
- Assert.Equal("\nconceptual of cntk.core.Value
\n", model.Conceptual);
- Assert.Equal("summary of cntk.core.Value
\n", model.Summary);
+ Assert.AreEqual("\nconceptual of cntk.core.Value
\n", model.Conceptual);
+ Assert.AreEqual("summary of cntk.core.Value
\n", model.Summary);
}
#endregion
#region JavaScript
- [Fact]
+ [TestMethod]
public void ProcessJavaScriptReferencesShouldSucceed()
{
var fileNames = new string[] { "azure.ApplicationTokenCredentials.yml" };
@@ -159,13 +158,13 @@ public void ProcessJavaScriptReferencesShouldSucceed()
foreach (var fileName in fileNames)
{
var outputRawModelPath = GetRawModelFilePath(fileName);
- Assert.True(File.Exists(outputRawModelPath));
+ Assert.IsTrue(File.Exists(outputRawModelPath));
}
}
#endregion
- [Fact]
+ [TestMethod]
public void ProcessItemWithEmptyUidShouldFail()
{
var fileNames = new string[] { "invalid.yml" };
@@ -174,8 +173,8 @@ public void ProcessItemWithEmptyUidShouldFail()
using var listener = new TestListenerScope();
BuildDocument(files);
- Assert.NotNull(listener.Items);
- Assert.Equal(2, listener.Items.Count);
+ Assert.IsNotNull(listener.Items);
+ Assert.AreEqual(2, listener.Items.Count);
Assert.Contains("Uid must not be null or empty", listener.Items[1].Message);
}
diff --git a/test/Docfx.Common.Tests/CollectionUtilityTest.cs b/test/Docfx.Common.Tests/CollectionUtilityTest.cs
index 20d4a1bcb9a..99bb82ba965 100644
--- a/test/Docfx.Common.Tests/CollectionUtilityTest.cs
+++ b/test/Docfx.Common.Tests/CollectionUtilityTest.cs
@@ -3,24 +3,23 @@
using System.Collections.Immutable;
-using Xunit;
-
namespace Docfx.Common.Tests;
-[Trait("Related", "CollectionUtilityTest")]
+[TestProperty("Related", "CollectionUtilityTest")]
+[TestClass]
public class CollectionUtilityTest
{
- [Theory]
- [InlineData("ABCBDAB", "BDCABA", "BCBA")]
- [InlineData("ACCGGTCGAGTGCGCGGAAGCCGGCCGAA", "GTCGTTCGGAATGCCGTTGCTCTGTAAA", "GTCGTCGGAAGCCGGCCGAA")]
+ [TestMethod]
+ [DataRow("ABCBDAB", "BDCABA", "BCBA")]
+ [DataRow("ACCGGTCGAGTGCGCGGAAGCCGGCCGAA", "GTCGTTCGGAATGCCGTTGCTCTGTAAA", "GTCGTCGGAAGCCGGCCGAA")]
public void TestGetLongestCommonSequence(string input1, string input2, string expected)
{
var inputArray = input1.ToImmutableArray();
var actual = inputArray.GetLongestCommonSequence(input2.ToImmutableArray());
- Assert.Equal(expected.Length, actual.Length);
+ Assert.AreEqual(expected.Length, actual.Length);
for (int i = 0; i < expected.Length; i++)
{
- Assert.Equal(expected[i], actual[i]);
+ Assert.AreEqual(expected[i], actual[i]);
}
}
}
diff --git a/test/Docfx.Common.Tests/CompositeDictionaryTest.cs b/test/Docfx.Common.Tests/CompositeDictionaryTest.cs
index ff8f6e735bf..3baa6e57d5e 100644
--- a/test/Docfx.Common.Tests/CompositeDictionaryTest.cs
+++ b/test/Docfx.Common.Tests/CompositeDictionaryTest.cs
@@ -1,14 +1,13 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Xunit;
-
namespace Docfx.Common.Tests;
-[Trait("Related", "CompositeDictionary")]
+[TestProperty("Related", "CompositeDictionary")]
+[TestClass]
public class CompositeDictionaryTest
{
- [Fact]
+ [TestMethod]
public void TestAddRemoveGetSetForCompositeDictionary()
{
var c = new C
@@ -27,51 +26,51 @@ public void TestAddRemoveGetSetForCompositeDictionary()
},
};
- Assert.Equal(3, c.CD.Count);
+ Assert.AreEqual(3, c.CD.Count);
var list = c.CD.ToList();
- Assert.Equal("D1.a", list[0].Key);
- Assert.Equal(1.0, list[0].Value);
- Assert.Equal("D2.b", list[1].Key);
- Assert.Equal(1, list[1].Value);
- Assert.Equal("D3.c", list[2].Key);
- Assert.Equal("x", list[2].Value);
+ Assert.AreEqual("D1.a", list[0].Key);
+ Assert.AreEqual(1.0, list[0].Value);
+ Assert.AreEqual("D2.b", list[1].Key);
+ Assert.AreEqual(1, list[1].Value);
+ Assert.AreEqual("D3.c", list[2].Key);
+ Assert.AreEqual("x", list[2].Value);
- Assert.Equal(new[] { "D1.a", "D2.b", "D3.c" }, c.CD.Keys);
- Assert.Equal(new object[] { 1.0, 1, "x" }, c.CD.Values);
- Assert.True(c.CD.ContainsKey("D1.a"));
- Assert.False(c.CD.ContainsKey("D1.b"));
- Assert.False(c.CD.ContainsKey("a"));
+ CollectionAssert.AreEqual(new[] { "D1.a", "D2.b", "D3.c" }, c.CD.Keys.ToArray());
+ CollectionAssert.AreEqual(new object[] { 1.0, 1, "x" }, c.CD.Values.ToArray());
+ Assert.IsTrue(c.CD.ContainsKey("D1.a"));
+ Assert.IsFalse(c.CD.ContainsKey("D1.b"));
+ Assert.IsFalse(c.CD.ContainsKey("a"));
c.CD.Add("D1.b", 2);
- Assert.Equal(4, c.CD.Count);
- Assert.Equal(2, c.D1.Count);
- Assert.True(c.CD.ContainsKey("D1.b"));
- Assert.Equal(2, c.CD["D1.b"]);
- Assert.True(c.CD.TryGetValue("D1.b", out object value));
- Assert.Equal(2, value);
- Assert.True(c.CD.TryGetValue("D2.b", out value));
- Assert.Equal(1, value);
+ Assert.AreEqual(4, c.CD.Count);
+ Assert.AreEqual(2, c.D1.Count);
+ Assert.IsTrue(c.CD.ContainsKey("D1.b"));
+ Assert.AreEqual(2, c.CD["D1.b"]);
+ Assert.IsTrue(c.CD.TryGetValue("D1.b", out object value));
+ Assert.AreEqual(2, value);
+ Assert.IsTrue(c.CD.TryGetValue("D2.b", out value));
+ Assert.AreEqual(1, value);
- Assert.True(c.CD.Remove("D1.b"));
- Assert.False(c.CD.Remove("D1.b"));
- Assert.False(c.CD.Remove("x"));
- Assert.False(c.CD.TryGetValue("D1.b", out value));
- Assert.Null(value);
- Assert.False(c.CD.TryGetValue("b", out value));
- Assert.Null(value);
- Assert.Equal(3, c.CD.Count);
- Assert.Single(c.D1);
+ Assert.IsTrue(c.CD.Remove("D1.b"));
+ Assert.IsFalse(c.CD.Remove("D1.b"));
+ Assert.IsFalse(c.CD.Remove("x"));
+ Assert.IsFalse(c.CD.TryGetValue("D1.b", out value));
+ Assert.IsNull(value);
+ Assert.IsFalse(c.CD.TryGetValue("b", out value));
+ Assert.IsNull(value);
+ Assert.AreEqual(3, c.CD.Count);
+ Assert.ContainsSingle(c.D1);
- Assert.Equal("x", c.CD["D3.c"]);
+ Assert.AreEqual("x", c.CD["D3.c"]);
c.CD["D3.c"] = "y";
- Assert.Equal("y", c.CD["D3.c"]);
- Assert.Equal(3, c.CD.Count);
+ Assert.AreEqual("y", c.CD["D3.c"]);
+ Assert.AreEqual(3, c.CD.Count);
c.CD.Clear();
- Assert.Empty(c.CD);
+ Assert.IsEmpty(c.CD);
}
- [Fact]
+ [TestMethod]
public void TestThrowCaseForCompositeDictionary()
{
var c = new C
@@ -93,9 +92,9 @@ public void TestThrowCaseForCompositeDictionary()
Assert.Throws(() => c.CD["z"] = 1);
Assert.Throws(() => c.CD.Add("z", 1));
- Assert.Throws(() => c.CD["z"]);
+ Assert.Throws(() => _ = c.CD["z"]);
- Assert.Throws(() => c.CD[null]);
+ Assert.Throws(() => _ = c.CD[null]);
Assert.Throws(() => c.CD[null] = 1);
Assert.Throws(() => c.CD.Add(null, 1));
Assert.Throws(() => c.CD.Remove(null));
diff --git a/test/Docfx.Common.Tests/ConvertToObjectHelperTest.cs b/test/Docfx.Common.Tests/ConvertToObjectHelperTest.cs
index bb39a7e9f56..2c6282d6965 100644
--- a/test/Docfx.Common.Tests/ConvertToObjectHelperTest.cs
+++ b/test/Docfx.Common.Tests/ConvertToObjectHelperTest.cs
@@ -5,26 +5,26 @@
using FluentAssertions;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
-using Xunit;
namespace Docfx.Common.Tests;
-[Trait("Related", "ConvertToObjectHelper")]
+[TestProperty("Related", "ConvertToObjectHelper")]
+[TestClass]
public class ConvertToObjectHelperTest
{
- [Theory]
- [InlineData(1, typeof(int))]
- [InlineData(1L, typeof(long))]
- [InlineData(1.0, typeof(double))]
- [InlineData("string", typeof(string))]
- [InlineData('c', typeof(string))]
+ [TestMethod]
+ [DataRow(1, typeof(int))]
+ [DataRow(1L, typeof(long))]
+ [DataRow(1.0, typeof(double))]
+ [DataRow("string", typeof(string))]
+ [DataRow('c', typeof(string))]
public void ConvertSimpleTypeToObjectShouldWork(object value, Type expectedType)
{
var result = ConvertToObjectHelper.ConvertStrongTypeToObject(value);
- Assert.Equal(expectedType, result.GetType());
+ Assert.AreEqual(expectedType, result.GetType());
}
- [Fact]
+ [TestMethod]
public void ConvertComplexTypeToObjectShouldWork()
{
var complexType = new ComplexType
@@ -34,12 +34,12 @@ public void ConvertComplexTypeToObjectShouldWork()
IntDictionary = []
};
var result = ConvertToObjectHelper.ConvertStrongTypeToObject(complexType);
- Assert.Equal(typeof(Dictionary), result.GetType());
- Assert.Equal(typeof(object[]), ((Dictionary)result)["List"].GetType());
- Assert.Equal(typeof(Dictionary), ((Dictionary)result)["IntDictionary"].GetType());
+ Assert.AreEqual(typeof(Dictionary), result.GetType());
+ Assert.AreEqual(typeof(object[]), ((Dictionary)result)["List"].GetType());
+ Assert.AreEqual(typeof(Dictionary), ((Dictionary)result)["IntDictionary"].GetType());
}
- [Fact]
+ [TestMethod]
public void ConvertComplexTypeWithJsonAttributeToObjectShouldUseAttributeAsPropertyName()
{
var complexType = new ComplexTypeWithJson
@@ -49,12 +49,12 @@ public void ConvertComplexTypeWithJsonAttributeToObjectShouldUseAttributeAsPrope
IntDictionary = []
};
var result = ConvertToObjectHelper.ConvertStrongTypeToObject(complexType);
- Assert.Equal(typeof(Dictionary), result.GetType());
- Assert.Equal(typeof(object[]), ((Dictionary)result)["list"].GetType());
- Assert.Equal(typeof(Dictionary), ((Dictionary)result)["dict"].GetType());
+ Assert.AreEqual(typeof(Dictionary), result.GetType());
+ Assert.AreEqual(typeof(object[]), ((Dictionary)result)["list"].GetType());
+ Assert.AreEqual(typeof(Dictionary), ((Dictionary)result)["dict"].GetType());
}
- [Fact]
+ [TestMethod]
public void ConvertObjectWithCircularReferenceToDynamic()
{
var a = new Dictionary
@@ -64,15 +64,15 @@ public void ConvertObjectWithCircularReferenceToDynamic()
a["key1"] = a;
dynamic converted = ConvertToObjectHelper.ConvertToDynamic(a);
- Assert.Same(converted.key1, converted);
- Assert.Equal("value", converted.key1.key);
+ Assert.AreSame(converted.key1, converted);
+ Assert.AreEqual("value", converted.key1.key);
Dictionary obj = (Dictionary)ConvertToObjectHelper.ConvertExpandoObjectToObject(converted);
- Assert.True(ReferenceEquals(obj["key1"], obj));
- Assert.Equal("value", ((Dictionary)obj["key1"])["key"]);
+ Assert.IsTrue(ReferenceEquals(obj["key1"], obj));
+ Assert.AreEqual("value", ((Dictionary)obj["key1"])["key"]);
}
- [Fact]
+ [TestMethod]
public void ConvertJObjectToObject_UnexpectedType()
{
// Arrange
diff --git a/test/Docfx.Common.Tests/FileAbstractLayerTest.cs b/test/Docfx.Common.Tests/FileAbstractLayerTest.cs
index 8ecae824055..c2a86dfbdf7 100644
--- a/test/Docfx.Common.Tests/FileAbstractLayerTest.cs
+++ b/test/Docfx.Common.Tests/FileAbstractLayerTest.cs
@@ -2,13 +2,13 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Docfx.Tests.Common;
-using Xunit;
namespace Docfx.Common.Tests;
+[TestClass]
public class FileAbstractLayerTest : TestBase
{
- [Fact]
+ [TestMethod]
public void TestFileAbstractLayerWithRealImplementsShouldReadFileCorrectlyWhenInputNoFallback()
{
var input = GetRandomFolder();
@@ -16,15 +16,15 @@ public void TestFileAbstractLayerWithRealImplementsShouldReadFileCorrectlyWhenIn
var fal = FileAbstractLayerBuilder.Default
.ReadFromRealFileSystem(input)
.Create();
- Assert.True(fal.Exists("~/temp.txt"));
- Assert.True(fal.Exists("temp.txt"));
- Assert.False(fal.Exists("~/temp.jpg"));
- Assert.False(fal.Exists("temp.jpg"));
- Assert.Equal("👍", fal.ReadAllText("temp.txt"));
- Assert.Equal(new[] { (RelativePath)"~/temp.txt" }, fal.GetAllInputFiles());
+ Assert.IsTrue(fal.Exists("~/temp.txt"));
+ Assert.IsTrue(fal.Exists("temp.txt"));
+ Assert.IsFalse(fal.Exists("~/temp.jpg"));
+ Assert.IsFalse(fal.Exists("temp.jpg"));
+ Assert.AreEqual("👍", fal.ReadAllText("temp.txt"));
+ CollectionAssert.AreEqual(new[] { (RelativePath)"~/temp.txt" }, fal.GetAllInputFiles().ToArray());
}
- [Fact]
+ [TestMethod]
public void TestFileAbstractLayerWithRealImplementsShouldCopyFileCorrectly()
{
var input = GetRandomFolder();
@@ -39,14 +39,14 @@ public void TestFileAbstractLayerWithRealImplementsShouldCopyFileCorrectly()
var fal2 = FileAbstractLayerBuilder.Default
.ReadFromOutput(fal)
.Create();
- Assert.True(fal2.Exists("copy.txt"));
- Assert.False(fal2.Exists("temp.txt"));
- Assert.Equal("😈", fal2.ReadAllText("copy.txt"));
- Assert.Equal(new[] { (RelativePath)"~/copy.txt" }, fal2.GetAllInputFiles());
- Assert.True(File.Exists(Path.Combine(output, "copy.txt")));
+ Assert.IsTrue(fal2.Exists("copy.txt"));
+ Assert.IsFalse(fal2.Exists("temp.txt"));
+ Assert.AreEqual("😈", fal2.ReadAllText("copy.txt"));
+ CollectionAssert.AreEqual(new[] { (RelativePath)"~/copy.txt" }, fal2.GetAllInputFiles().ToArray());
+ Assert.IsTrue(File.Exists(Path.Combine(output, "copy.txt")));
}
- [Fact]
+ [TestMethod]
public void TestFileAbstractLayerWithRealImplementsShouldCreateTwiceForSameFileCorrectly()
{
var output = GetRandomFolder();
@@ -59,13 +59,13 @@ public void TestFileAbstractLayerWithRealImplementsShouldCreateTwiceForSameFileC
var fal2 = FileAbstractLayerBuilder.Default
.ReadFromOutput(fal)
.Create();
- Assert.True(fal2.Exists("temp.txt"));
- Assert.Equal("😆", fal2.ReadAllText("temp.txt"));
- Assert.Equal(new[] { (RelativePath)"~/temp.txt" }, fal2.GetAllInputFiles());
- Assert.True(File.Exists(Path.Combine(output, "temp.txt")));
+ Assert.IsTrue(fal2.Exists("temp.txt"));
+ Assert.AreEqual("😆", fal2.ReadAllText("temp.txt"));
+ CollectionAssert.AreEqual(new[] { (RelativePath)"~/temp.txt" }, fal2.GetAllInputFiles().ToArray());
+ Assert.IsTrue(File.Exists(Path.Combine(output, "temp.txt")));
}
- [Fact]
+ [TestMethod]
public void TestFileAbstractLayerWithRealImplementsShouldCopyThenCreateForSameFileCorrectly()
{
var input = GetRandomFolder();
@@ -81,10 +81,10 @@ public void TestFileAbstractLayerWithRealImplementsShouldCopyThenCreateForSameFi
var fal2 = FileAbstractLayerBuilder.Default
.ReadFromOutput(fal)
.Create();
- Assert.True(fal2.Exists("copy.txt"));
- Assert.Equal("😁", fal2.ReadAllText("copy.txt"));
- Assert.Equal(new[] { (RelativePath)"~/copy.txt" }, fal2.GetAllInputFiles());
- Assert.True(File.Exists(Path.Combine(output, "copy.txt")));
- Assert.Equal("😄", File.ReadAllText(Path.Combine(input, "temp.txt")));
+ Assert.IsTrue(fal2.Exists("copy.txt"));
+ Assert.AreEqual("😁", fal2.ReadAllText("copy.txt"));
+ CollectionAssert.AreEqual(new[] { (RelativePath)"~/copy.txt" }, fal2.GetAllInputFiles().ToArray());
+ Assert.IsTrue(File.Exists(Path.Combine(output, "copy.txt")));
+ Assert.AreEqual("😄", File.ReadAllText(Path.Combine(input, "temp.txt")));
}
}
diff --git a/test/Docfx.Common.Tests/FileAbstractLayerWithEnvironmentVariableTest.cs b/test/Docfx.Common.Tests/FileAbstractLayerWithEnvironmentVariableTest.cs
index 1f6a135c24a..a42b261dccb 100644
--- a/test/Docfx.Common.Tests/FileAbstractLayerWithEnvironmentVariableTest.cs
+++ b/test/Docfx.Common.Tests/FileAbstractLayerWithEnvironmentVariableTest.cs
@@ -2,14 +2,14 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Docfx.Tests.Common;
-using Xunit;
namespace Docfx.Common.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class FileAbstractLayerWithEnvironmentVariableTest : TestBase
{
- [Fact]
+ [TestMethod]
public void TestFileAbstractLayerWithRealImplementsShouldReadFileCorrectlyWhenInputNoFallback()
{
var input = GetRandomFolder();
@@ -18,16 +18,16 @@ public void TestFileAbstractLayerWithRealImplementsShouldReadFileCorrectlyWhenIn
var fal = FileAbstractLayerBuilder.Default
.ReadFromRealFileSystem("%input%")
.Create();
- Assert.True(fal.Exists("~/temp.txt"));
- Assert.True(fal.Exists("temp.txt"));
- Assert.False(fal.Exists("~/temp.jpg"));
- Assert.False(fal.Exists("temp.jpg"));
- Assert.Equal("👍", fal.ReadAllText("temp.txt"));
- Assert.Equal(new[] { (RelativePath)"~/temp.txt" }, fal.GetAllInputFiles());
+ Assert.IsTrue(fal.Exists("~/temp.txt"));
+ Assert.IsTrue(fal.Exists("temp.txt"));
+ Assert.IsFalse(fal.Exists("~/temp.jpg"));
+ Assert.IsFalse(fal.Exists("temp.jpg"));
+ Assert.AreEqual("👍", fal.ReadAllText("temp.txt"));
+ CollectionAssert.AreEqual(new[] { (RelativePath)"~/temp.txt" }, fal.GetAllInputFiles().ToArray());
Environment.SetEnvironmentVariable("input", null);
}
- [Fact]
+ [TestMethod]
public void TestFileAbstractLayerWithRealImplementsShouldCopyFileCorrectly()
{
var input = GetRandomFolder();
@@ -44,16 +44,16 @@ public void TestFileAbstractLayerWithRealImplementsShouldCopyFileCorrectly()
var fal2 = FileAbstractLayerBuilder.Default
.ReadFromOutput(fal)
.Create();
- Assert.True(fal2.Exists("copy.txt"));
- Assert.False(fal2.Exists("temp.txt"));
- Assert.Equal("😈", fal2.ReadAllText("copy.txt"));
- Assert.Equal(new[] { (RelativePath)"~/copy.txt" }, fal2.GetAllInputFiles());
- Assert.True(File.Exists(Path.Combine(output, "copy.txt")));
+ Assert.IsTrue(fal2.Exists("copy.txt"));
+ Assert.IsFalse(fal2.Exists("temp.txt"));
+ Assert.AreEqual("😈", fal2.ReadAllText("copy.txt"));
+ CollectionAssert.AreEqual(new[] { (RelativePath)"~/copy.txt" }, fal2.GetAllInputFiles().ToArray());
+ Assert.IsTrue(File.Exists(Path.Combine(output, "copy.txt")));
Environment.SetEnvironmentVariable("input", null);
Environment.SetEnvironmentVariable("output", null);
}
- [Fact]
+ [TestMethod]
public void TestFileAbstractLayerWithRealImplementsShouldCreateTwiceForSameFileCorrectly()
{
var output = GetRandomFolder();
@@ -67,14 +67,14 @@ public void TestFileAbstractLayerWithRealImplementsShouldCreateTwiceForSameFileC
var fal2 = FileAbstractLayerBuilder.Default
.ReadFromOutput(fal)
.Create();
- Assert.True(fal2.Exists("temp.txt"));
- Assert.Equal("😆", fal2.ReadAllText("temp.txt"));
- Assert.Equal(new[] { (RelativePath)"~/temp.txt" }, fal2.GetAllInputFiles());
- Assert.True(File.Exists(Path.Combine(output, "temp.txt")));
+ Assert.IsTrue(fal2.Exists("temp.txt"));
+ Assert.AreEqual("😆", fal2.ReadAllText("temp.txt"));
+ CollectionAssert.AreEqual(new[] { (RelativePath)"~/temp.txt" }, fal2.GetAllInputFiles().ToArray());
+ Assert.IsTrue(File.Exists(Path.Combine(output, "temp.txt")));
Environment.SetEnvironmentVariable("output", null);
}
- [Fact]
+ [TestMethod]
public void TestFileAbstractLayerWithRealImplementsShouldCopyThenCreateForSameFileCorrectly()
{
var input = GetRandomFolder();
@@ -92,11 +92,11 @@ public void TestFileAbstractLayerWithRealImplementsShouldCopyThenCreateForSameFi
var fal2 = FileAbstractLayerBuilder.Default
.ReadFromOutput(fal)
.Create();
- Assert.True(fal2.Exists("copy.txt"));
- Assert.Equal("😁", fal2.ReadAllText("copy.txt"));
- Assert.Equal(new[] { (RelativePath)"~/copy.txt" }, fal2.GetAllInputFiles());
- Assert.True(File.Exists(Path.Combine(output, "copy.txt")));
- Assert.Equal("😄", File.ReadAllText(Path.Combine(input, "temp.txt")));
+ Assert.IsTrue(fal2.Exists("copy.txt"));
+ Assert.AreEqual("😁", fal2.ReadAllText("copy.txt"));
+ CollectionAssert.AreEqual(new[] { (RelativePath)"~/copy.txt" }, fal2.GetAllInputFiles().ToArray());
+ Assert.IsTrue(File.Exists(Path.Combine(output, "copy.txt")));
+ Assert.AreEqual("😄", File.ReadAllText(Path.Combine(input, "temp.txt")));
Environment.SetEnvironmentVariable("input", null);
Environment.SetEnvironmentVariable("output", null);
}
diff --git a/test/Docfx.Common.Tests/GitUtilityTest.cs b/test/Docfx.Common.Tests/GitUtilityTest.cs
index 7a08ac5c7ea..15220482988 100644
--- a/test/Docfx.Common.Tests/GitUtilityTest.cs
+++ b/test/Docfx.Common.Tests/GitUtilityTest.cs
@@ -2,11 +2,11 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Docfx.Common.Git;
-using Xunit;
namespace Docfx.Common.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class GitUtilityTest : IDisposable
{
private readonly string _originalBranchName;
@@ -22,26 +22,26 @@ public void Dispose()
Environment.SetEnvironmentVariable(EnvName, _originalBranchName);
}
- [Fact]
+ [TestMethod]
public void Environment_ForBranchName()
{
var info = GitUtility.TryGetFileDetail(Directory.GetCurrentDirectory());
- Assert.Equal("special-branch", info.Branch);
+ Assert.AreEqual("special-branch", info.Branch);
}
- [Theory]
- [InlineData("https://github.com/user/repo.git", "main", "path/to/file.cs", 0, "https://github.com/user/repo/blob/main/path/to/file.cs")]
- [InlineData("https://github.com/user/repo.git", "main", "path/to/file.cs", 10, "https://github.com/user/repo/blob/main/path/to/file.cs#L10")]
- [InlineData("https://bitbucket.org/user/repo.git", "main", "path/to/file.cs", 0, "https://bitbucket.org/user/repo/src/main/path/to/file.cs")]
- [InlineData("https://bitbucket.org/user/repo.git", "main", "path/to/file.cs", 10, "https://bitbucket.org/user/repo/src/main/path/to/file.cs#lines-10")]
- [InlineData("https://dev.azure.com/user/repo/_git/repo", "main", "path/to/file.cs", 0, "https://dev.azure.com/user/repo/_git/repo?path=path/to/file.cs&version=GBmain")]
- [InlineData("https://dev.azure.com/user/repo/_git/repo", "0123456789abcdef0123456789abcdef01234567", "path/to/file.cs", 10, "https://dev.azure.com/user/repo/_git/repo?path=path/to/file.cs&version=GC0123456789abcdef0123456789abcdef01234567&line=10")]
- [InlineData("https://user.visualstudio.com/repo/_git/repo", "main", "path/to/file.cs", 0, "https://user.visualstudio.com/repo/_git/repo?path=path/to/file.cs&version=GBmain")]
- [InlineData("https://user.visualstudio.com/repo/_git/repo", "0123456789abcdef0123456789abcdef01234567", "path/to/file.cs", 10, "https://user.visualstudio.com/repo/_git/repo?path=path/to/file.cs&version=GC0123456789abcdef0123456789abcdef01234567&line=10")]
- [InlineData("git@github.com:user/repo.git", "main", "path/to/file.cs", 0, "https://github.com/user/repo/blob/main/path/to/file.cs")]
- [InlineData("ssh://mseng@vs-ssh.visualstudio.com:22/FakeProject/_ssh/Docfx", "main", "path/to/file.cs", 0, "https://vs-ssh.visualstudio.com/FakeProject/_ssh/Docfx?path=path/to/file.cs&version=GBmain")]
- public static void GetSourceUrlTest(string repo, string branch, string path, int line, string result)
+ [TestMethod]
+ [DataRow("https://github.com/user/repo.git", "main", "path/to/file.cs", 0, "https://github.com/user/repo/blob/main/path/to/file.cs")]
+ [DataRow("https://github.com/user/repo.git", "main", "path/to/file.cs", 10, "https://github.com/user/repo/blob/main/path/to/file.cs#L10")]
+ [DataRow("https://bitbucket.org/user/repo.git", "main", "path/to/file.cs", 0, "https://bitbucket.org/user/repo/src/main/path/to/file.cs")]
+ [DataRow("https://bitbucket.org/user/repo.git", "main", "path/to/file.cs", 10, "https://bitbucket.org/user/repo/src/main/path/to/file.cs#lines-10")]
+ [DataRow("https://dev.azure.com/user/repo/_git/repo", "main", "path/to/file.cs", 0, "https://dev.azure.com/user/repo/_git/repo?path=path/to/file.cs&version=GBmain")]
+ [DataRow("https://dev.azure.com/user/repo/_git/repo", "0123456789abcdef0123456789abcdef01234567", "path/to/file.cs", 10, "https://dev.azure.com/user/repo/_git/repo?path=path/to/file.cs&version=GC0123456789abcdef0123456789abcdef01234567&line=10")]
+ [DataRow("https://user.visualstudio.com/repo/_git/repo", "main", "path/to/file.cs", 0, "https://user.visualstudio.com/repo/_git/repo?path=path/to/file.cs&version=GBmain")]
+ [DataRow("https://user.visualstudio.com/repo/_git/repo", "0123456789abcdef0123456789abcdef01234567", "path/to/file.cs", 10, "https://user.visualstudio.com/repo/_git/repo?path=path/to/file.cs&version=GC0123456789abcdef0123456789abcdef01234567&line=10")]
+ [DataRow("git@github.com:user/repo.git", "main", "path/to/file.cs", 0, "https://github.com/user/repo/blob/main/path/to/file.cs")]
+ [DataRow("ssh://mseng@vs-ssh.visualstudio.com:22/FakeProject/_ssh/Docfx", "main", "path/to/file.cs", 0, "https://vs-ssh.visualstudio.com/FakeProject/_ssh/Docfx?path=path/to/file.cs&version=GBmain")]
+ public void GetSourceUrlTest(string repo, string branch, string path, int line, string result)
{
- Assert.Equal(result, GitUtility.GetSourceUrl(new(repo, branch, path, line)));
+ Assert.AreEqual(result, GitUtility.GetSourceUrl(new(repo, branch, path, line)));
}
}
diff --git a/test/Docfx.Common.Tests/GitUtilityWithSourceRepoUrlTest.cs b/test/Docfx.Common.Tests/GitUtilityWithSourceRepoUrlTest.cs
index 1b949ae9a1d..3474520adef 100644
--- a/test/Docfx.Common.Tests/GitUtilityWithSourceRepoUrlTest.cs
+++ b/test/Docfx.Common.Tests/GitUtilityWithSourceRepoUrlTest.cs
@@ -2,11 +2,11 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Docfx.Common.Git;
-using Xunit;
namespace Docfx.Common.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class GitUtilityWithSourceRepositoryUrlTest : IDisposable
{
private readonly string _originalBranchName;
@@ -34,15 +34,15 @@ public void Dispose()
Environment.SetEnvironmentVariable(DOCFX_SOURCE_REPOSITORY_URL, _originalSourceRepoUrl);
}
- [Fact]
+ [TestMethod]
public void TryGetFileDetailTest()
{
var info = GitUtility.TryGetFileDetail(Directory.GetCurrentDirectory());
- Assert.Equal(BRANCH_NAME, info.Branch);
- Assert.Equal("https://github.com/dotnet/docfx", info.Repo);
+ Assert.AreEqual(BRANCH_NAME, info.Branch);
+ Assert.AreEqual("https://github.com/dotnet/docfx", info.Repo);
}
- [Fact]
+ [TestMethod]
public void RawContentUrlToContentUrlTest()
{
string rawUrl = "https://raw.githubusercontent.com/dotnet/docfx/main/README.md";
@@ -50,15 +50,15 @@ public void RawContentUrlToContentUrlTest()
var result = GitUtility.RawContentUrlToContentUrl(rawUrl);
- Assert.Equal(expected, result);
+ Assert.AreEqual(expected, result);
}
- [Theory]
- [InlineData("https://github.com/user/repo.git", "main", "path/to/file.cs", 0, $"https://github.com/{ORG_NAME}/{REPO_NAME}/blob/main/path/to/file.cs")]
- [InlineData("https://github.com/user/repo.git", "main", "path/to/file.cs", 10, $"https://github.com/{ORG_NAME}/{REPO_NAME}/blob/main/path/to/file.cs#L10")]
- [InlineData("git@github.com:user/repo.git", "main", "path/to/file.cs", 0, $"https://github.com/{ORG_NAME}/{REPO_NAME}/blob/main/path/to/file.cs")]
+ [TestMethod]
+ [DataRow("https://github.com/user/repo.git", "main", "path/to/file.cs", 0, $"https://github.com/{ORG_NAME}/{REPO_NAME}/blob/main/path/to/file.cs")]
+ [DataRow("https://github.com/user/repo.git", "main", "path/to/file.cs", 10, $"https://github.com/{ORG_NAME}/{REPO_NAME}/blob/main/path/to/file.cs#L10")]
+ [DataRow("git@github.com:user/repo.git", "main", "path/to/file.cs", 0, $"https://github.com/{ORG_NAME}/{REPO_NAME}/blob/main/path/to/file.cs")]
public void GetSourceUrlTest_GitHub(string repo, string branch, string path, int line, string result)
{
- Assert.Equal(result, GitUtility.GetSourceUrl(new(repo, branch, path, line)));
+ Assert.AreEqual(result, GitUtility.GetSourceUrl(new(repo, branch, path, line)));
}
}
diff --git a/test/Docfx.Common.Tests/JObjectMergerTest.cs b/test/Docfx.Common.Tests/JObjectMergerTest.cs
index b52773d0e5c..d3884fd1540 100644
--- a/test/Docfx.Common.Tests/JObjectMergerTest.cs
+++ b/test/Docfx.Common.Tests/JObjectMergerTest.cs
@@ -5,14 +5,13 @@
using Newtonsoft.Json.Linq;
-using Xunit;
-
namespace Docfx.Common.Tests;
-[Trait("Related", "JObjectMerger")]
+[TestProperty("Related", "JObjectMerger")]
+[TestClass]
public class JObjectMergerTest
{
- [Fact]
+ [TestMethod]
public void TestJObjectMergerWithBasicScenarios()
{
object source = new JObject
@@ -43,11 +42,11 @@ public void TestJObjectMergerWithBasicScenarios()
new ReflectionEntityMerger()))
.Merge(ref source, overrides);
var sourceJObj = source as JObject;
- Assert.NotNull(sourceJObj);
- Assert.Equal("Overrides1", sourceJObj["StringKey"]);
- Assert.Equal("Source2", sourceJObj["AdditionalSourceKey"]);
- Assert.Equal("Overrides2", sourceJObj["AdditionalOverridesKey"]);
- Assert.Equal("Overrides3", sourceJObj["JObjectValue"]["CommonKey"]);
- Assert.Equal("Overrides4", sourceJObj["JObjectValue"]["AdditionalOverridesKey"]);
+ Assert.IsNotNull(sourceJObj);
+ Assert.AreEqual("Overrides1", sourceJObj["StringKey"]);
+ Assert.AreEqual("Source2", sourceJObj["AdditionalSourceKey"]);
+ Assert.AreEqual("Overrides2", sourceJObj["AdditionalOverridesKey"]);
+ Assert.AreEqual("Overrides3", sourceJObj["JObjectValue"]["CommonKey"]);
+ Assert.AreEqual("Overrides4", sourceJObj["JObjectValue"]["AdditionalOverridesKey"]);
}
}
diff --git a/test/Docfx.Common.Tests/PathUtilityTest.cs b/test/Docfx.Common.Tests/PathUtilityTest.cs
index 5dba7472edd..7dd172e08a5 100644
--- a/test/Docfx.Common.Tests/PathUtilityTest.cs
+++ b/test/Docfx.Common.Tests/PathUtilityTest.cs
@@ -2,14 +2,14 @@
// The .NET Foundation licenses this file to you under the MIT license.
using FluentAssertions;
-using Xunit;
namespace Docfx.Common.Tests;
+[TestClass]
public class PathUtilityTest
{
- [Theory]
- [MemberData(nameof(TestData.AdditionalTests), MemberType = typeof(TestData))]
+ [TestMethod]
+ [DynamicData(nameof(TestData.AdditionalTests), typeof(TestData))]
public void TestMakeRelativePath(string basePath, string targetPath, string expected)
{
// Act
@@ -19,8 +19,8 @@ public void TestMakeRelativePath(string basePath, string targetPath, string expe
result.Should().Be(expected);
}
- [Theory]
- [MemberData(nameof(TestData.EscapedPaths), MemberType = typeof(TestData))]
+ [TestMethod]
+ [DynamicData(nameof(TestData.EscapedPaths), typeof(TestData))]
public void TestMakeRelativePathWithEncodedPath(string inputPath)
{
// Arrange
@@ -36,17 +36,17 @@ public void TestMakeRelativePathWithEncodedPath(string inputPath)
private static class TestData
{
- public static TheoryData AdditionalTests = new()
- {
- { "/a/b/d", "/a/b/file.md", "../file.md"}, // root relative path
- { "~/a/b/d", "~/a/b/file.md", "../file.md"}, // user home directory relative path
- { "./", @"\\UNCPath\file.md", "//UNCPath/file.md"}, // UNC path
- { "./", "file:///C:/temp/test.md", "file:/C:/temp/test.md"}, // `file:` Uri path
- { "file:///C:/temp", "file:///C:/temp/test.md", "test.md"}, // `file:` Uri relative path
- { "/temp/dir", "/temp/dir/subdir/", "subdir/"}, // If target path endsWith directory separator char. resolved path should contain directory separator.
- };
-
- public static TheoryData EscapedPaths =
+ public static IEnumerable<(string, string, string)> AdditionalTests =>
+ [
+ ( "/a/b/d", "/a/b/file.md", "../file.md"), // root relative path
+ ( "~/a/b/d", "~/a/b/file.md", "../file.md"), // user home directory relative path
+ ( "./", @"\\UNCPath\file.md", "//UNCPath/file.md"), // UNC path
+ ( "./", "file:///C:/temp/test.md", "file:/C:/temp/test.md"), // `file:` Uri path
+ ( "file:///C:/temp", "file:///C:/temp/test.md", "test.md"), // `file:` Uri relative path
+ ( "/temp/dir", "/temp/dir/subdir/", "subdir/"), // If target path endsWith directory separator char. resolved path should contain directory separator.
+ ];
+
+ public static IEnumerable EscapedPaths =>
[
"EscapedHypen(%2D).md", // Contains escaped hypen char
"EscapedSpace(%20)_with_NonAsciiChar(α).md", // Contains escaped space char and non-unicode char
diff --git a/test/Docfx.Common.Tests/ReflectionEntityMergerTest.cs b/test/Docfx.Common.Tests/ReflectionEntityMergerTest.cs
index 0cf58d41f20..f5e39e39d2b 100644
--- a/test/Docfx.Common.Tests/ReflectionEntityMergerTest.cs
+++ b/test/Docfx.Common.Tests/ReflectionEntityMergerTest.cs
@@ -2,14 +2,14 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Docfx.Common.EntityMergers;
-using Xunit;
namespace Docfx.Common.Tests;
-[Trait("Related", "ReflectionEntityMerger")]
+[TestProperty("Related", "ReflectionEntityMerger")]
+[TestClass]
public class ReflectionEntityMergerTest
{
- [Fact]
+ [TestMethod]
public void TestReflectionEntityMergerWithBasicScenarios()
{
var sample = new BasicSample
@@ -37,13 +37,13 @@ public void TestReflectionEntityMergerWithBasicScenarios()
new MergerFacade(
new ReflectionEntityMerger())
.Merge(ref sample, overrides);
- Assert.Equal(10, sample.IntValue);
- Assert.Equal(2, sample.NullableIntValue);
- Assert.Equal("abc", sample.Text);
- Assert.Equal(1, sample.Nested.IntValue);
- Assert.Equal(22, sample.Nested.NullableIntValue);
- Assert.Equal("Wow!", sample.Nested.Text);
- Assert.Same(overrides.Nested.Nested, sample.Nested.Nested);
+ Assert.AreEqual(10, sample.IntValue);
+ Assert.AreEqual(2, sample.NullableIntValue);
+ Assert.AreEqual("abc", sample.Text);
+ Assert.AreEqual(1, sample.Nested.IntValue);
+ Assert.AreEqual(22, sample.Nested.NullableIntValue);
+ Assert.AreEqual("Wow!", sample.Nested.Text);
+ Assert.AreSame(overrides.Nested.Nested, sample.Nested.Nested);
}
public class BasicSample
@@ -54,7 +54,7 @@ public class BasicSample
public BasicSample Nested { get; set; }
}
- [Fact]
+ [TestMethod]
public void TestReflectionEntityMergerWhenMergeNullOrDefault()
{
var sample = new MergeOptionSample
@@ -85,15 +85,15 @@ public void TestReflectionEntityMergerWhenMergeNullOrDefault()
new KeyedListMerger(
new ReflectionEntityMerger()))
.Merge(ref sample, overrides);
- Assert.Equal(10, sample.IntValue);
- Assert.Equal(2, sample.NullableIntValue);
- Assert.Null(sample.Text);
- Assert.Same(overrides.Array1, sample.Array1);
- Assert.Null(sample.Array2);
- Assert.Equal(0, sample.Nested.IntValue);
- Assert.Equal(2, sample.Nested.NullableIntValue);
- Assert.Equal("Wow!", sample.Nested.Text);
- Assert.Null(sample.Nested.Nested);
+ Assert.AreEqual(10, sample.IntValue);
+ Assert.AreEqual(2, sample.NullableIntValue);
+ Assert.IsNull(sample.Text);
+ Assert.AreSame(overrides.Array1, sample.Array1);
+ Assert.IsNull(sample.Array2);
+ Assert.AreEqual(0, sample.Nested.IntValue);
+ Assert.AreEqual(2, sample.Nested.NullableIntValue);
+ Assert.AreEqual("Wow!", sample.Nested.Text);
+ Assert.IsNull(sample.Nested.Nested);
}
public class MergeOptionSample
@@ -112,7 +112,7 @@ public class MergeOptionSample
public MergeOptionSample Nested { get; set; }
}
- [Fact]
+ [TestMethod]
public void TestReflectionEntityMergerWhenMergeListWithKey()
{
var sample = new List
@@ -134,9 +134,9 @@ public void TestReflectionEntityMergerWhenMergeListWithKey()
ref sample,
overrides,
new Dictionary { { "separator", "->" }, });
- Assert.Equal("O1", sample[0].Text);
- Assert.Equal("O2->N2", sample[1].Text);
- Assert.Equal("O3->N3", sample[2].Text);
+ Assert.AreEqual("O1", sample[0].Text);
+ Assert.AreEqual("O2->N2", sample[1].Text);
+ Assert.AreEqual("O3->N3", sample[2].Text);
}
public class ListItemSample
@@ -159,7 +159,7 @@ public void Merge(ref object source, object overrides, IMergeContext context)
}
}
- [Fact]
+ [TestMethod]
public void TestMergeDictionary()
{
var sample = new Dictionary
@@ -219,22 +219,22 @@ public void TestMergeDictionary()
ref sample,
overrides);
- Assert.Equal(10, sample["a"].IntValue);
- Assert.Equal(2, sample["a"].NullableIntValue);
- Assert.Equal("abc", sample["a"].Text);
- Assert.Equal(1, sample["a"].Nested.IntValue);
- Assert.Equal(22, sample["a"].Nested.NullableIntValue);
- Assert.Equal("Wow!", sample["a"].Nested.Text);
- Assert.Same(overrides["a"].Nested.Nested, sample["a"].Nested.Nested);
+ Assert.AreEqual(10, sample["a"].IntValue);
+ Assert.AreEqual(2, sample["a"].NullableIntValue);
+ Assert.AreEqual("abc", sample["a"].Text);
+ Assert.AreEqual(1, sample["a"].Nested.IntValue);
+ Assert.AreEqual(22, sample["a"].Nested.NullableIntValue);
+ Assert.AreEqual("Wow!", sample["a"].Nested.Text);
+ Assert.AreSame(overrides["a"].Nested.Nested, sample["a"].Nested.Nested);
- Assert.Equal(101, sample["b"].IntValue);
- Assert.Null(sample["b"].NullableIntValue);
- Assert.Equal("xyz", sample["b"].Text);
- Assert.Equal(102, sample["b"].Nested.IntValue);
- Assert.Equal(2, sample["b"].Nested.NullableIntValue);
- Assert.Null(sample["b"].Nested.Text);
- Assert.Null(sample["b"].Nested.Nested);
+ Assert.AreEqual(101, sample["b"].IntValue);
+ Assert.IsNull(sample["b"].NullableIntValue);
+ Assert.AreEqual("xyz", sample["b"].Text);
+ Assert.AreEqual(102, sample["b"].Nested.IntValue);
+ Assert.AreEqual(2, sample["b"].Nested.NullableIntValue);
+ Assert.IsNull(sample["b"].Nested.Text);
+ Assert.IsNull(sample["b"].Nested.Nested);
- Assert.Same(overrides["c"], sample["c"]);
+ Assert.AreSame(overrides["c"], sample["c"]);
}
}
diff --git a/test/Docfx.Common.Tests/RelativePathTest.cs b/test/Docfx.Common.Tests/RelativePathTest.cs
index 5fa8fc4f60c..fdaa6e7d134 100644
--- a/test/Docfx.Common.Tests/RelativePathTest.cs
+++ b/test/Docfx.Common.Tests/RelativePathTest.cs
@@ -1,115 +1,114 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Xunit;
-
namespace Docfx.Common.Tests;
-[Trait("Related", "RelativePath")]
+[TestProperty("Related", "RelativePath")]
+[TestClass]
public class RelativePathTest
{
- [Fact]
+ [TestMethod]
public void TestRelativePathWithBasicScenarios()
{
{
var s = "../a/b.txt";
var r = (RelativePath)s;
- Assert.NotNull(r);
- Assert.Equal(1, r.ParentDirectoryCount);
- Assert.Equal(s, r.ToString());
- Assert.Equal(s, r);
+ Assert.IsNotNull(r);
+ Assert.AreEqual(1, r.ParentDirectoryCount);
+ Assert.AreEqual(s, r.ToString());
+ Assert.AreEqual(s, r);
}
{
var s = "a.txt";
var r = (RelativePath)s;
- Assert.NotNull(r);
- Assert.Equal(0, r.ParentDirectoryCount);
- Assert.Equal(s, r.ToString());
- Assert.Equal(s, r);
+ Assert.IsNotNull(r);
+ Assert.AreEqual(0, r.ParentDirectoryCount);
+ Assert.AreEqual(s, r.ToString());
+ Assert.AreEqual(s, r);
}
{
var s = "a.dir/";
var r = (RelativePath)s;
- Assert.NotNull(r);
- Assert.Equal(0, r.ParentDirectoryCount);
- Assert.Equal(s, r.ToString());
- Assert.Equal(s, r);
+ Assert.IsNotNull(r);
+ Assert.AreEqual(0, r.ParentDirectoryCount);
+ Assert.AreEqual(s, r.ToString());
+ Assert.AreEqual(s, r);
}
{
var s = @"a\b\.\d\..\\c.dir\";
var r = (RelativePath)s;
- Assert.NotNull(r);
- Assert.Equal(0, r.ParentDirectoryCount);
- Assert.Equal("a/b/c.dir/", r.ToString());
- Assert.Equal("a/b/c.dir/", r);
+ Assert.IsNotNull(r);
+ Assert.AreEqual(0, r.ParentDirectoryCount);
+ Assert.AreEqual("a/b/c.dir/", r.ToString());
+ Assert.AreEqual("a/b/c.dir/", r);
}
{
var s = "";
var r = (RelativePath)s;
- Assert.NotNull(r);
- Assert.Equal(0, r.ParentDirectoryCount);
- Assert.Equal(s, r.ToString());
- Assert.Equal(s, r);
- Assert.Same(RelativePath.Empty, r);
+ Assert.IsNotNull(r);
+ Assert.AreEqual(0, r.ParentDirectoryCount);
+ Assert.AreEqual(s, r.ToString());
+ Assert.AreEqual(s, r);
+ Assert.AreSame(RelativePath.Empty, r);
}
{
var s = ".";
var r = (RelativePath)s;
- Assert.NotNull(r);
- Assert.Equal(0, r.ParentDirectoryCount);
- Assert.Equal(string.Empty, r.ToString());
- Assert.Equal(string.Empty, r);
- Assert.Same(RelativePath.Empty, r);
+ Assert.IsNotNull(r);
+ Assert.AreEqual(0, r.ParentDirectoryCount);
+ Assert.AreEqual(string.Empty, r.ToString());
+ Assert.AreEqual(string.Empty, r);
+ Assert.AreSame(RelativePath.Empty, r);
}
{
var s = "a/../";
var r = (RelativePath)s;
- Assert.NotNull(r);
- Assert.Equal(0, r.ParentDirectoryCount);
- Assert.Equal(string.Empty, r.ToString());
- Assert.Equal(string.Empty, r);
- Assert.Same(RelativePath.Empty, r);
+ Assert.IsNotNull(r);
+ Assert.AreEqual(0, r.ParentDirectoryCount);
+ Assert.AreEqual(string.Empty, r.ToString());
+ Assert.AreEqual(string.Empty, r);
+ Assert.AreSame(RelativePath.Empty, r);
}
}
- [Theory]
- [InlineData("d/e.txt", "a/b/c/", "a/b/c/d/e.txt")]
- [InlineData("../d/e.txt", "a/b/c/", "a/b/d/e.txt")]
- [InlineData("d/e.txt", "a/b/c.txt", "a/b/d/e.txt")]
- [InlineData("../e.txt", "a/b/c.txt", "a/e.txt")]
- [InlineData("../e.txt", "../c.txt", "../../e.txt")]
- [InlineData("../a.txt", "", "../a.txt")]
- [InlineData("", "../a/b.txt", "../a/")]
- [InlineData("../", "a/", "")]
- [InlineData("", "", "")]
- [InlineData("~/a.txt", "a/b/c/", "~/a.txt")]
- [InlineData("d.txt", "~/a/b/c/", "~/a/b/c/d.txt")]
+ [TestMethod]
+ [DataRow("d/e.txt", "a/b/c/", "a/b/c/d/e.txt")]
+ [DataRow("../d/e.txt", "a/b/c/", "a/b/d/e.txt")]
+ [DataRow("d/e.txt", "a/b/c.txt", "a/b/d/e.txt")]
+ [DataRow("../e.txt", "a/b/c.txt", "a/e.txt")]
+ [DataRow("../e.txt", "../c.txt", "../../e.txt")]
+ [DataRow("../a.txt", "", "../a.txt")]
+ [DataRow("", "../a/b.txt", "../a/")]
+ [DataRow("../", "a/", "")]
+ [DataRow("", "", "")]
+ [DataRow("~/a.txt", "a/b/c/", "~/a.txt")]
+ [DataRow("d.txt", "~/a/b/c/", "~/a/b/c/d.txt")]
public void TestRelativePathBasedOn(string thisPath, string basedOnPath, string expected)
{
var actual = ((RelativePath)thisPath).BasedOn((RelativePath)basedOnPath);
- Assert.NotNull(actual);
- Assert.Equal(expected, actual.ToString());
+ Assert.IsNotNull(actual);
+ Assert.AreEqual(expected, actual.ToString());
}
- [Theory]
- [InlineData("a/b/c.txt", "d/e.txt", "../a/b/c.txt")]
- [InlineData("a/b/c.txt", "a/d.txt", "b/c.txt")]
- [InlineData("../../a.txt", "../b.txt", "../a.txt")]
- [InlineData("../../a.txt", "../b/c.txt", "../../a.txt")]
- [InlineData("a.txt", "../b.txt", null)]
- [InlineData("a/b.txt", "", "a/b.txt")]
- [InlineData("", "a/b.txt", "../")]
- [InlineData("a/", "a/", "")]
- [InlineData("", "", "")]
- [InlineData("~/a/b.txt", "~/a/c.txt", "b.txt")]
- [InlineData("~/a/b.txt", "a/c.txt", "~/a/b.txt")]
+ [TestMethod]
+ [DataRow("a/b/c.txt", "d/e.txt", "../a/b/c.txt")]
+ [DataRow("a/b/c.txt", "a/d.txt", "b/c.txt")]
+ [DataRow("../../a.txt", "../b.txt", "../a.txt")]
+ [DataRow("../../a.txt", "../b/c.txt", "../../a.txt")]
+ [DataRow("a.txt", "../b.txt", null)]
+ [DataRow("a/b.txt", "", "a/b.txt")]
+ [DataRow("", "a/b.txt", "../")]
+ [DataRow("a/", "a/", "")]
+ [DataRow("", "", "")]
+ [DataRow("~/a/b.txt", "~/a/c.txt", "b.txt")]
+ [DataRow("~/a/b.txt", "a/c.txt", "~/a/b.txt")]
public void TestRelativePathMakeRelativeTo(string thisPath, string relativeToPath, string expected)
{
try
{
var actual = ((RelativePath)thisPath).MakeRelativeTo((RelativePath)relativeToPath);
- Assert.NotNull(actual);
- Assert.Equal(expected, actual.ToString());
+ Assert.IsNotNull(actual);
+ Assert.AreEqual(expected, actual.ToString());
}
catch (NotSupportedException)
{
@@ -120,28 +119,28 @@ public void TestRelativePathMakeRelativeTo(string thisPath, string relativeToPat
}
}
- [Theory]
- [InlineData("a/b/c", "a/b/")]
- [InlineData("~/a/b/c", "~/a/b/")]
- [InlineData("~/../a/b/c", "~/../a/b/")]
- [InlineData("~/../a/", "~/../a/")]
- [InlineData("~/../", "~/../")]
- [InlineData("~/a/../b", "~/")]
+ [TestMethod]
+ [DataRow("a/b/c", "a/b/")]
+ [DataRow("~/a/b/c", "~/a/b/")]
+ [DataRow("~/../a/b/c", "~/../a/b/")]
+ [DataRow("~/../a/", "~/../a/")]
+ [DataRow("~/../", "~/../")]
+ [DataRow("~/a/../b", "~/")]
public void TestRelativePathGetDirectoryPath(string file, string expected)
{
var relativePath = (RelativePath)file;
var result = relativePath.GetDirectoryPath();
- Assert.Equal(expected, result.ToString());
+ Assert.AreEqual(expected, result.ToString());
}
- [Fact]
+ [TestMethod]
public void TestRelativePathGetDirectoryPathWithInvalidParentDirectoryShouldFail()
{
var relativePath = (RelativePath)"~/..";
- Assert.Throws(relativePath.GetDirectoryPath);
+ Assert.Throws(() => relativePath.GetDirectoryPath());
}
- [Fact]
+ [TestMethod]
public void TestRelativePathChangeFileNameWithInvalidFileNameShouldFail()
{
var relativePath = (RelativePath)"~/a/b/c";
@@ -150,18 +149,18 @@ public void TestRelativePathChangeFileNameWithInvalidFileNameShouldFail()
Assert.Throws(() => relativePath.ChangeFileName("../d/"));
}
- [Theory]
- [InlineData("a/b/c", "d", "a/b/d")]
- [InlineData("~/a/b/c", "d", "~/a/b/d")]
- [InlineData("../a/b/c", "d", "../a/b/d")]
+ [TestMethod]
+ [DataRow("a/b/c", "d", "a/b/d")]
+ [DataRow("~/a/b/c", "d", "~/a/b/d")]
+ [DataRow("../a/b/c", "d", "../a/b/d")]
public void TestRelativePathChangeFileName(string file, string changedFileName, string expected)
{
var relativePath = (RelativePath)file;
var result = relativePath.ChangeFileName(changedFileName);
- Assert.Equal(expected, result.ToString());
+ Assert.AreEqual(expected, result.ToString());
}
- [Fact]
+ [TestMethod]
public void TestRelativePathOperatorAdd()
{
// a/b/c/ + d/e.txt = a/b/c/d/e.txt
@@ -169,89 +168,89 @@ public void TestRelativePathOperatorAdd()
var r1 = (RelativePath)"a/b/c/";
var r2 = (RelativePath)"d/e.txt";
var r3 = r1 + r2;
- Assert.NotNull(r3);
- Assert.Equal(0, r3.ParentDirectoryCount);
- Assert.Equal("a/b/c/d/e.txt", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(0, r3.ParentDirectoryCount);
+ Assert.AreEqual("a/b/c/d/e.txt", r3.ToString());
}
// a/b/c/ + ../d/e.txt = a/b/d/e.txt
{
var r1 = (RelativePath)"a/b/c/";
var r2 = (RelativePath)"../d/e.txt";
var r3 = r1 + r2;
- Assert.NotNull(r3);
- Assert.Equal(0, r3.ParentDirectoryCount);
- Assert.Equal("a/b/d/e.txt", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(0, r3.ParentDirectoryCount);
+ Assert.AreEqual("a/b/d/e.txt", r3.ToString());
}
// a/b/c.txt + d/e.txt = a/b/d/e.txt
{
var r1 = (RelativePath)"a/b/c.txt";
var r2 = (RelativePath)"d/e.txt";
var r3 = r1 + r2;
- Assert.NotNull(r3);
- Assert.Equal(0, r3.ParentDirectoryCount);
- Assert.Equal("a/b/d/e.txt", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(0, r3.ParentDirectoryCount);
+ Assert.AreEqual("a/b/d/e.txt", r3.ToString());
}
// a/b/c.txt + ../e.txt = a/e.txt
{
var r1 = (RelativePath)"a/b/c.txt";
var r2 = (RelativePath)"../e.txt";
var r3 = r1 + r2;
- Assert.NotNull(r3);
- Assert.Equal(0, r3.ParentDirectoryCount);
- Assert.Equal("a/e.txt", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(0, r3.ParentDirectoryCount);
+ Assert.AreEqual("a/e.txt", r3.ToString());
}
// ../c.txt + ../e.txt = ../../e.txt
{
var r1 = (RelativePath)"../c.txt";
var r2 = (RelativePath)"../e.txt";
var r3 = r1 + r2;
- Assert.NotNull(r3);
- Assert.Equal(2, r3.ParentDirectoryCount);
- Assert.Equal("../../e.txt", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(2, r3.ParentDirectoryCount);
+ Assert.AreEqual("../../e.txt", r3.ToString());
}
// "" + ../a.txt = ../a.txt
{
var r1 = (RelativePath)"";
var r2 = (RelativePath)"../a.txt";
var r3 = r1 + r2;
- Assert.NotNull(r3);
- Assert.Equal(1, r3.ParentDirectoryCount);
- Assert.Equal("../a.txt", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(1, r3.ParentDirectoryCount);
+ Assert.AreEqual("../a.txt", r3.ToString());
}
// ../a/b.txt + "" = ../a/
{
var r1 = (RelativePath)"../a/b.txt";
var r2 = (RelativePath)"";
var r3 = r1 + r2;
- Assert.NotNull(r3);
- Assert.Equal(1, r3.ParentDirectoryCount);
- Assert.Equal("../a/", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(1, r3.ParentDirectoryCount);
+ Assert.AreEqual("../a/", r3.ToString());
}
// a/ + ../ = ""
{
var r1 = (RelativePath)"a/";
var r2 = (RelativePath)"../";
var r3 = r1 + r2;
- Assert.NotNull(r3);
- Assert.Equal(0, r3.ParentDirectoryCount);
- Assert.Equal("", r3.ToString());
- Assert.Same(RelativePath.Empty, r3);
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(0, r3.ParentDirectoryCount);
+ Assert.AreEqual("", r3.ToString());
+ Assert.AreSame(RelativePath.Empty, r3);
}
// "" + "" = ""
{
var r1 = (RelativePath)"";
var r2 = (RelativePath)"";
var r3 = r1 + r2;
- Assert.NotNull(r3);
- Assert.Equal(0, r3.ParentDirectoryCount);
- Assert.Equal("", r3.ToString());
- Assert.Same(RelativePath.Empty, r1);
- Assert.Same(RelativePath.Empty, r2);
- Assert.Same(RelativePath.Empty, r3);
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(0, r3.ParentDirectoryCount);
+ Assert.AreEqual("", r3.ToString());
+ Assert.AreSame(RelativePath.Empty, r1);
+ Assert.AreSame(RelativePath.Empty, r2);
+ Assert.AreSame(RelativePath.Empty, r3);
}
}
- [Fact]
+ [TestMethod]
public void TestRelativePathOperatorSub()
{
// a/b/c.txt - d/e.txt = ../a/b/c.txt
@@ -259,86 +258,86 @@ public void TestRelativePathOperatorSub()
var r1 = (RelativePath)"a/b/c.txt";
var r2 = (RelativePath)"d/e.txt";
var r3 = r1 - r2;
- Assert.NotNull(r3);
- Assert.Equal(1, r3.ParentDirectoryCount);
- Assert.Equal("../a/b/c.txt", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(1, r3.ParentDirectoryCount);
+ Assert.AreEqual("../a/b/c.txt", r3.ToString());
}
// a/b/c.txt - a/d.txt = b/c.txt
{
var r1 = (RelativePath)"a/b/c.txt";
var r2 = (RelativePath)"a/d.txt";
var r3 = r1 - r2;
- Assert.NotNull(r3);
- Assert.Equal(0, r3.ParentDirectoryCount);
- Assert.Equal("b/c.txt", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(0, r3.ParentDirectoryCount);
+ Assert.AreEqual("b/c.txt", r3.ToString());
}
// ../../a.txt - ../b.txt = ../a.txt
{
var r1 = (RelativePath)"../../a.txt";
var r2 = (RelativePath)"../b.txt";
var r3 = r1 - r2;
- Assert.NotNull(r3);
- Assert.Equal(1, r3.ParentDirectoryCount);
- Assert.Equal("../a.txt", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(1, r3.ParentDirectoryCount);
+ Assert.AreEqual("../a.txt", r3.ToString());
}
// ../../a.txt - ../b/c.txt = ../../a.txt
{
var r1 = (RelativePath)"../../a.txt";
var r2 = (RelativePath)"../b/c.txt";
var r3 = r1 - r2;
- Assert.NotNull(r3);
- Assert.Equal(2, r3.ParentDirectoryCount);
- Assert.Equal("../../a.txt", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(2, r3.ParentDirectoryCount);
+ Assert.AreEqual("../../a.txt", r3.ToString());
}
// a.txt - ../b.txt = Oop...
{
var r1 = (RelativePath)"a.txt";
var r2 = (RelativePath)"../b.txt";
- Assert.Throws(() => r1 - r2);
+ Assert.Throws(() => _ = r1 - r2);
}
// a/b.txt - "" = a/b.txt
{
var r1 = (RelativePath)"a/b.txt";
var r2 = (RelativePath)"";
var r3 = r1 - r2;
- Assert.NotNull(r3);
- Assert.Equal(0, r3.ParentDirectoryCount);
- Assert.Equal("a/b.txt", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(0, r3.ParentDirectoryCount);
+ Assert.AreEqual("a/b.txt", r3.ToString());
}
// "" - a/b.txt = ../
{
var r1 = (RelativePath)"";
var r2 = (RelativePath)"a/b.txt";
var r3 = r1 - r2;
- Assert.NotNull(r3);
- Assert.Equal(1, r3.ParentDirectoryCount);
- Assert.Equal("../", r3.ToString());
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(1, r3.ParentDirectoryCount);
+ Assert.AreEqual("../", r3.ToString());
}
// "a/" - "a/" = ""
{
var r1 = (RelativePath)"a/";
var r2 = (RelativePath)"a/";
var r3 = r1 - r2;
- Assert.NotNull(r3);
- Assert.Equal(0, r3.ParentDirectoryCount);
- Assert.Equal("", r3.ToString());
- Assert.Same(RelativePath.Empty, r3);
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(0, r3.ParentDirectoryCount);
+ Assert.AreEqual("", r3.ToString());
+ Assert.AreSame(RelativePath.Empty, r3);
}
// "" - "" = ""
{
var r1 = (RelativePath)"";
var r2 = (RelativePath)"";
var r3 = r1 - r2;
- Assert.NotNull(r3);
- Assert.Equal(0, r3.ParentDirectoryCount);
- Assert.Equal("", r3.ToString());
- Assert.Same(RelativePath.Empty, r1);
- Assert.Same(RelativePath.Empty, r2);
- Assert.Same(RelativePath.Empty, r3);
+ Assert.IsNotNull(r3);
+ Assert.AreEqual(0, r3.ParentDirectoryCount);
+ Assert.AreEqual("", r3.ToString());
+ Assert.AreSame(RelativePath.Empty, r1);
+ Assert.AreSame(RelativePath.Empty, r2);
+ Assert.AreSame(RelativePath.Empty, r3);
}
}
- [Fact]
+ [TestMethod]
public void TestRelativePathRebase()
{
// a/b/c.txt rebase from x/y.txt to d/e.txt = ../x/a/b/c.txt
@@ -347,91 +346,91 @@ public void TestRelativePathRebase()
var from = (RelativePath)"x/y.txt";
var to = (RelativePath)"d/e.txt";
var r2 = r1.Rebase(from, to);
- Assert.NotNull(r2);
- Assert.Equal(1, r2.ParentDirectoryCount);
- Assert.Equal("../x/a/b/c.txt", r2.ToString());
+ Assert.IsNotNull(r2);
+ Assert.AreEqual(1, r2.ParentDirectoryCount);
+ Assert.AreEqual("../x/a/b/c.txt", r2.ToString());
}
}
- [Fact]
+ [TestMethod]
public void TestRelativePathFromWorkingFolder()
{
{
var s = "~/";
var r = (RelativePath)s;
- Assert.NotNull(r);
- Assert.True(r.IsFromWorkingFolder());
- Assert.Equal(0, r.ParentDirectoryCount);
- Assert.Equal(s, r.ToString());
- Assert.Equal(s, r);
- Assert.Same(RelativePath.WorkingFolder, r);
+ Assert.IsNotNull(r);
+ Assert.IsTrue(r.IsFromWorkingFolder());
+ Assert.AreEqual(0, r.ParentDirectoryCount);
+ Assert.AreEqual(s, r.ToString());
+ Assert.AreEqual(s, r);
+ Assert.AreSame(RelativePath.WorkingFolder, r);
}
{
var s = "~/../a.txt";
var r = (RelativePath)s;
- Assert.NotNull(r);
- Assert.True(r.IsFromWorkingFolder());
- Assert.Equal(1, r.ParentDirectoryCount);
- Assert.Equal(s, r.ToString());
- Assert.Equal(s, r);
+ Assert.IsNotNull(r);
+ Assert.IsTrue(r.IsFromWorkingFolder());
+ Assert.AreEqual(1, r.ParentDirectoryCount);
+ Assert.AreEqual(s, r.ToString());
+ Assert.AreEqual(s, r);
}
{
var s = "~/a.dir/";
var r = (RelativePath)s;
- Assert.NotNull(r);
- Assert.True(r.IsFromWorkingFolder());
- Assert.Equal(0, r.ParentDirectoryCount);
- Assert.Equal(s, r.ToString());
- Assert.Equal(s, r);
+ Assert.IsNotNull(r);
+ Assert.IsTrue(r.IsFromWorkingFolder());
+ Assert.AreEqual(0, r.ParentDirectoryCount);
+ Assert.AreEqual(s, r.ToString());
+ Assert.AreEqual(s, r);
}
}
- [Theory]
- [InlineData("a/b/c", "a/b/c")]
- [InlineData("../a/b/c", "../a/b/c")]
- [InlineData("a/b/c d", "a/b/c%20d")]
- [InlineData("../a+b/c/d", "../a%2Bb/c/d")]
- [InlineData("a%3fb", "a%253fb")]
+ [TestMethod]
+ [DataRow("a/b/c", "a/b/c")]
+ [DataRow("../a/b/c", "../a/b/c")]
+ [DataRow("a/b/c d", "a/b/c%20d")]
+ [DataRow("../a+b/c/d", "../a%2Bb/c/d")]
+ [DataRow("a%3fb", "a%253fb")]
public void TestUrlEncode(string path, string expected)
{
- Assert.Equal(expected, ((RelativePath)path).UrlEncode());
+ Assert.AreEqual(expected, ((RelativePath)path).UrlEncode());
}
- [Theory]
- [InlineData("a/b/c", "a/b/c")]
- [InlineData("../a/b/c", "../a/b/c")]
- [InlineData("a/b/c%20d", "a/b/c d")]
- [InlineData("../a%2Bb/c/d", "../a+b/c/d")]
- [InlineData("a%253fb", "a%3fb")]
- [InlineData("a%2fb", "a%2fb")]
- [InlineData("%2A%2F%3A%3F%5C", "%2A%2F%3A%3F%5C")] //*/:?\
- [InlineData("%2a%2f%3a%3f%5c", "%2a%2f%3a%3f%5c")]
+ [TestMethod]
+ [DataRow("a/b/c", "a/b/c")]
+ [DataRow("../a/b/c", "../a/b/c")]
+ [DataRow("a/b/c%20d", "a/b/c d")]
+ [DataRow("../a%2Bb/c/d", "../a+b/c/d")]
+ [DataRow("a%253fb", "a%3fb")]
+ [DataRow("a%2fb", "a%2fb")]
+ [DataRow("%2A%2F%3A%3F%5C", "%2A%2F%3A%3F%5C")] //*/:?\
+ [DataRow("%2a%2f%3a%3f%5c", "%2a%2f%3a%3f%5c")]
public void TestUrlDecode(string path, string expected)
{
- Assert.Equal(expected, ((RelativePath)path).UrlDecode());
+ Assert.AreEqual(expected, ((RelativePath)path).UrlDecode());
}
- [Theory]
- [InlineData("a/b/c", "a/b/", true)]
- [InlineData("~/a/b/c", "~/a/b/", true)]
- [InlineData("a/b/c", "~/a/b/", false)]
- [InlineData("~/a/b/c", "a/b/", false)]
- [InlineData("a/b", "a/b", false)]
- [InlineData("a/b/", "a/b", false)]
- [InlineData("a/b", "a/b/", false)]
- [InlineData("a/b/", "a/b/", true)]
- [InlineData("a/b/c", "a/b/c", false)]
- [InlineData("a/b/c", "a/b/c/d", false)]
- [InlineData("a/b/c", "a/b/d", false)]
- [InlineData("a/../b/c", "b/", true)]
- [InlineData("../a/b", "../a", false)]
- [InlineData("../a/b", "../", false)]
- [InlineData("../a/b", "../../a", false)]
- [InlineData("../../", "../", false)]
- [InlineData("../", "../../", false)]
- [InlineData("~/a/b", "~/../", false)]
+ [TestMethod]
+ [DataRow("a/b/c", "a/b/", true)]
+ [DataRow("~/a/b/c", "~/a/b/", true)]
+ [DataRow("a/b/c", "~/a/b/", false)]
+ [DataRow("~/a/b/c", "a/b/", false)]
+ [DataRow("a/b", "a/b", false)]
+ [DataRow("a/b/", "a/b", false)]
+ [DataRow("a/b", "a/b/", false)]
+ [DataRow("a/b/", "a/b/", true)]
+ [DataRow("a/b/c", "a/b/c", false)]
+ [DataRow("a/b/c", "a/b/c/d", false)]
+ [DataRow("a/b/c", "a/b/d", false)]
+ [DataRow("a/../b/c", "b/", true)]
+ [DataRow("../a/b", "../a", false)]
+ [DataRow("../a/b", "../", false)]
+ [DataRow("../a/b", "../../a", false)]
+ [DataRow("../../", "../", false)]
+ [DataRow("../", "../../", false)]
+ [DataRow("~/a/b", "~/../", false)]
public void TestStartsWith(string source, string dest, bool isStartsWith)
{
- Assert.Equal(isStartsWith, ((RelativePath)source).InDirectory((RelativePath)dest));
+ Assert.AreEqual(isStartsWith, ((RelativePath)source).InDirectory((RelativePath)dest));
}
}
diff --git a/test/Docfx.Common.Tests/UriUtilityTest.cs b/test/Docfx.Common.Tests/UriUtilityTest.cs
index de4493ba204..81412f66e71 100644
--- a/test/Docfx.Common.Tests/UriUtilityTest.cs
+++ b/test/Docfx.Common.Tests/UriUtilityTest.cs
@@ -1,45 +1,44 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Xunit;
-
namespace Docfx.Common.Tests;
+[TestClass]
public class UriUtilityTest
{
- [InlineData("", "", "", "", "", "")]
- [InlineData("abc", "abc", "", "", "", "abc")]
- [InlineData("abc#def", "abc", "", "#def", "#def", "abc")]
- [InlineData("#def", "", "", "#def", "#def", "")]
- [InlineData("abc?def=ghi", "abc", "?def=ghi", "", "?def=ghi", "abc?def=ghi")]
- [InlineData("?def=ghi", "", "?def=ghi", "", "?def=ghi", "?def=ghi")]
- [InlineData("abc?def=ghi#jkl", "abc", "?def=ghi", "#jkl", "?def=ghi#jkl", "abc?def=ghi")]
- [InlineData("?def=ghi#jkl", "", "?def=ghi", "#jkl", "?def=ghi#jkl", "?def=ghi")]
- [InlineData("a#b#c", "a", "", "#b#c", "#b#c", "a")]
- [Theory]
+ [DataRow("", "", "", "", "", "")]
+ [DataRow("abc", "abc", "", "", "", "abc")]
+ [DataRow("abc#def", "abc", "", "#def", "#def", "abc")]
+ [DataRow("#def", "", "", "#def", "#def", "")]
+ [DataRow("abc?def=ghi", "abc", "?def=ghi", "", "?def=ghi", "abc?def=ghi")]
+ [DataRow("?def=ghi", "", "?def=ghi", "", "?def=ghi", "?def=ghi")]
+ [DataRow("abc?def=ghi#jkl", "abc", "?def=ghi", "#jkl", "?def=ghi#jkl", "abc?def=ghi")]
+ [DataRow("?def=ghi#jkl", "", "?def=ghi", "#jkl", "?def=ghi#jkl", "?def=ghi")]
+ [DataRow("a#b#c", "a", "", "#b#c", "#b#c", "a")]
+ [TestMethod]
public void TestUriUtility(string input, string path, string queryString, string fragment, string queryStringAndFragment, string nonFragment)
{
- Assert.Equal(path, UriUtility.GetPath(input));
- Assert.Equal(queryString, UriUtility.GetQueryString(input));
- Assert.Equal(fragment, UriUtility.GetFragment(input));
- Assert.Equal(queryStringAndFragment, UriUtility.GetQueryStringAndFragment(input));
- Assert.Equal(nonFragment, UriUtility.GetNonFragment(input));
+ Assert.AreEqual(path, UriUtility.GetPath(input));
+ Assert.AreEqual(queryString, UriUtility.GetQueryString(input));
+ Assert.AreEqual(fragment, UriUtility.GetFragment(input));
+ Assert.AreEqual(queryStringAndFragment, UriUtility.GetQueryStringAndFragment(input));
+ Assert.AreEqual(nonFragment, UriUtility.GetNonFragment(input));
}
- [InlineData("#target", "#source", "#source")]
- [InlineData("", "#source", "#source")]
- [InlineData("#target", "", "#target")]
- [InlineData("", "", "")]
- [InlineData("?a=1#target", "?b=2#source", "?a=1&b=2#source")]
- [InlineData("?a=1&c=11#target", "?b=2&c=22#source", "?a=1&c=22&b=2#source")]
- [InlineData("?a=1", "#fragment", "?a=1#fragment")]
- [InlineData("#fragment", "?a=1", "?a=1#fragment")]
- [InlineData("a.html", "b.html", "b.html")]
- [InlineData("a.html?a=1&c=11#target", "b.html?b=2&c=22#source", "b.html?a=1&c=22&b=2#source")]
- [InlineData("a.html?a=1&c=11#target", "?b=2&c=22#source", "a.html?a=1&c=22&b=2#source")]
- [Theory]
+ [DataRow("#target", "#source", "#source")]
+ [DataRow("", "#source", "#source")]
+ [DataRow("#target", "", "#target")]
+ [DataRow("", "", "")]
+ [DataRow("?a=1#target", "?b=2#source", "?a=1&b=2#source")]
+ [DataRow("?a=1&c=11#target", "?b=2&c=22#source", "?a=1&c=22&b=2#source")]
+ [DataRow("?a=1", "#fragment", "?a=1#fragment")]
+ [DataRow("#fragment", "?a=1", "?a=1#fragment")]
+ [DataRow("a.html", "b.html", "b.html")]
+ [DataRow("a.html?a=1&c=11#target", "b.html?b=2&c=22#source", "b.html?a=1&c=22&b=2#source")]
+ [DataRow("a.html?a=1&c=11#target", "?b=2&c=22#source", "a.html?a=1&c=22&b=2#source")]
+ [TestMethod]
public void TestMergeHref(string target, string source, string expected)
{
- Assert.Equal(expected, UriUtility.MergeHref(target, source));
+ Assert.AreEqual(expected, UriUtility.MergeHref(target, source));
}
}
diff --git a/test/Docfx.Common.Tests/YamlDeserializerWithFallbackTest.cs b/test/Docfx.Common.Tests/YamlDeserializerWithFallbackTest.cs
index db587edaf93..8aac741536e 100644
--- a/test/Docfx.Common.Tests/YamlDeserializerWithFallbackTest.cs
+++ b/test/Docfx.Common.Tests/YamlDeserializerWithFallbackTest.cs
@@ -1,41 +1,42 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Xunit;
using YamlDotNet.Core;
namespace Docfx.Common.Tests;
+[TestClass]
public class YamlDeserializerWithFallbackTest
{
- [Fact]
+ [TestMethod]
public void TestYamlDeserializerWithFallback()
{
var deserializer = YamlDeserializerWithFallback.Create()
.WithFallback>();
{
var obj = deserializer.Deserialize(() => new StringReader("A"));
- Assert.NotNull(obj);
- var a = Assert.IsType(obj);
- Assert.Equal("A", a);
+ Assert.IsNotNull(obj);
+ Assert.IsInstanceOfType(obj);
+ Assert.AreEqual("A", (string)obj);
}
{
var obj = deserializer.Deserialize(() => new StringReader(@"- A
- B"));
- Assert.NotNull(obj);
- var a = Assert.IsType>(obj);
- Assert.Equal("A", a[0]);
- Assert.Equal("B", a[1]);
+ Assert.IsNotNull(obj);
+ Assert.IsInstanceOfType>(obj);
+ var a = (List)obj;
+ Assert.AreEqual("A", a[0]);
+ Assert.AreEqual("B", a[1]);
}
{
var ex = Assert.Throws(() => deserializer.Deserialize(() => new StringReader(@"- A
- A: abc")));
- Assert.Equal(2, ex.Start.Line);
- Assert.Equal(3, ex.Start.Column);
+ Assert.AreEqual(2, ex.Start.Line);
+ Assert.AreEqual(3, ex.Start.Column);
}
}
- [Fact]
+ [TestMethod]
public void TestYamlDeserializerWithFallback_MultiFallback()
{
var deserializer = YamlDeserializerWithFallback.Create()
@@ -43,29 +44,30 @@ public void TestYamlDeserializerWithFallback_MultiFallback()
.WithFallback();
{
var obj = deserializer.Deserialize(() => new StringReader("1"));
- Assert.NotNull(obj);
- var a = Assert.IsType(obj);
- Assert.Equal(1, a);
+ Assert.IsNotNull(obj);
+ Assert.IsInstanceOfType(obj);
+ Assert.AreEqual(1, (int)obj);
}
{
var obj = deserializer.Deserialize(() => new StringReader("A"));
- Assert.NotNull(obj);
- var a = Assert.IsType(obj);
- Assert.Equal("A", a);
+ Assert.IsNotNull(obj);
+ Assert.IsInstanceOfType(obj);
+ Assert.AreEqual("A", (string)obj);
}
{
var obj = deserializer.Deserialize(() => new StringReader(@"- A
- B"));
- Assert.NotNull(obj);
- var a = Assert.IsType(obj);
- Assert.Equal("A", a[0]);
- Assert.Equal("B", a[1]);
+ Assert.IsNotNull(obj);
+ Assert.IsInstanceOfType(obj);
+ var a = (string[])obj;
+ Assert.AreEqual("A", a[0]);
+ Assert.AreEqual("B", a[1]);
}
{
var ex = Assert.Throws(() => deserializer.Deserialize(() => new StringReader(@"- A
- A: abc")));
- Assert.Equal(2, ex.Start.Line);
- Assert.Equal(3, ex.Start.Column);
+ Assert.AreEqual(2, ex.Start.Line);
+ Assert.AreEqual(3, ex.Start.Column);
}
}
}
diff --git a/test/Docfx.Common.Tests/YamlSerializationTest.cs b/test/Docfx.Common.Tests/YamlSerializationTest.cs
index 74fb179a5c3..434377991a4 100644
--- a/test/Docfx.Common.Tests/YamlSerializationTest.cs
+++ b/test/Docfx.Common.Tests/YamlSerializationTest.cs
@@ -4,55 +4,55 @@
using System.Collections.Immutable;
using System.Collections.ObjectModel;
using Docfx.YamlSerialization;
-using Xunit;
using YamlDotNet.Core;
namespace Docfx.Common.Tests;
+[TestClass]
public class YamlSerializationTest
{
- [Theory]
- [InlineData(" Add --globalMetadata, --globalMetadataFile and --fileMetadataFile\n")]
- [InlineData("\r\n Hello\n")]
- [InlineData(" \r\n Hello\n")]
- [InlineData("True")]
- [InlineData("true")]
- [InlineData("TRUE")]
- [InlineData("False")]
- [InlineData("false")]
- [InlineData("FALSE")]
- [InlineData("Null")]
- [InlineData("null")]
- [InlineData("NULL")]
+ [TestMethod]
+ [DataRow(" Add --globalMetadata, --globalMetadataFile and --fileMetadataFile\n")]
+ [DataRow("\r\n Hello\n")]
+ [DataRow(" \r\n Hello\n")]
+ [DataRow("True")]
+ [DataRow("true")]
+ [DataRow("TRUE")]
+ [DataRow("False")]
+ [DataRow("false")]
+ [DataRow("FALSE")]
+ [DataRow("Null")]
+ [DataRow("null")]
+ [DataRow("NULL")]
public void TestObjectWithStringProperty(string input)
{
var sw = new StringWriter();
YamlUtility.Serialize(sw, new BasicClass { C = input });
var yaml = sw.ToString();
var value = YamlUtility.Deserialize(new StringReader(yaml));
- Assert.NotNull(value);
- Assert.Equal(input, value.C);
+ Assert.IsNotNull(value);
+ Assert.AreEqual(input, value.C);
}
- [Theory]
- [InlineData("123")]
- [InlineData("1.23")]
- [InlineData("0.123")]
- [InlineData(".123")]
- [InlineData("0.")]
- [InlineData("-0.0")]
- [InlineData(".5")]
- [InlineData("+12e03")]
- [InlineData("-2E+05")]
+ [TestMethod]
+ [DataRow("123")]
+ [DataRow("1.23")]
+ [DataRow("0.123")]
+ [DataRow(".123")]
+ [DataRow("0.")]
+ [DataRow("-0.0")]
+ [DataRow(".5")]
+ [DataRow("+12e03")]
+ [DataRow("-2E+05")]
public void TestScalarLikeStringValueNeedDoubleQuoted(string input)
{
var sw = new StringWriter();
YamlUtility.Serialize(sw, input);
var yaml = sw.ToString();
- Assert.Equal($"\"{input}\"", yaml.Trim());
+ Assert.AreEqual($"\"{input}\"", yaml.Trim());
}
- [Fact]
+ [TestMethod]
public void TestNotWorkInYamlDotNet39()
{
const string Text = "😄";
@@ -60,60 +60,60 @@ public void TestNotWorkInYamlDotNet39()
YamlUtility.Serialize(sw, new BasicClass { C = Text });
var yaml = sw.ToString();
var value = YamlUtility.Deserialize(new StringReader(yaml));
- Assert.NotNull(value);
- Assert.Equal(Text, value.C);
+ Assert.IsNotNull(value);
+ Assert.AreEqual(Text, value.C);
}
- [Fact]
+ [TestMethod]
public void TestBasicClass()
{
var sw = new StringWriter();
YamlUtility.Serialize(sw, new BasicClass { B = 1, C = "Good!" }, YamlMime.YamlMimePrefix + "Test-Yaml-Mime");
var yaml = sw.ToString();
- Assert.Equal(@"### YamlMime:Test-Yaml-Mime
+ Assert.AreEqual(@"### YamlMime:Test-Yaml-Mime
B: 1
C: Good!
".Replace("\r\n", "\n"), yaml.Replace("\r\n", "\n"));
- Assert.Equal("YamlMime:Test-Yaml-Mime", YamlMime.ReadMime(new StringReader(yaml)));
+ Assert.AreEqual("YamlMime:Test-Yaml-Mime", YamlMime.ReadMime(new StringReader(yaml)));
var value = YamlUtility.Deserialize(new StringReader(yaml));
- Assert.NotNull(value);
- Assert.Equal(1, value.B);
- Assert.Equal("Good!", value.C);
+ Assert.IsNotNull(value);
+ Assert.AreEqual(1, value.B);
+ Assert.AreEqual("Good!", value.C);
}
- [Fact]
+ [TestMethod]
public void TestBasicClassWithNullCharacter()
{
var sw = new StringWriter();
YamlUtility.Serialize(sw, new BasicClass { B = 1, C = "~" }, YamlMime.YamlMimePrefix + "Test-Yaml-Mime");
var yaml = sw.ToString();
- Assert.Equal(@"### YamlMime:Test-Yaml-Mime
+ Assert.AreEqual(@"### YamlMime:Test-Yaml-Mime
B: 1
C: ""~""
".Replace("\r\n", "\n"), yaml.Replace("\r\n", "\n"));
- Assert.Equal("YamlMime:Test-Yaml-Mime", YamlMime.ReadMime(new StringReader(yaml)));
+ Assert.AreEqual("YamlMime:Test-Yaml-Mime", YamlMime.ReadMime(new StringReader(yaml)));
var value = YamlUtility.Deserialize(new StringReader(yaml));
- Assert.NotNull(value);
- Assert.Equal(1, value.B);
- Assert.Equal("~", value.C);
+ Assert.IsNotNull(value);
+ Assert.AreEqual(1, value.B);
+ Assert.AreEqual("~", value.C);
}
- [Fact]
+ [TestMethod]
public void TestBoolean()
{
var sw = new StringWriter();
YamlUtility.Serialize(sw, new object[] { true, false }, YamlMime.YamlMimePrefix + "Test-Yaml-Mime");
var yaml = sw.ToString();
- Assert.Equal(@"### YamlMime:Test-Yaml-Mime
+ Assert.AreEqual(@"### YamlMime:Test-Yaml-Mime
- true
- false
".Replace("\r\n", "\n"), yaml.Replace("\r\n", "\n"));
- Assert.Equal("YamlMime:Test-Yaml-Mime", YamlMime.ReadMime(new StringReader(yaml)));
+ Assert.AreEqual("YamlMime:Test-Yaml-Mime", YamlMime.ReadMime(new StringReader(yaml)));
var value = YamlUtility.Deserialize(new StringReader(yaml));
- Assert.NotNull(value);
- Assert.Equal(2, value.Length);
- Assert.Equal(true, value[0]);
- Assert.Equal(false, value[1]);
+ Assert.IsNotNull(value);
+ Assert.AreEqual(2, value.Length);
+ Assert.AreEqual(true, value[0]);
+ Assert.AreEqual(false, value[1]);
var value2 = YamlUtility.Deserialize(new StringReader(@"### YamlMime:Test-Yaml-Mime
- true
- True
@@ -122,51 +122,51 @@ public void TestBoolean()
- False
- FALSE
"));
- Assert.NotNull(value2);
- Assert.Equal(new[] { true, true, true, false, false, false }, value2.Cast());
+ Assert.IsNotNull(value2);
+ CollectionAssert.AreEqual(new[] { true, true, true, false, false, false }, value2.Cast().ToArray());
}
- [Fact]
+ [TestMethod]
public void TestBigInteger()
{
var sw = new StringWriter();
YamlUtility.Serialize(sw, new object[] { 1234567890000L, 9876543210000L, long.MaxValue, ulong.MaxValue }, YamlMime.YamlMimePrefix + "Test-Yaml-Mime");
var yaml = sw.ToString();
- Assert.Equal(@"### YamlMime:Test-Yaml-Mime
+ Assert.AreEqual(@"### YamlMime:Test-Yaml-Mime
- 1234567890000
- 9876543210000
- 9223372036854775807
- 18446744073709551615
".Replace("\r\n", "\n"), yaml.Replace("\r\n", "\n"));
- Assert.Equal("YamlMime:Test-Yaml-Mime", YamlMime.ReadMime(new StringReader(yaml)));
+ Assert.AreEqual("YamlMime:Test-Yaml-Mime", YamlMime.ReadMime(new StringReader(yaml)));
var value = YamlUtility.Deserialize(new StringReader(yaml));
- Assert.NotNull(value);
- Assert.Equal(4, value.Length);
- Assert.Equal(1234567890000L, value[0]);
- Assert.Equal(9876543210000L, value[1]);
- Assert.Equal(long.MaxValue, value[2]);
- Assert.Equal(ulong.MaxValue, value[3]);
+ Assert.IsNotNull(value);
+ Assert.AreEqual(4, value.Length);
+ Assert.AreEqual(1234567890000L, value[0]);
+ Assert.AreEqual(9876543210000L, value[1]);
+ Assert.AreEqual(long.MaxValue, value[2]);
+ Assert.AreEqual(ulong.MaxValue, value[3]);
}
- [Fact]
+ [TestMethod]
public void TestYamlMime_Success()
{
var sw = new StringWriter();
YamlUtility.Serialize(sw, 1, YamlMime.YamlMimePrefix + "Test-Yaml-Mime");
var yaml = sw.ToString();
- Assert.Equal("YamlMime:Test-Yaml-Mime", YamlMime.ReadMime(new StringReader(yaml)));
+ Assert.AreEqual("YamlMime:Test-Yaml-Mime", YamlMime.ReadMime(new StringReader(yaml)));
}
- [Fact]
+ [TestMethod]
public void TestYamlMime_NoYamlMime()
{
var sw = new StringWriter();
YamlUtility.Serialize(sw, 1, "No-Yaml-Mime");
var yaml = sw.ToString();
- Assert.Null(YamlMime.ReadMime(new StringReader(yaml)));
+ Assert.IsNull(YamlMime.ReadMime(new StringReader(yaml)));
}
- [Fact]
+ [TestMethod]
public void TestListOfBasicClass()
{
var sw = new StringWriter();
@@ -176,12 +176,12 @@ public void TestListOfBasicClass()
select new BasicClass { B = i, C = $"Good{i}!" }).ToList());
var yaml = sw.ToString();
var values = YamlUtility.Deserialize>(new StringReader(yaml));
- Assert.NotNull(values);
- Assert.Equal(10, values.Count);
+ Assert.IsNotNull(values);
+ Assert.AreEqual(10, values.Count);
for (int i = 0; i < values.Count; i++)
{
- Assert.Equal(i, values[i].B);
- Assert.Equal($"Good{i}!", values[i].C);
+ Assert.AreEqual(i, values[i].B);
+ Assert.AreEqual($"Good{i}!", values[i].C);
}
}
@@ -191,7 +191,7 @@ public class BasicClass
public string C { get; set; }
}
- [Fact]
+ [TestMethod]
public void TestClassWithExtensibleMembersBySerializeThenDeserialize()
{
var sw = new StringWriter();
@@ -218,7 +218,7 @@ public void TestClassWithExtensibleMembersBySerializeThenDeserialize()
}
});
var yaml = sw.ToString();
- Assert.Equal(@"B: 1
+ Assert.AreEqual(@"B: 1
C: Good!
s.a: aaa
s.b: bbb
@@ -229,21 +229,21 @@ public void TestClassWithExtensibleMembersBySerializeThenDeserialize()
bar: bar
".Replace("\r\n", "\n"), yaml.Replace("\r\n", "\n"));
var value = YamlUtility.Deserialize(new StringReader(yaml));
- Assert.NotNull(value);
- Assert.Equal(1, value.B);
- Assert.Equal("Good!", value.C);
- Assert.Equal(2, value.StringExtensions.Count);
- Assert.Equal("aaa", value.StringExtensions["a"]);
- Assert.Equal("bbb", value.StringExtensions["b"]);
- Assert.Equal(2, value.IntegerExtensions.Count);
- Assert.Equal(1, value.IntegerExtensions["x"]);
- Assert.Equal(2, value.IntegerExtensions["y"]);
- Assert.Equal(2, value.ObjectExtensions.Count);
- Assert.Equal(new[] { "foo1" }, (List)value.ObjectExtensions["foo"]);
- Assert.Equal("bar", (string)value.ObjectExtensions["bar"]);
+ Assert.IsNotNull(value);
+ Assert.AreEqual(1, value.B);
+ Assert.AreEqual("Good!", value.C);
+ Assert.AreEqual(2, value.StringExtensions.Count);
+ Assert.AreEqual("aaa", value.StringExtensions["a"]);
+ Assert.AreEqual("bbb", value.StringExtensions["b"]);
+ Assert.AreEqual(2, value.IntegerExtensions.Count);
+ Assert.AreEqual(1, value.IntegerExtensions["x"]);
+ Assert.AreEqual(2, value.IntegerExtensions["y"]);
+ Assert.AreEqual(2, value.ObjectExtensions.Count);
+ CollectionAssert.AreEqual(new[] { "foo1" }, ((List)value.ObjectExtensions["foo"]).ToArray());
+ Assert.AreEqual("bar", (string)value.ObjectExtensions["bar"]);
}
- [Fact]
+ [TestMethod]
public void TestClassWithExtensibleMembersByDeserializeThenSerialize()
{
var yaml = @"B: 1
@@ -257,25 +257,25 @@ public void TestClassWithExtensibleMembersByDeserializeThenSerialize()
bar: bar
".Replace("\r\n", "\n");
var value = YamlUtility.Deserialize(new StringReader(yaml));
- Assert.NotNull(value);
- Assert.Equal(1, value.B);
- Assert.Equal("Good!", value.C);
- Assert.Equal(2, value.StringExtensions.Count);
- Assert.Equal("aaa", value.StringExtensions["a"]);
- Assert.Equal("bbb", value.StringExtensions["b"]);
- Assert.Equal(2, value.IntegerExtensions.Count);
- Assert.Equal(1, value.IntegerExtensions["x"]);
- Assert.Equal(2, value.IntegerExtensions["y"]);
- Assert.Equal(2, value.ObjectExtensions.Count);
- Assert.Equal(new[] { "foo1" }, (List)value.ObjectExtensions["foo"]);
- Assert.Equal("bar", (string)value.ObjectExtensions["bar"]);
+ Assert.IsNotNull(value);
+ Assert.AreEqual(1, value.B);
+ Assert.AreEqual("Good!", value.C);
+ Assert.AreEqual(2, value.StringExtensions.Count);
+ Assert.AreEqual("aaa", value.StringExtensions["a"]);
+ Assert.AreEqual("bbb", value.StringExtensions["b"]);
+ Assert.AreEqual(2, value.IntegerExtensions.Count);
+ Assert.AreEqual(1, value.IntegerExtensions["x"]);
+ Assert.AreEqual(2, value.IntegerExtensions["y"]);
+ Assert.AreEqual(2, value.ObjectExtensions.Count);
+ CollectionAssert.AreEqual(new[] { "foo1" }, ((List)value.ObjectExtensions["foo"]).ToArray());
+ Assert.AreEqual("bar", (string)value.ObjectExtensions["bar"]);
var sw = new StringWriter();
YamlUtility.Serialize(sw, value);
- Assert.Equal(yaml, sw.ToString().Replace("\r\n", "\n"));
+ Assert.AreEqual(yaml, sw.ToString().Replace("\r\n", "\n"));
}
- [Fact]
+ [TestMethod]
public void TestListOfClassWithExtensibleMembers()
{
var sw = new StringWriter();
@@ -304,21 +304,21 @@ public void TestListOfClassWithExtensibleMembers()
}).ToList());
var yaml = sw.ToString();
var values = YamlUtility.Deserialize>(new StringReader(yaml));
- Assert.NotNull(values);
- Assert.Equal(10, values.Count);
+ Assert.IsNotNull(values);
+ Assert.AreEqual(10, values.Count);
for (int i = 0; i < values.Count; i++)
{
- Assert.Equal(i, values[i].B);
- Assert.Equal($"Good{i}!", values[i].C);
- Assert.Equal(2, values[i].StringExtensions.Count);
- Assert.Equal($"aaa{i}", values[i].StringExtensions[$"a{i}"]);
- Assert.Equal($"bbb{i}", values[i].StringExtensions[$"b{i}"]);
- Assert.Equal(2, values[i].IntegerExtensions.Count);
- Assert.Equal(i + 1, values[i].IntegerExtensions[$"x{i}"]);
- Assert.Equal(i + 2, values[i].IntegerExtensions[$"y{i}"]);
- Assert.Equal(2, values[i].ObjectExtensions.Count);
- Assert.Equal(new[] { $"foo{i}" }, (List)values[i].ObjectExtensions[$"foo{i}"]);
- Assert.Equal($"bar{i}", (string)values[i].ObjectExtensions[$"bar{i}"]);
+ Assert.AreEqual(i, values[i].B);
+ Assert.AreEqual($"Good{i}!", values[i].C);
+ Assert.AreEqual(2, values[i].StringExtensions.Count);
+ Assert.AreEqual($"aaa{i}", values[i].StringExtensions[$"a{i}"]);
+ Assert.AreEqual($"bbb{i}", values[i].StringExtensions[$"b{i}"]);
+ Assert.AreEqual(2, values[i].IntegerExtensions.Count);
+ Assert.AreEqual(i + 1, values[i].IntegerExtensions[$"x{i}"]);
+ Assert.AreEqual(i + 2, values[i].IntegerExtensions[$"y{i}"]);
+ Assert.AreEqual(2, values[i].ObjectExtensions.Count);
+ CollectionAssert.AreEqual(new[] { $"foo{i}" }, ((List)values[i].ObjectExtensions[$"foo{i}"]).ToArray());
+ Assert.AreEqual($"bar{i}", (string)values[i].ObjectExtensions[$"bar{i}"]);
}
}
@@ -332,7 +332,7 @@ public class ClassWithExtensibleMembers : BasicClass
public Dictionary ObjectExtensions { get; } = [];
}
- [Fact]
+ [TestMethod]
public void TestInternalClass()
{
YamlUtility.Serialize(new StringWriter(), new InternalClass { });
@@ -344,7 +344,7 @@ internal class InternalClass
public string A { get; set; }
}
- [Fact]
+ [TestMethod]
public void TestClassWithInvalidExtensibleMember()
{
Assert.Throws(() => YamlUtility.Serialize(new StringWriter(), new ClassWithInvalidExtensibleMember { }));
@@ -358,7 +358,7 @@ public class ClassWithInvalidExtensibleMember
public string StringExtensions { get; set; }
}
- [Fact]
+ [TestMethod]
public void TestClassWithInterfaceMember()
{
var sw = new StringWriter();
@@ -373,7 +373,7 @@ public void TestClassWithInterfaceMember()
ReadOnlyDictionary = new SortedDictionary { ["k2"] = "v2" },
Set = new SortedSet { "s" },
});
- Assert.Equal(@"List:
+ Assert.AreEqual(@"List:
- a
ReadOnlyList:
- b
@@ -392,23 +392,23 @@ public void TestClassWithInterfaceMember()
".Replace("\r\n", "\n"), sw.ToString().Replace("\r\n", "\n"));
var obj = YamlUtility.Deserialize(new StringReader(sw.ToString()));
- Assert.NotNull(obj);
- Assert.Single(obj.List);
- Assert.Equal("a", obj.List[0]);
- Assert.Single(obj.ReadOnlyList);
- Assert.Equal("b", obj.ReadOnlyList[0]);
- Assert.Single(obj.Collection);
- Assert.Equal("c", obj.Collection.First());
- Assert.Single(obj.ReadOnlyCollection);
- Assert.Equal("d", obj.ReadOnlyCollection.First());
- Assert.Single(obj.Enumerable);
- Assert.Equal(1, obj.Enumerable.First());
- Assert.Single(obj.Dictionary);
- Assert.Equal(new KeyValuePair("k1", "v1"), obj.Dictionary.First());
- Assert.Single(obj.ReadOnlyDictionary);
- Assert.Equal(new KeyValuePair("k2", "v2"), obj.ReadOnlyDictionary.First());
- Assert.Single(obj.Set);
- Assert.Equal("s", obj.Set.First());
+ Assert.IsNotNull(obj);
+ Assert.ContainsSingle(obj.List);
+ Assert.AreEqual("a", obj.List[0]);
+ Assert.ContainsSingle(obj.ReadOnlyList);
+ Assert.AreEqual("b", obj.ReadOnlyList[0]);
+ Assert.ContainsSingle(obj.Collection);
+ Assert.AreEqual("c", obj.Collection.First());
+ Assert.ContainsSingle(obj.ReadOnlyCollection);
+ Assert.AreEqual("d", obj.ReadOnlyCollection.First());
+ Assert.ContainsSingle(obj.Enumerable);
+ Assert.AreEqual(1, obj.Enumerable.First());
+ Assert.ContainsSingle(obj.Dictionary);
+ Assert.AreEqual(new KeyValuePair("k1", "v1"), obj.Dictionary.First());
+ Assert.ContainsSingle(obj.ReadOnlyDictionary);
+ Assert.AreEqual(new KeyValuePair("k2", "v2"), obj.ReadOnlyDictionary.First());
+ Assert.ContainsSingle(obj.Set);
+ Assert.AreEqual("s", obj.Set.First());
}
public class ClassWithInterfaceMember
diff --git a/test/Docfx.Dotnet.Tests/ApiFilterUnitTest.cs b/test/Docfx.Dotnet.Tests/ApiFilterUnitTest.cs
index 0a1f3a32b08..955decae218 100644
--- a/test/Docfx.Dotnet.Tests/ApiFilterUnitTest.cs
+++ b/test/Docfx.Dotnet.Tests/ApiFilterUnitTest.cs
@@ -2,17 +2,17 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.CodeAnalysis;
-using Xunit;
namespace Docfx.Dotnet.Tests;
-[Trait("Related", "Filter")]
-[Collection("docfx STA")]
+[TestProperty("Related", "Filter")]
+[DoNotParallelize]
+[TestClass]
public class ApiFilterUnitTest
{
private static readonly Dictionary EmptyMSBuildProperties = [];
- [Fact]
+ [TestMethod]
public void TestApiFilter()
{
string code = @"
@@ -115,40 +115,40 @@ public EnumDisplayAttribute(string description = null)
";
string configFile = "TestData/filterconfig.yml";
MetadataItem output = Verify(code, new() { FilterConfigFile = configFile });
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
var @namespace = output.Items[0];
- Assert.NotNull(@namespace);
- Assert.Equal("Test1", @namespace.Name);
- Assert.Equal(5, @namespace.Items.Count);
+ Assert.IsNotNull(@namespace);
+ Assert.AreEqual("Test1", @namespace.Name);
+ Assert.AreEqual(5, @namespace.Items.Count);
{
var class1 = @namespace.Items[0];
- Assert.Equal("Test1.Class1", class1.Name);
- Assert.Single(class1.Items);
+ Assert.AreEqual("Test1.Class1", class1.Name);
+ Assert.ContainsSingle(class1.Items);
var method = class1.Items[0];
- Assert.Equal("Test1.Class1.Func1(System.Int32)", method.Name);
+ Assert.AreEqual("Test1.Class1.Func1(System.Int32)", method.Name);
}
{
var class3 = @namespace.Items[1];
- Assert.Equal("Test1.Class3", class3.Name);
- Assert.Equal(2, class3.Items.Count);
- Assert.Equal("Test1.Class3.Func2", class3.Items[0].Name);
- Assert.Equal("Test1.Class3.Func2(System.Int32)", class3.Items[1].Name);
+ Assert.AreEqual("Test1.Class3", class3.Name);
+ Assert.AreEqual(2, class3.Items.Count);
+ Assert.AreEqual("Test1.Class3.Func2", class3.Items[0].Name);
+ Assert.AreEqual("Test1.Class3.Func2(System.Int32)", class3.Items[1].Name);
}
{
var class4 = @namespace.Items[2];
- Assert.Equal("Test1.Class3.Class4", class4.Name);
- Assert.Empty(class4.Items);
+ Assert.AreEqual("Test1.Class3.Class4", class4.Name);
+ Assert.IsEmpty(class4.Items);
}
{
var class6 = @namespace.Items[3];
- Assert.Equal("Test1.Class6", class6.Name);
- Assert.Equal(2, class6.Items.Count);
- Assert.Equal("Test1.Class6.D", class6.Items[0].Name);
- Assert.Equal("Test1.Class6.Test(System.String)", class6.Items[1].Name);
+ Assert.AreEqual("Test1.Class6", class6.Name);
+ Assert.AreEqual(2, class6.Items.Count);
+ Assert.AreEqual("Test1.Class6.D", class6.Items[0].Name);
+ Assert.AreEqual("Test1.Class6.Test(System.String)", class6.Items[1].Name);
}
}
- [Fact]
+ [TestMethod]
public void TestAttributeFilter()
{
string code = @"
@@ -171,11 +171,11 @@ public void Func1(int i)
MetadataItem output = Verify(code, new() { FilterConfigFile = configFile });
var @namespace = output.Items[0];
var class1 = @namespace.Items[0];
- Assert.Single(class1.Attributes);
- Assert.Equal("System.SerializableAttribute", class1.Attributes[0].Type);
+ Assert.ContainsSingle(class1.Attributes);
+ Assert.AreEqual("System.SerializableAttribute", class1.Attributes[0].Type);
}
- [Fact]
+ [TestMethod]
public void TestDefaultFilter()
{
string code = @"
@@ -203,13 +203,13 @@ public interface Interface1
}";
MetadataItem output = Verify(code);
var @namespace = output.Items[0];
- Assert.Single(@namespace.Items);
+ Assert.ContainsSingle(@namespace.Items);
var class1 = @namespace.Items[0];
- Assert.Single(class1.Attributes);
- Assert.Equal("System.SerializableAttribute", class1.Attributes[0].Type);
+ Assert.ContainsSingle(class1.Attributes);
+ Assert.AreEqual("System.SerializableAttribute", class1.Attributes[0].Type);
}
- [Fact]
+ [TestMethod]
public void TestFilterBugIssue2547()
{
string code = @"using System;
@@ -240,11 +240,11 @@ public class Test2
}";
MetadataItem output = Verify(code);
var @namespace = output.Items[0];
- Assert.NotNull(@namespace);
- Assert.Equal(3, @namespace.Items.Count);
+ Assert.IsNotNull(@namespace);
+ Assert.AreEqual(3, @namespace.Items.Count);
}
- [Fact]
+ [TestMethod]
public void TestSymbolFilterOptions()
{
var code = @"
@@ -273,16 +273,16 @@ interface IClass1 { }
}";
var output = Verify(code, new(), new() { IncludeApi = IncludeApi, IncludeAttribute = IncludeAttribute });
var class1 = output.Items[0].Items[0];
- Assert.Equal(
+ CollectionAssert.AreEqual(
new[]
{
"System.SerializableAttribute",
"System.Runtime.InteropServices.ComVisibleAttribute",
"Test1.A2",
},
- class1.Attributes.Select(a => a.Type));
- Assert.Equal(new[] { "Test1.Class1.M2" }, class1.Items.Select(m => m.Name));
- Assert.Equal(new[] { "System.Object" }, class1.Inheritance);
+ class1.Attributes.Select(a => a.Type).ToArray());
+ CollectionAssert.AreEqual(new[] { "Test1.Class1.M2" }, class1.Items.Select(m => m.Name).ToArray());
+ CollectionAssert.AreEqual(new[] { "System.Object" }, class1.Inheritance.ToArray());
SymbolIncludeState IncludeAttribute(ISymbol symbol)
{
@@ -304,7 +304,7 @@ SymbolIncludeState IncludeApi(ISymbol symbol)
}
}
- [Fact]
+ [TestMethod]
public void TestExcludeInterface_ExcludesExplicitInterfaceImplementations()
{
var code = @"
@@ -326,10 +326,10 @@ public interface IClass1
new() { IncludeApi = symbol => symbol.Name is "IClass1" ? SymbolIncludeState.Exclude : default });
var class1 = output.Items[0].Items[0];
- Assert.Empty(class1.Items);
+ Assert.IsEmpty(class1.Items);
}
- [Fact]
+ [TestMethod]
public void TestDocsSampleFilter()
{
var code = @"
@@ -350,27 +350,27 @@ public class NestedClass : Class1
MetadataItem output = Verify(code, new() { FilterConfigFile = configFile });
var namespaces = output.Items;
- Assert.Single(namespaces);
+ Assert.ContainsSingle(namespaces);
var @namespace = namespaces[0];
- Assert.NotNull(@namespace);
- Assert.Equal("Microsoft.DevDiv.SpecialCase", @namespace.Name);
- Assert.Single(@namespace.Items);
+ Assert.IsNotNull(@namespace);
+ Assert.AreEqual("Microsoft.DevDiv.SpecialCase", @namespace.Name);
+ Assert.ContainsSingle(@namespace.Items);
var nestedClass = @namespace.Items[0];
- Assert.Equal("Microsoft.DevDiv.SpecialCase.NestedClass", nestedClass.Name);
+ Assert.AreEqual("Microsoft.DevDiv.SpecialCase.NestedClass", nestedClass.Name);
}
- [Fact]
+ [TestMethod]
public void TestExtendedSymbolKindFlags()
{
- Assert.True((ExtendedSymbolKind.Type | ExtendedSymbolKind.Member).Contains(new SymbolFilterData { Kind = ExtendedSymbolKind.Interface }));
+ Assert.IsTrue((ExtendedSymbolKind.Type | ExtendedSymbolKind.Member).Contains(new SymbolFilterData { Kind = ExtendedSymbolKind.Interface }));
}
private static MetadataItem Verify(string code, ExtractMetadataConfig config = null, DotnetApiOptions options = null, IDictionary msbuildProperties = null)
{
var compilation = CompilationHelper.CreateCompilationFromCSharpCode(code, msbuildProperties ?? EmptyMSBuildProperties, "test.dll");
- Assert.Empty(compilation.GetDeclarationDiagnostics());
+ Assert.IsEmpty(compilation.GetDeclarationDiagnostics());
return compilation.Assembly.GenerateMetadataItem(compilation, config, options);
}
}
diff --git a/test/Docfx.Dotnet.Tests/DefinitionMergeUnitTest.cs b/test/Docfx.Dotnet.Tests/DefinitionMergeUnitTest.cs
index d89ad42c991..be50336d894 100644
--- a/test/Docfx.Dotnet.Tests/DefinitionMergeUnitTest.cs
+++ b/test/Docfx.Dotnet.Tests/DefinitionMergeUnitTest.cs
@@ -1,13 +1,12 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Xunit;
-
namespace Docfx.Dotnet.Tests;
+[TestClass]
public class DefinitionMergeUnitTest
{
- [Fact]
+ [TestMethod]
public void InterfaceWithTemplateDoesNotCrash()
{
// arrange
@@ -35,6 +34,6 @@ public void Function()
var output = compilation.Assembly.GenerateMetadataItem(compilation);
// assert
- Assert.NotNull(output);
+ Assert.IsNotNull(output);
}
}
diff --git a/test/Docfx.Dotnet.Tests/GenerateMetadataFromAssemblyTest.cs b/test/Docfx.Dotnet.Tests/GenerateMetadataFromAssemblyTest.cs
index 9ef41b066c9..1d788b2ebe0 100644
--- a/test/Docfx.Dotnet.Tests/GenerateMetadataFromAssemblyTest.cs
+++ b/test/Docfx.Dotnet.Tests/GenerateMetadataFromAssemblyTest.cs
@@ -2,69 +2,69 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Docfx.DataContracts.ManagedReference;
-using Xunit;
namespace Docfx.Dotnet.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class GenerateMetadataFromAssemblyTest
{
- [Fact]
+ [TestMethod]
public void TestGenerateMetadataFromAssembly()
{
{
var (compilation, assembly) = CompilationHelper.CreateCompilationFromAssembly("TestData/CatLibrary.dll");
- Assert.Empty(compilation.GetDeclarationDiagnostics());
+ Assert.IsEmpty(compilation.GetDeclarationDiagnostics());
var output = assembly.GenerateMetadataItem(compilation);
var @class = output.Items[0].Items[2];
- Assert.NotNull(@class);
- Assert.Equal("Cat", @class.DisplayNames.First().Value);
- Assert.Equal("Cat", @class.DisplayNamesWithType.First().Value);
- Assert.Equal("CatLibrary.Cat", @class.DisplayQualifiedNames.First().Value);
+ Assert.IsNotNull(@class);
+ Assert.AreEqual("Cat", @class.DisplayNames.First().Value);
+ Assert.AreEqual("Cat", @class.DisplayNamesWithType.First().Value);
+ Assert.AreEqual("CatLibrary.Cat", @class.DisplayQualifiedNames.First().Value);
}
{
var (compilation, assembly) = CompilationHelper.CreateCompilationFromAssembly("TestData/CatLibrary2.dll");
- Assert.Empty(compilation.GetDeclarationDiagnostics());
+ Assert.IsEmpty(compilation.GetDeclarationDiagnostics());
var output = assembly.GenerateMetadataItem(compilation);
var @class = output.Items[0].Items[0];
- Assert.NotNull(@class);
- Assert.Equal("CarLibrary2.Cat2", @class.Name);
- Assert.Equal(new[] { "System.Object", "CatLibrary.Cat{CatLibrary.Dog{System.String},System.Int32}" }, @class.Inheritance);
+ Assert.IsNotNull(@class);
+ Assert.AreEqual("CarLibrary2.Cat2", @class.Name);
+ CollectionAssert.AreEqual(new[] { "System.Object", "CatLibrary.Cat{CatLibrary.Dog{System.String},System.Int32}" }, @class.Inheritance.ToArray());
}
}
- [Fact]
+ [TestMethod]
public void TestGenerateMetadataFromAssemblyWithReferences()
{
var (compilation, assembly) = CompilationHelper.CreateCompilationFromAssembly("TestData/TupleLibrary.dll");
- Assert.Empty(compilation.GetDeclarationDiagnostics());
+ Assert.IsEmpty(compilation.GetDeclarationDiagnostics());
var output = assembly.GenerateMetadataItem(compilation);
var @class = output.Items[0].Items[0];
- Assert.NotNull(@class);
- Assert.Equal("XmlTasks", @class.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("XmlTasks", @class.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("TupleLibrary.XmlTasks", @class.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(@class);
+ Assert.AreEqual("XmlTasks", @class.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("XmlTasks", @class.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("TupleLibrary.XmlTasks", @class.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
{
var method = @class.Items.Single(i => i.Name == "TupleLibrary.XmlTasks.ToNamespace(System.String,System.String)");
- Assert.Equal("ToNamespace(string, string)", method.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("XmlTasks.ToNamespace(string, string)", method.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("TupleLibrary.XmlTasks.ToNamespace(string, string)", method.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("ToNamespace(string, string)", method.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("XmlTasks.ToNamespace(string, string)", method.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("TupleLibrary.XmlTasks.ToNamespace(string, string)", method.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("public (string, string) ToNamespace(string prefix, string uri)", method.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("public (string, string) ToNamespace(string prefix, string uri)", method.Syntax.Content[SyntaxLanguage.CSharp]);
}
{
var method = @class.Items.Single(i => i.Name == "TupleLibrary.XmlTasks.XmlPeek(System.String,System.ValueTuple{System.String,System.String}[])");
- Assert.Equal("XmlPeek(string, params (string, string)[])", method.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("XmlTasks.XmlPeek(string, params (string, string)[])", method.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("TupleLibrary.XmlTasks.XmlPeek(string, params (string, string)[])", method.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("XmlPeek(string, params (string, string)[])", method.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("XmlTasks.XmlPeek(string, params (string, string)[])", method.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("TupleLibrary.XmlTasks.XmlPeek(string, params (string, string)[])", method.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("public string XmlPeek(string xpath, params (string, string)[] namespaces)", method.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("public string XmlPeek(string xpath, params (string, string)[] namespaces)", method.Syntax.Content[SyntaxLanguage.CSharp]);
}
}
}
diff --git a/test/Docfx.Dotnet.Tests/GenerateMetadataFromCSUnitTest.cs b/test/Docfx.Dotnet.Tests/GenerateMetadataFromCSUnitTest.cs
index fbad40a99f4..b51da661c42 100644
--- a/test/Docfx.Dotnet.Tests/GenerateMetadataFromCSUnitTest.cs
+++ b/test/Docfx.Dotnet.Tests/GenerateMetadataFromCSUnitTest.cs
@@ -5,11 +5,11 @@
using Docfx.DataContracts.ManagedReference;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Emit;
-using Xunit;
namespace Docfx.Dotnet.Tests;
-[Collection("docfx STA")]
+[DoNotParallelize]
+[TestClass]
public class GenerateMetadataFromCSUnitTest
{
private static readonly Dictionary EmptyMSBuildProperties = [];
@@ -21,8 +21,8 @@ private static MetadataItem Verify(string code, ExtractMetadataConfig config = n
return compilation.Assembly.GenerateMetadataItem(compilation, config, extensionMethods: extensionMethods);
}
- [Fact]
- [Trait("Related", "Attribute")]
+ [TestMethod]
+ [TestProperty("Related", "Attribute")]
public void TestGenerateMetadataAsyncWithFuncVoidReturn()
{
string code = @"
@@ -51,33 +51,33 @@ public void Func1(int i)
";
MetadataItem output = Verify(code);
var @class = output.Items[0].Items[0];
- Assert.NotNull(@class);
- Assert.Equal("Class1", @class.DisplayNames.First().Value);
- Assert.Equal("Class1", @class.DisplayNamesWithType.First().Value);
- Assert.Equal("Test1.Class1", @class.DisplayQualifiedNames.First().Value);
- Assert.Equal("This is a test", @class.Summary);
- Assert.Equal("Test1.Class1.Func1(System.Int32)", @class.SeeAlsos[0].LinkId);
- Assert.Equal(@"[Serializable]
+ Assert.IsNotNull(@class);
+ Assert.AreEqual("Class1", @class.DisplayNames.First().Value);
+ Assert.AreEqual("Class1", @class.DisplayNamesWithType.First().Value);
+ Assert.AreEqual("Test1.Class1", @class.DisplayQualifiedNames.First().Value);
+ Assert.AreEqual("This is a test", @class.Summary);
+ Assert.AreEqual("Test1.Class1.Func1(System.Int32)", @class.SeeAlsos[0].LinkId);
+ Assert.AreEqual(@"[Serializable]
public class Class1", @class.Syntax.Content[SyntaxLanguage.CSharp]);
var function = output.Items[0].Items[0].Items[0];
- Assert.NotNull(function);
- Assert.Equal("Func1(int)", function.DisplayNames.First().Value);
- Assert.Equal("Class1.Func1(int)", function.DisplayNamesWithType.First().Value);
- Assert.Equal("Test1.Class1.Func1(int)", function.DisplayQualifiedNames.First().Value);
- Assert.Equal("Test1.Class1.Func1(System.Int32)", function.Name);
- Assert.Equal("This is a function", function.Summary);
- Assert.Equal("System.Int32", function.SeeAlsos[0].LinkId);
- Assert.Equal("This is a param as ", function.Syntax.Parameters[0].Description);
- Assert.Single(output.Items);
+ Assert.IsNotNull(function);
+ Assert.AreEqual("Func1(int)", function.DisplayNames.First().Value);
+ Assert.AreEqual("Class1.Func1(int)", function.DisplayNamesWithType.First().Value);
+ Assert.AreEqual("Test1.Class1.Func1(int)", function.DisplayQualifiedNames.First().Value);
+ Assert.AreEqual("Test1.Class1.Func1(System.Int32)", function.Name);
+ Assert.AreEqual("This is a function", function.Summary);
+ Assert.AreEqual("System.Int32", function.SeeAlsos[0].LinkId);
+ Assert.AreEqual("This is a param as ", function.Syntax.Parameters[0].Description);
+ Assert.ContainsSingle(output.Items);
var parameter = function.Syntax.Parameters[0];
- Assert.Equal("i", parameter.Name);
- Assert.Equal("System.Int32", parameter.Type);
+ Assert.AreEqual("i", parameter.Name);
+ Assert.AreEqual("System.Int32", parameter.Type);
var returnValue = function.Syntax.Return;
- Assert.Null(returnValue);
+ Assert.IsNull(returnValue);
}
- [Fact]
+ [TestMethod]
public void TestGenerateMetadataAsyncWithNamespace()
{
string code = @"
@@ -90,17 +90,17 @@ public class Class1
}
";
MetadataItem output = Verify(code);
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
var ns = output.Items[0];
- Assert.NotNull(ns);
- Assert.Equal("Test1.Test2", ns.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Test2", ns.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Test2", ns.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(ns);
+ Assert.AreEqual("Test1.Test2", ns.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Test2", ns.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Test2", ns.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
}
- [Trait("Related", "Generic")]
- [Trait("Related", "Reference")]
- [Fact]
+ [TestProperty("Related", "Generic")]
+ [TestProperty("Related", "Reference")]
+ [TestMethod]
public void TestGenerateMetadataWithGenericClass()
{
string code = @"
@@ -125,124 +125,124 @@ public sealed class Class1 where T : struct, IEnumerable
}
";
MetadataItem output = Verify(code);
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
{
var type = output.Items[0].Items[0];
- Assert.NotNull(type);
- Assert.Equal("Class1", type.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Class1", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Class1", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Class1`1", type.Name);
- Assert.Equal("public sealed class Class1 where T : struct, IEnumerable", type.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.NotNull(type.Syntax.TypeParameters);
- Assert.Single(type.Syntax.TypeParameters);
- Assert.Equal("T", type.Syntax.TypeParameters[0].Name);
- Assert.Null(type.Syntax.TypeParameters[0].Type);
- Assert.Equal("The type", type.Syntax.TypeParameters[0].Description);
+ Assert.IsNotNull(type);
+ Assert.AreEqual("Class1", type.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Class1", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Class1", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Class1`1", type.Name);
+ Assert.AreEqual("public sealed class Class1 where T : struct, IEnumerable", type.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(type.Syntax.TypeParameters);
+ Assert.ContainsSingle(type.Syntax.TypeParameters);
+ Assert.AreEqual("T", type.Syntax.TypeParameters[0].Name);
+ Assert.IsNull(type.Syntax.TypeParameters[0].Type);
+ Assert.AreEqual("The type", type.Syntax.TypeParameters[0].Description);
}
{
var function = output.Items[0].Items[0].Items[0];
- Assert.NotNull(function);
- Assert.Equal("Func1(T?, IEnumerable)", function.DisplayNames.First().Value);
- Assert.Equal("Class1.Func1(T?, IEnumerable)", function.DisplayNamesWithType.First().Value);
- Assert.Equal("Test1.Class1.Func1(T?, System.Collections.Generic.IEnumerable)", function.DisplayQualifiedNames.First().Value);
- Assert.Equal("Test1.Class1`1.Func1``1(System.Nullable{`0},System.Collections.Generic.IEnumerable{`0})", function.Name);
+ Assert.IsNotNull(function);
+ Assert.AreEqual("Func1(T?, IEnumerable)", function.DisplayNames.First().Value);
+ Assert.AreEqual("Class1.Func1(T?, IEnumerable)", function.DisplayNamesWithType.First().Value);
+ Assert.AreEqual("Test1.Class1.Func1(T?, System.Collections.Generic.IEnumerable)", function.DisplayQualifiedNames.First().Value);
+ Assert.AreEqual("Test1.Class1`1.Func1``1(System.Nullable{`0},System.Collections.Generic.IEnumerable{`0})", function.Name);
var parameterX = function.Syntax.Parameters[0];
- Assert.Equal("x", parameterX.Name);
- Assert.Equal("System.Nullable{{T}}", parameterX.Type);
+ Assert.AreEqual("x", parameterX.Name);
+ Assert.AreEqual("System.Nullable{{T}}", parameterX.Type);
var parameterY = function.Syntax.Parameters[1];
- Assert.Equal("y", parameterY.Name);
- Assert.Equal("System.Collections.Generic.IEnumerable{{T}}", parameterY.Type);
+ Assert.AreEqual("y", parameterY.Name);
+ Assert.AreEqual("System.Collections.Generic.IEnumerable{{T}}", parameterY.Type);
var returnValue = function.Syntax.Return;
- Assert.NotNull(returnValue);
- Assert.NotNull(returnValue.Type);
- Assert.Equal("System.Nullable{{TResult}}", returnValue.Type);
- Assert.Equal("public TResult? Func1(T? x, IEnumerable y) where TResult : struct", function.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(returnValue);
+ Assert.IsNotNull(returnValue.Type);
+ Assert.AreEqual("System.Nullable{{TResult}}", returnValue.Type);
+ Assert.AreEqual("public TResult? Func1(T? x, IEnumerable y) where TResult : struct", function.Syntax.Content[SyntaxLanguage.CSharp]);
}
{
var property = output.Items[0].Items[0].Items[1];
- Assert.NotNull(property);
- Assert.Equal("Items", property.DisplayNames.First().Value);
- Assert.Equal("Class1.Items", property.DisplayNamesWithType.First().Value);
- Assert.Equal("Test1.Class1.Items", property.DisplayQualifiedNames.First().Value);
- Assert.Equal("Test1.Class1`1.Items", property.Name);
- Assert.Empty(property.Syntax.Parameters);
+ Assert.IsNotNull(property);
+ Assert.AreEqual("Items", property.DisplayNames.First().Value);
+ Assert.AreEqual("Class1.Items", property.DisplayNamesWithType.First().Value);
+ Assert.AreEqual("Test1.Class1.Items", property.DisplayQualifiedNames.First().Value);
+ Assert.AreEqual("Test1.Class1`1.Items", property.Name);
+ Assert.IsEmpty(property.Syntax.Parameters);
var returnValue = property.Syntax.Return;
- Assert.NotNull(returnValue.Type);
- Assert.Equal("System.Collections.Generic.IEnumerable{{T}}", returnValue.Type);
- Assert.Equal("public IEnumerable Items { get; set; }", property.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(returnValue.Type);
+ Assert.AreEqual("System.Collections.Generic.IEnumerable{{T}}", returnValue.Type);
+ Assert.AreEqual("public IEnumerable Items { get; set; }", property.Syntax.Content[SyntaxLanguage.CSharp]);
}
{
var event1 = output.Items[0].Items[0].Items[2];
- Assert.NotNull(event1);
- Assert.Equal("Event1", event1.DisplayNames.First().Value);
- Assert.Equal("Class1.Event1", event1.DisplayNamesWithType.First().Value);
- Assert.Equal("Test1.Class1.Event1", event1.DisplayQualifiedNames.First().Value);
- Assert.Equal("Test1.Class1`1.Event1", event1.Name);
- Assert.Null(event1.Syntax.Parameters);
- Assert.Equal("EventHandler", event1.Syntax.Return.Type);
- Assert.Equal("public event EventHandler Event1", event1.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(event1);
+ Assert.AreEqual("Event1", event1.DisplayNames.First().Value);
+ Assert.AreEqual("Class1.Event1", event1.DisplayNamesWithType.First().Value);
+ Assert.AreEqual("Test1.Class1.Event1", event1.DisplayQualifiedNames.First().Value);
+ Assert.AreEqual("Test1.Class1`1.Event1", event1.Name);
+ Assert.IsNull(event1.Syntax.Parameters);
+ Assert.AreEqual("EventHandler", event1.Syntax.Return.Type);
+ Assert.AreEqual("public event EventHandler Event1", event1.Syntax.Content[SyntaxLanguage.CSharp]);
}
{
var operator1 = output.Items[0].Items[0].Items[3];
- Assert.NotNull(operator1);
- Assert.Equal("operator ==(Class1, Class1)", operator1.DisplayNames.First().Value);
- Assert.Equal("Class1.operator ==(Class1, Class1)", operator1.DisplayNamesWithType.First().Value);
- Assert.Equal("Test1.Class1.operator ==(Test1.Class1, Test1.Class1)", operator1.DisplayQualifiedNames.First().Value);
- Assert.Equal("Test1.Class1`1.op_Equality(Test1.Class1{`0},Test1.Class1{`0})", operator1.Name);
- Assert.NotNull(operator1.Syntax.Parameters);
+ Assert.IsNotNull(operator1);
+ Assert.AreEqual("operator ==(Class1, Class1)", operator1.DisplayNames.First().Value);
+ Assert.AreEqual("Class1.operator ==(Class1, Class1)", operator1.DisplayNamesWithType.First().Value);
+ Assert.AreEqual("Test1.Class1.operator ==(Test1.Class1, Test1.Class1)", operator1.DisplayQualifiedNames.First().Value);
+ Assert.AreEqual("Test1.Class1`1.op_Equality(Test1.Class1{`0},Test1.Class1{`0})", operator1.Name);
+ Assert.IsNotNull(operator1.Syntax.Parameters);
var parameterX = operator1.Syntax.Parameters[0];
- Assert.Equal("x", parameterX.Name);
- Assert.Equal("Test1.Class1`1", parameterX.Type);
+ Assert.AreEqual("x", parameterX.Name);
+ Assert.AreEqual("Test1.Class1`1", parameterX.Type);
var parameterY = operator1.Syntax.Parameters[1];
- Assert.Equal("y", parameterY.Name);
- Assert.Equal("Test1.Class1`1", parameterY.Type);
+ Assert.AreEqual("y", parameterY.Name);
+ Assert.AreEqual("Test1.Class1`1", parameterY.Type);
- Assert.NotNull(operator1.Syntax.Return);
- Assert.Equal("System.Boolean", operator1.Syntax.Return.Type);
+ Assert.IsNotNull(operator1.Syntax.Return);
+ Assert.AreEqual("System.Boolean", operator1.Syntax.Return.Type);
- Assert.Equal("public static bool operator ==(Class1 x, Class1 y)", operator1.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("public static bool operator ==(Class1 x, Class1 y)", operator1.Syntax.Content[SyntaxLanguage.CSharp]);
}
{
var property = output.Items[0].Items[0].Items[4];
- Assert.NotNull(property);
- Assert.Equal("Items2", property.DisplayNames.First().Value);
- Assert.Equal("Class1.Items2", property.DisplayNamesWithType.First().Value);
- Assert.Equal("Test1.Class1.Items2", property.DisplayQualifiedNames.First().Value);
- Assert.Equal("Test1.Class1`1.Items2", property.Name);
- Assert.Empty(property.Syntax.Parameters);
+ Assert.IsNotNull(property);
+ Assert.AreEqual("Items2", property.DisplayNames.First().Value);
+ Assert.AreEqual("Class1.Items2", property.DisplayNamesWithType.First().Value);
+ Assert.AreEqual("Test1.Class1.Items2", property.DisplayQualifiedNames.First().Value);
+ Assert.AreEqual("Test1.Class1`1.Items2", property.Name);
+ Assert.IsEmpty(property.Syntax.Parameters);
var returnValue = property.Syntax.Return;
- Assert.NotNull(returnValue.Type);
- Assert.Equal("System.Collections.Generic.IEnumerable{{T}}", returnValue.Type);
- Assert.Equal("public IEnumerable Items2 { get; }", property.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(returnValue.Type);
+ Assert.AreEqual("System.Collections.Generic.IEnumerable{{T}}", returnValue.Type);
+ Assert.AreEqual("public IEnumerable Items2 { get; }", property.Syntax.Content[SyntaxLanguage.CSharp]);
}
// check references
{
- Assert.NotNull(output.References);
- Assert.True(output.References.Count > 0);
+ Assert.IsNotNull(output.References);
+ Assert.IsTrue(output.References.Count > 0);
- Assert.True(output.References.ContainsKey("Test1.Class1`1"));
+ Assert.IsTrue(output.References.ContainsKey("Test1.Class1`1"));
var reference = output.References["Test1.Class1`1"];
- Assert.True(reference.IsDefinition);
- Assert.Equal("Test1", reference.Parent);
- Assert.True(output.References.ContainsKey("Test1"));
+ Assert.IsTrue(reference.IsDefinition);
+ Assert.AreEqual("Test1", reference.Parent);
+ Assert.IsTrue(output.References.ContainsKey("Test1"));
reference = output.References["Test1"];
- Assert.True(reference.IsDefinition);
- Assert.Null(reference.Parent);
+ Assert.IsTrue(reference.IsDefinition);
+ Assert.IsNull(reference.Parent);
- Assert.True(output.References.ContainsKey("System.Collections.Generic.Dictionary`2"));
- Assert.NotNull(output.References["System.Collections.Generic.Dictionary`2"]);
- Assert.True(output.Items[0].Items[0].References.ContainsKey("System.Collections.Generic.Dictionary`2"));
- Assert.Null(output.Items[0].Items[0].References["System.Collections.Generic.Dictionary`2"]);
+ Assert.IsTrue(output.References.ContainsKey("System.Collections.Generic.Dictionary`2"));
+ Assert.IsNotNull(output.References["System.Collections.Generic.Dictionary`2"]);
+ Assert.IsTrue(output.Items[0].Items[0].References.ContainsKey("System.Collections.Generic.Dictionary`2"));
+ Assert.IsNull(output.Items[0].Items[0].References["System.Collections.Generic.Dictionary`2"]);
}
}
- [Fact]
+ [TestMethod]
public void TestGenerateMetadataWithInterface()
{
string code = @"
@@ -257,49 +257,49 @@ public interface IFoo
}
";
MetadataItem output = Verify(code);
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
{
var method = output.Items[0].Items[0].Items[0];
- Assert.NotNull(method);
- Assert.Equal("Bar(int)", method.DisplayNames.First().Value);
- Assert.Equal("IFoo.Bar(int)", method.DisplayNamesWithType.First().Value);
- Assert.Equal("Test1.IFoo.Bar(int)", method.DisplayQualifiedNames.First().Value);
- Assert.Equal("Test1.IFoo.Bar(System.Int32)", method.Name);
+ Assert.IsNotNull(method);
+ Assert.AreEqual("Bar(int)", method.DisplayNames.First().Value);
+ Assert.AreEqual("IFoo.Bar(int)", method.DisplayNamesWithType.First().Value);
+ Assert.AreEqual("Test1.IFoo.Bar(int)", method.DisplayQualifiedNames.First().Value);
+ Assert.AreEqual("Test1.IFoo.Bar(System.Int32)", method.Name);
var parameter = method.Syntax.Parameters[0];
- Assert.Equal("x", parameter.Name);
- Assert.Equal("System.Int32", parameter.Type);
+ Assert.AreEqual("x", parameter.Name);
+ Assert.AreEqual("System.Int32", parameter.Type);
var returnValue = method.Syntax.Return;
- Assert.NotNull(returnValue);
- Assert.NotNull(returnValue.Type);
- Assert.Equal("System.String", returnValue.Type);
+ Assert.IsNotNull(returnValue);
+ Assert.IsNotNull(returnValue.Type);
+ Assert.AreEqual("System.String", returnValue.Type);
}
{
var property = output.Items[0].Items[0].Items[1];
- Assert.NotNull(property);
- Assert.Equal("Count", property.DisplayNames.First().Value);
- Assert.Equal("IFoo.Count", property.DisplayNamesWithType.First().Value);
- Assert.Equal("Test1.IFoo.Count", property.DisplayQualifiedNames.First().Value);
- Assert.Equal("Test1.IFoo.Count", property.Name);
- Assert.Empty(property.Syntax.Parameters);
+ Assert.IsNotNull(property);
+ Assert.AreEqual("Count", property.DisplayNames.First().Value);
+ Assert.AreEqual("IFoo.Count", property.DisplayNamesWithType.First().Value);
+ Assert.AreEqual("Test1.IFoo.Count", property.DisplayQualifiedNames.First().Value);
+ Assert.AreEqual("Test1.IFoo.Count", property.Name);
+ Assert.IsEmpty(property.Syntax.Parameters);
var returnValue = property.Syntax.Return;
- Assert.NotNull(returnValue);
- Assert.NotNull(returnValue.Type);
- Assert.Equal("System.Int32", returnValue.Type);
+ Assert.IsNotNull(returnValue);
+ Assert.IsNotNull(returnValue.Type);
+ Assert.AreEqual("System.Int32", returnValue.Type);
}
{
var @event = output.Items[0].Items[0].Items[2];
- Assert.NotNull(@event);
- Assert.Equal("FooBar", @event.DisplayNames.First().Value);
- Assert.Equal("IFoo.FooBar", @event.DisplayNamesWithType.First().Value);
- Assert.Equal("Test1.IFoo.FooBar", @event.DisplayQualifiedNames.First().Value);
- Assert.Equal("Test1.IFoo.FooBar", @event.Name);
- Assert.Equal("event EventHandler FooBar", @event.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.Null(@event.Syntax.Parameters);
- Assert.Equal("EventHandler", @event.Syntax.Return.Type);
+ Assert.IsNotNull(@event);
+ Assert.AreEqual("FooBar", @event.DisplayNames.First().Value);
+ Assert.AreEqual("IFoo.FooBar", @event.DisplayNamesWithType.First().Value);
+ Assert.AreEqual("Test1.IFoo.FooBar", @event.DisplayQualifiedNames.First().Value);
+ Assert.AreEqual("Test1.IFoo.FooBar", @event.Name);
+ Assert.AreEqual("event EventHandler FooBar", @event.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNull(@event.Syntax.Parameters);
+ Assert.AreEqual("EventHandler", @event.Syntax.Return.Type);
}
}
- [Fact]
+ [TestMethod]
public void TestGenerateMetadataWithInterfaceAndInherits()
{
string code = @"
@@ -311,31 +311,31 @@ public interface IFooBar : IBar { }
}
";
MetadataItem output = Verify(code);
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
var iFoo = output.Items[0].Items[0];
- Assert.NotNull(iFoo);
- Assert.Equal("IFoo", iFoo.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("IFoo", iFoo.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.IFoo", iFoo.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("public interface IFoo", iFoo.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(iFoo);
+ Assert.AreEqual("IFoo", iFoo.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("IFoo", iFoo.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.IFoo", iFoo.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("public interface IFoo", iFoo.Syntax.Content[SyntaxLanguage.CSharp]);
var iBar = output.Items[0].Items[1];
- Assert.NotNull(iBar);
- Assert.Equal("IBar", iBar.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("IBar", iBar.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.IBar", iBar.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("public interface IBar : IFoo", iBar.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(iBar);
+ Assert.AreEqual("IBar", iBar.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("IBar", iBar.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.IBar", iBar.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("public interface IBar : IFoo", iBar.Syntax.Content[SyntaxLanguage.CSharp]);
var iFooBar = output.Items[0].Items[2];
- Assert.NotNull(iFooBar);
- Assert.Equal("IFooBar", iFooBar.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("IFooBar", iFooBar.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.IFooBar", iFooBar.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("public interface IFooBar : IBar, IFoo", iFooBar.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(iFooBar);
+ Assert.AreEqual("IFooBar", iFooBar.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("IFooBar", iFooBar.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.IFooBar", iFooBar.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("public interface IFooBar : IBar, IFoo", iFooBar.Syntax.Content[SyntaxLanguage.CSharp]);
}
- [Fact]
+ [TestMethod]
public void TestGenerateMetadataWithInternalInterfaceAndInherits()
{
string code = @"
@@ -346,18 +346,18 @@ internal interface IFoo { }
}
";
MetadataItem output = Verify(code);
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
var foo = output.Items[0].Items[0];
- Assert.NotNull(foo);
- Assert.Equal("Foo", foo.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Foo", foo.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Foo", foo.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("public class Foo", foo.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.Null(foo.Implements);
+ Assert.IsNotNull(foo);
+ Assert.AreEqual("Foo", foo.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Foo", foo.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Foo", foo.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("public class Foo", foo.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNull(foo.Implements);
}
- [Fact]
+ [TestMethod]
public void TestGenerateMetadataWithProtectedInterfaceAndInherits()
{
string code = @"
@@ -370,19 +370,19 @@ public class SubFoo : IFoo { }
}
";
MetadataItem output = Verify(code);
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
var subFoo = output.Items[0].Items[2];
- Assert.NotNull(subFoo);
- Assert.Equal("Foo.SubFoo", subFoo.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Foo.SubFoo", subFoo.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Foo.SubFoo", subFoo.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("public class Foo.SubFoo : Foo.IFoo", subFoo.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.NotNull(subFoo.Implements);
- Assert.Equal("Test1.Foo.IFoo", subFoo.Implements[0]);
+ Assert.IsNotNull(subFoo);
+ Assert.AreEqual("Foo.SubFoo", subFoo.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Foo.SubFoo", subFoo.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Foo.SubFoo", subFoo.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("public class Foo.SubFoo : Foo.IFoo", subFoo.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(subFoo.Implements);
+ Assert.AreEqual("Test1.Foo.IFoo", subFoo.Implements[0]);
}
- [Fact]
+ [TestMethod]
public void TestGenerateMetadataWithPublicInterfaceNestedInternal()
{
string code = @"
@@ -396,21 +396,21 @@ public class Foo : FooInternal.IFoo { }
}
";
MetadataItem output = Verify(code);
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
var foo = output.Items[0].Items[0];
- Assert.NotNull(foo);
- Assert.Equal("Foo", foo.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Foo", foo.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Foo", foo.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("public class Foo", foo.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.Null(foo.Implements);
- }
-
- [Trait("Related", "Generic")]
- [Trait("Related", "Inheritance")]
- [Trait("Related", "Reference")]
- [Fact]
+ Assert.IsNotNull(foo);
+ Assert.AreEqual("Foo", foo.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Foo", foo.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Foo", foo.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("public class Foo", foo.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNull(foo.Implements);
+ }
+
+ [TestProperty("Related", "Generic")]
+ [TestProperty("Related", "Inheritance")]
+ [TestProperty("Related", "Reference")]
+ [TestMethod]
public void TestGenerateMetadataWithClassAndInherits()
{
string code = @"
@@ -425,111 +425,111 @@ public interface IFooBar : IFoo, IBar { }
}
";
MetadataItem output = Verify(code);
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
var foo = output.Items[0].Items[0];
- Assert.NotNull(foo);
- Assert.Equal("Foo", foo.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Foo", foo.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Foo", foo.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("public class Foo : IFoo", foo.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.NotNull(foo.Implements);
- Assert.Single(foo.Implements);
- Assert.Equal(new[] { "Test1.IFoo" }, foo.Implements);
+ Assert.IsNotNull(foo);
+ Assert.AreEqual("Foo", foo.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Foo", foo.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Foo", foo.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("public class Foo : IFoo", foo.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(foo.Implements);
+ Assert.ContainsSingle(foo.Implements);
+ CollectionAssert.AreEqual(new[] { "Test1.IFoo" }, foo.Implements.ToArray());
var bar = output.Items[0].Items[1];
- Assert.NotNull(bar);
- Assert.Equal("Bar", bar.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Bar", bar.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Bar", bar.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("public class Bar : Foo, IFoo, IBar", bar.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.Equal(new[] { "System.Object", "Test1.Foo{{T}[]}" }, bar.Inheritance);
- Assert.Equal(new[] { "Test1.IFoo", "Test1.IBar" }, bar.Implements);
+ Assert.IsNotNull(bar);
+ Assert.AreEqual("Bar", bar.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Bar", bar.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Bar", bar.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("public class Bar : Foo, IFoo, IBar", bar.Syntax.Content[SyntaxLanguage.CSharp]);
+ CollectionAssert.AreEqual(new[] { "System.Object", "Test1.Foo{{T}[]}" }, bar.Inheritance.ToArray());
+ CollectionAssert.AreEqual(new[] { "Test1.IFoo", "Test1.IBar" }, bar.Implements.ToArray());
var fooBar = output.Items[0].Items[2];
- Assert.NotNull(fooBar);
- Assert.Equal("FooBar", fooBar.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("FooBar", fooBar.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.FooBar", fooBar.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("public class FooBar : Bar, IFooBar, IFoo, IBar", fooBar.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.Equal(new[] { "System.Object", "Test1.Foo{System.String[]}", "Test1.Bar{System.String}" }, fooBar.Inheritance);
- Assert.Equal(new[] { "Test1.IFoo", "Test1.IBar", "Test1.IFooBar" }.OrderBy(s => s), fooBar.Implements.OrderBy(s => s));
+ Assert.IsNotNull(fooBar);
+ Assert.AreEqual("FooBar", fooBar.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("FooBar", fooBar.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.FooBar", fooBar.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("public class FooBar : Bar, IFooBar, IFoo, IBar", fooBar.Syntax.Content[SyntaxLanguage.CSharp]);
+ CollectionAssert.AreEqual(new[] { "System.Object", "Test1.Foo{System.String[]}", "Test1.Bar{System.String}" }, fooBar.Inheritance.ToArray());
+ CollectionAssert.AreEqual(new[] { "Test1.IFoo", "Test1.IBar", "Test1.IFooBar" }.OrderBy(s => s).ToArray(), fooBar.Implements.OrderBy(s => s).ToArray());
- Assert.NotNull(output.References);
- Assert.Equal(19, output.References.Count);
+ Assert.IsNotNull(output.References);
+ Assert.AreEqual(19, output.References.Count);
{
var item = output.References["System.Object"];
- Assert.Equal("System", item.Parent);
- Assert.NotNull(item);
- Assert.Single(item.NameParts[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("System", item.Parent);
+ Assert.IsNotNull(item);
+ Assert.ContainsSingle(item.NameParts[SyntaxLanguage.CSharp]);
- Assert.Equal("System.Object", item.NameParts[SyntaxLanguage.CSharp][0].Name);
- Assert.Equal("object", string.Concat(item.NameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName)));
- Assert.Equal("object", string.Concat(item.NameWithTypeParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName)));
- Assert.Equal("object", string.Concat(item.QualifiedNameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName)));
+ Assert.AreEqual("System.Object", item.NameParts[SyntaxLanguage.CSharp][0].Name);
+ Assert.AreEqual("object", string.Concat(item.NameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName)));
+ Assert.AreEqual("object", string.Concat(item.NameWithTypeParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName)));
+ Assert.AreEqual("object", string.Concat(item.QualifiedNameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName)));
}
{
var item = output.References["Test1.Bar{System.String}"];
- Assert.NotNull(item);
- Assert.Equal("Test1.Bar`1", item.Definition);
- Assert.Equal("Test1", item.Parent);
-
- Assert.Equal(
- ["Test1.Bar`1", null, "System.String", null],
- item.NameParts[SyntaxLanguage.CSharp].Select(p => p.Name));
- Assert.Equal(
- ["Bar", "<", "string", ">"],
- item.NameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName));
- Assert.Equal(
- ["Bar", "<", "string", ">"],
- item.NameWithTypeParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName));
- Assert.Equal(
- ["Test1", ".", "Bar", "<", "string", ">"],
- item.QualifiedNameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName));
+ Assert.IsNotNull(item);
+ Assert.AreEqual("Test1.Bar`1", item.Definition);
+ Assert.AreEqual("Test1", item.Parent);
+
+ CollectionAssert.AreEqual(
+ new[] { "Test1.Bar`1", null, "System.String", null },
+ item.NameParts[SyntaxLanguage.CSharp].Select(p => p.Name).ToArray());
+ CollectionAssert.AreEqual(
+ new[] { "Bar", "<", "string", ">" },
+ item.NameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName).ToArray());
+ CollectionAssert.AreEqual(
+ new[] { "Bar", "<", "string", ">" },
+ item.NameWithTypeParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName).ToArray());
+ CollectionAssert.AreEqual(
+ new[] { "Test1", ".", "Bar", "<", "string", ">" },
+ item.QualifiedNameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName).ToArray());
}
{
var item = output.References["Test1.Foo{{T}[]}"];
- Assert.NotNull(item);
- Assert.Equal("Test1.Foo`1", item.Definition);
- Assert.Equal("Test1", item.Parent);
-
- Assert.Equal(6, item.NameParts[SyntaxLanguage.CSharp].Count);
-
- Assert.Equal(
- ["Test1.Foo`1", null, null, null, null, null],
- item.NameParts[SyntaxLanguage.CSharp].Select(p => p.Name));
- Assert.Equal(
- ["Foo", "<", "T", "[", "]", ">"],
- item.NameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName));
- Assert.Equal(
- ["Foo", "<", "T", "[", "]", ">"],
- item.NameWithTypeParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName));
- Assert.Equal(
- ["Test1", ".", "Foo", "<", "T", "[", "]", ">"],
- item.QualifiedNameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName));
+ Assert.IsNotNull(item);
+ Assert.AreEqual("Test1.Foo`1", item.Definition);
+ Assert.AreEqual("Test1", item.Parent);
+
+ Assert.AreEqual(6, item.NameParts[SyntaxLanguage.CSharp].Count);
+
+ CollectionAssert.AreEqual(
+ new string[] { "Test1.Foo`1", null, null, null, null, null },
+ item.NameParts[SyntaxLanguage.CSharp].Select(p => p.Name).ToArray());
+ CollectionAssert.AreEqual(
+ new string[] { "Foo", "<", "T", "[", "]", ">" },
+ item.NameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName).ToArray());
+ CollectionAssert.AreEqual(
+ new string[] { "Foo", "<", "T", "[", "]", ">" },
+ item.NameWithTypeParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName).ToArray());
+ CollectionAssert.AreEqual(
+ new string[] { "Test1", ".", "Foo", "<", "T", "[", "]", ">" },
+ item.QualifiedNameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName).ToArray());
}
{
var item = output.References["Test1.Foo{System.String[]}"];
- Assert.NotNull(item);
- Assert.Equal("Test1.Foo`1", item.Definition);
- Assert.Equal("Test1", item.Parent);
-
- Assert.Equal(
- ["Test1.Foo`1", null, "System.String", null, null, null],
- item.NameParts[SyntaxLanguage.CSharp].Select(p => p.Name));
- Assert.Equal(
- ["Foo", "<", "string", "[", "]", ">"],
- item.NameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName));
- Assert.Equal(
- ["Foo", "<", "string", "[", "]", ">"],
- item.NameWithTypeParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName));
- Assert.Equal(
- ["Test1", ".", "Foo", "<", "string", "[", "]", ">"],
- item.QualifiedNameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName));
- }
- }
-
- [Fact]
+ Assert.IsNotNull(item);
+ Assert.AreEqual("Test1.Foo`1", item.Definition);
+ Assert.AreEqual("Test1", item.Parent);
+
+ CollectionAssert.AreEqual(
+ new[] { "Test1.Foo`1", null, "System.String", null, null, null },
+ item.NameParts[SyntaxLanguage.CSharp].Select(p => p.Name).ToArray());
+ CollectionAssert.AreEqual(
+ new[] { "Foo", "<", "string", "[", "]", ">" },
+ item.NameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName).ToArray());
+ CollectionAssert.AreEqual(
+ new[] { "Foo", "<", "string", "[", "]", ">" },
+ item.NameWithTypeParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName).ToArray());
+ CollectionAssert.AreEqual(
+ new[] { "Test1", ".", "Foo", "<", "string", "[", "]", ">" },
+ item.QualifiedNameParts[SyntaxLanguage.CSharp].Select(p => p.DisplayName).ToArray());
+ }
+ }
+
+ [TestMethod]
public void TestGenerateMetadataWithEnum()
{
string code = @"
@@ -541,38 +541,38 @@ public enum XYZ:int{X,Y,Z}
}
";
MetadataItem output = Verify(code);
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
{
var type = output.Items[0].Items[0];
- Assert.NotNull(type);
- Assert.Equal("ABC", type.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("ABC", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.ABC", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.ABC", type.Name);
- Assert.Equal("public enum ABC", type.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(type);
+ Assert.AreEqual("ABC", type.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("ABC", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.ABC", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.ABC", type.Name);
+ Assert.AreEqual("public enum ABC", type.Syntax.Content[SyntaxLanguage.CSharp]);
}
{
var type = output.Items[0].Items[1];
- Assert.NotNull(type);
- Assert.Equal("YN", type.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("YN", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.YN", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.YN", type.Name);
- Assert.Equal("public enum YN : byte", type.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(type);
+ Assert.AreEqual("YN", type.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("YN", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.YN", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.YN", type.Name);
+ Assert.AreEqual("public enum YN : byte", type.Syntax.Content[SyntaxLanguage.CSharp]);
}
{
var type = output.Items[0].Items[2];
- Assert.NotNull(type);
- Assert.Equal("XYZ", type.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("XYZ", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.XYZ", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.XYZ", type.Name);
- Assert.Equal("public enum XYZ", type.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(type);
+ Assert.AreEqual("XYZ", type.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("XYZ", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.XYZ", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.XYZ", type.Name);
+ Assert.AreEqual("public enum XYZ", type.Syntax.Content[SyntaxLanguage.CSharp]);
}
}
- [Trait("Related", "Inheritance")]
- [Fact]
+ [TestProperty("Related", "Inheritance")]
+ [TestMethod]
public void TestGenerateMetadataWithStruct()
{
string code = @"
@@ -589,32 +589,32 @@ public struct Bar : IEnumerable
}
";
MetadataItem output = Verify(code);
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
{
var type = output.Items[0].Items[0];
- Assert.NotNull(type);
- Assert.Equal("Foo", type.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Foo", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Foo", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Foo", type.Name);
- Assert.Equal("public struct Foo", type.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.Null(type.Implements);
+ Assert.IsNotNull(type);
+ Assert.AreEqual("Foo", type.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Foo", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Foo", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Foo", type.Name);
+ Assert.AreEqual("public struct Foo", type.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNull(type.Implements);
}
{
var type = output.Items[0].Items[1];
- Assert.NotNull(type);
- Assert.Equal("Bar", type.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Bar", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Bar", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Bar`1", type.Name);
- Assert.Equal("public struct Bar : IEnumerable, IEnumerable", type.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.Equal(new[] { "System.Collections.Generic.IEnumerable{{T}}", "System.Collections.IEnumerable" }, type.Implements);
+ Assert.IsNotNull(type);
+ Assert.AreEqual("Bar", type.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Bar", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Bar", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Bar`1", type.Name);
+ Assert.AreEqual("public struct Bar : IEnumerable, IEnumerable", type.Syntax.Content[SyntaxLanguage.CSharp]);
+ CollectionAssert.AreEqual(new[] { "System.Collections.Generic.IEnumerable{{T}}", "System.Collections.IEnumerable" }, type.Implements.ToArray());
}
// inheritance of Foo
{
var inheritedMembers = output.Items[0].Items[0].InheritedMembers;
- Assert.NotNull(inheritedMembers);
- Assert.Equal(
+ Assert.IsNotNull(inheritedMembers);
+ CollectionAssert.AreEqual(
new string[]
{
"System.ValueType.ToString",
@@ -623,13 +623,13 @@ public struct Bar : IEnumerable
"System.Object.Equals(System.Object,System.Object)",
"System.Object.ReferenceEquals(System.Object,System.Object)",
"System.Object.GetType",
- }.OrderBy(s => s),
- inheritedMembers.OrderBy(s => s));
+ }.OrderBy(s => s).ToArray(),
+ inheritedMembers.OrderBy(s => s).ToArray());
}
}
- [Trait("Related", "Generic")]
- [Fact]
+ [TestProperty("Related", "Generic")]
+ [TestMethod]
public void TestGenerateMetadataWithDelegate()
{
string code = @"
@@ -644,83 +644,83 @@ namespace Test1
}
";
MetadataItem output = Verify(code);
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
{
var type = output.Items[0].Items[0];
- Assert.NotNull(type);
- Assert.Equal("Foo", type.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Foo", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Foo", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Foo", type.Name);
- Assert.Equal("public delegate void Foo()", type.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.Null(type.Syntax.Parameters);
- Assert.Null(type.Syntax.Return);
+ Assert.IsNotNull(type);
+ Assert.AreEqual("Foo", type.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Foo", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Foo", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Foo", type.Name);
+ Assert.AreEqual("public delegate void Foo()", type.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNull(type.Syntax.Parameters);
+ Assert.IsNull(type.Syntax.Return);
}
{
var type = output.Items[0].Items[1];
- Assert.NotNull(type);
- Assert.Equal("Bar", type.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Bar", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Bar", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Bar`1", type.Name);
- Assert.Equal("public delegate T Bar(IEnumerable x = null) where T : class", type.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(type);
+ Assert.AreEqual("Bar", type.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Bar", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Bar", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Bar`1", type.Name);
+ Assert.AreEqual("public delegate T Bar(IEnumerable x = null) where T : class", type.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.NotNull(type.Syntax.Parameters);
- Assert.Single(type.Syntax.Parameters);
- Assert.Equal("x", type.Syntax.Parameters[0].Name);
- Assert.Equal("System.Collections.Generic.IEnumerable{{T}}", type.Syntax.Parameters[0].Type);
- Assert.NotNull(type.Syntax.Return);
- Assert.Equal("{T}", type.Syntax.Return.Type);
+ Assert.IsNotNull(type.Syntax.Parameters);
+ Assert.ContainsSingle(type.Syntax.Parameters);
+ Assert.AreEqual("x", type.Syntax.Parameters[0].Name);
+ Assert.AreEqual("System.Collections.Generic.IEnumerable{{T}}", type.Syntax.Parameters[0].Type);
+ Assert.IsNotNull(type.Syntax.Return);
+ Assert.AreEqual("{T}", type.Syntax.Return.Type);
}
{
var type = output.Items[0].Items[2];
- Assert.NotNull(type);
- Assert.Equal("FooBar", type.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("FooBar", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.FooBar", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.FooBar", type.Name);
- Assert.Equal("public delegate void FooBar(ref int x, out string y, in bool z, params byte[] w)", type.Syntax.Content[SyntaxLanguage.CSharp]);
-
- Assert.NotNull(type.Syntax.Parameters);
- Assert.Equal(4, type.Syntax.Parameters.Count);
- Assert.Equal("x", type.Syntax.Parameters[0].Name);
- Assert.Equal("System.Int32", type.Syntax.Parameters[0].Type);
- Assert.Equal("y", type.Syntax.Parameters[1].Name);
- Assert.Equal("System.String", type.Syntax.Parameters[1].Type);
- Assert.Equal("z", type.Syntax.Parameters[2].Name);
- Assert.Equal("System.Boolean", type.Syntax.Parameters[2].Type);
- Assert.Equal("w", type.Syntax.Parameters[3].Name);
- Assert.Equal("System.Byte[]", type.Syntax.Parameters[3].Type);
- Assert.Null(type.Syntax.Return);
+ Assert.IsNotNull(type);
+ Assert.AreEqual("FooBar", type.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("FooBar", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.FooBar", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.FooBar", type.Name);
+ Assert.AreEqual("public delegate void FooBar(ref int x, out string y, in bool z, params byte[] w)", type.Syntax.Content[SyntaxLanguage.CSharp]);
+
+ Assert.IsNotNull(type.Syntax.Parameters);
+ Assert.AreEqual(4, type.Syntax.Parameters.Count);
+ Assert.AreEqual("x", type.Syntax.Parameters[0].Name);
+ Assert.AreEqual("System.Int32", type.Syntax.Parameters[0].Type);
+ Assert.AreEqual("y", type.Syntax.Parameters[1].Name);
+ Assert.AreEqual("System.String", type.Syntax.Parameters[1].Type);
+ Assert.AreEqual("z", type.Syntax.Parameters[2].Name);
+ Assert.AreEqual("System.Boolean", type.Syntax.Parameters[2].Type);
+ Assert.AreEqual("w", type.Syntax.Parameters[3].Name);
+ Assert.AreEqual("System.Byte[]", type.Syntax.Parameters[3].Type);
+ Assert.IsNull(type.Syntax.Return);
}
{
var type = output.Items[0].Items[3];
- Assert.NotNull(type);
- Assert.Equal("Ref", type.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Ref", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Ref", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Ref", type.Name);
- Assert.Equal("public delegate ref int Ref()", type.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(type);
+ Assert.AreEqual("Ref", type.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Ref", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Ref", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Ref", type.Name);
+ Assert.AreEqual("public delegate ref int Ref()", type.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.Null(type.Syntax.Parameters);
- Assert.Equal("System.Int32", type.Syntax.Return.Type);
+ Assert.IsNull(type.Syntax.Parameters);
+ Assert.AreEqual("System.Int32", type.Syntax.Return.Type);
}
{
var type = output.Items[0].Items[4];
- Assert.NotNull(type);
- Assert.Equal("RefReadonly", type.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("RefReadonly", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.RefReadonly", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.RefReadonly", type.Name);
- Assert.Equal("public delegate ref readonly int RefReadonly()", type.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(type);
+ Assert.AreEqual("RefReadonly", type.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("RefReadonly", type.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.RefReadonly", type.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.RefReadonly", type.Name);
+ Assert.AreEqual("public delegate ref readonly int RefReadonly()", type.Syntax.Content[SyntaxLanguage.CSharp]);
- Assert.Null(type.Syntax.Parameters);
- Assert.Equal("System.Int32", type.Syntax.Return.Type);
+ Assert.IsNull(type.Syntax.Parameters);
+ Assert.AreEqual("System.Int32", type.Syntax.Return.Type);
}
}
- [Trait("Related", "Generic")]
- [Fact]
+ [TestProperty("Related", "Generic")]
+ [TestMethod]
public void TestGenerateMetadataWithMethod()
{
string code = @"
@@ -752,136 +752,136 @@ public interface IFooBar
}
";
MetadataItem output = Verify(code);
- Assert.Single(output.Items);
+ Assert.ContainsSingle(output.Items);
// Foo
{
var method = output.Items[0].Items[0].Items[0];
- Assert.NotNull(method);
- Assert.Equal("M1()", method.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Foo.M1()", method.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Foo.M1()", method.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Foo`1.M1", method.Name);
- Assert.Equal("public abstract void M1()", method.Syntax.Content[SyntaxLanguage.CSharp]);
+ Assert.IsNotNull(method);
+ Assert.AreEqual("M1()", method.DisplayNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Foo.M1()", method.DisplayNamesWithType[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Foo.M1()", method.DisplayQualifiedNames[SyntaxLanguage.CSharp]);
+ Assert.AreEqual("Test1.Foo`1.M1", method.Name);
+ Assert.AreEqual("public abstract void M1()", method.Syntax.Content[SyntaxLanguage.CSharp]);
}
{
var method = output.Items[0].Items[0].Items[1];
- Assert.NotNull(method);
- Assert.Equal("M2(TArg)", method.DisplayNames[SyntaxLanguage.CSharp]);
- Assert.Equal("Foo.M2(TArg)", method.DisplayNamesWithType[SyntaxLanguage.CSharp]);
- Assert.Equal("Test1.Foo.M2