From c3d5e6cab8fb004895950d26f0771b350025c43d Mon Sep 17 00:00:00 2001 From: Terje Sandstrom Date: Thu, 28 Sep 2017 11:16:15 +0200 Subject: [PATCH] Added seperate tests for verifying traits processing #392 --- .../NUnit.TestAdapter.Tests.csproj | 3 +- src/NUnitTestAdapterTests/TraitsTests.cs | 292 ++++++++++++++++++ 2 files changed, 294 insertions(+), 1 deletion(-) create mode 100644 src/NUnitTestAdapterTests/TraitsTests.cs diff --git a/src/NUnitTestAdapterTests/NUnit.TestAdapter.Tests.csproj b/src/NUnitTestAdapterTests/NUnit.TestAdapter.Tests.csproj index 8b625885..377808e1 100644 --- a/src/NUnitTestAdapterTests/NUnit.TestAdapter.Tests.csproj +++ b/src/NUnitTestAdapterTests/NUnit.TestAdapter.Tests.csproj @@ -14,13 +14,14 @@ + - + diff --git a/src/NUnitTestAdapterTests/TraitsTests.cs b/src/NUnitTestAdapterTests/TraitsTests.cs new file mode 100644 index 00000000..93d12508 --- /dev/null +++ b/src/NUnitTestAdapterTests/TraitsTests.cs @@ -0,0 +1,292 @@ +using System.Collections.Generic; +using System.Linq; +using System.Xml; +using Microsoft.VisualStudio.TestPlatform.ObjectModel; +using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; +using NSubstitute; +using NUnit.Framework; + + +namespace NUnit.VisualStudio.TestAdapter.Tests +{ + + public class TestDataForTraits + { + const string TestXml = + @" + + + + + + + + + + "; + + const string XmlHierarchyOfClasses = @" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"; + + const string XmlNestedClasses = @" + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"; + + + + + + + /// + /// [Category("ClassLevel")] + ///public class ManyTests + ///{ + /// [TestCase(1), Category("TestCase level")] + /// [TestCase(2)] + /// [Category("MethodLevel")] + /// public void ThatWeExist(int n) + /// { + /// Assert.IsTrue(true); + /// } + ///} + /// + const string TestXmlParametrizedData = + @" + + + + + + + + + + + + + + + + + + + +"; + + /// + /// [Category("ClassLevel")] + ///public class StandardClass + ///{ + /// [Category("MethodLevel")] + /// [Test] + /// public void ThatWeExist() + /// { + /// Assert.IsTrue(true); + /// } + ///} + /// + private const string TestXmlStandardClass = + @" + + + + + + + + + + + + + + + + +"; + + + + + + public XmlNode XmlForNestedClasses => XmlHelper.CreateXmlNode(XmlNestedClasses); + public XmlNode XmlForHierarchyOfClasses => XmlHelper.CreateXmlNode(XmlHierarchyOfClasses); + public XmlNode XmlForParametrizedTests => XmlHelper.CreateXmlNode(TestXmlParametrizedData); + + public XmlNode XmlForStandardTest => XmlHelper.CreateXmlNode(TestXmlStandardClass); + + + + + + } + + + + + + +#if !NETCOREAPP1_0 + public class TestTraits + { + private TestConverter testconverter; + private List testcaselist; + private TestDataForTraits testDataForTraits; + + + [SetUp] + public void SetUp() + { + testDataForTraits = new TestDataForTraits(); + var messagelogger = Substitute.For(); + var testlogger = new TestLogger(messagelogger, 5); + + testconverter = new TestConverter(testlogger, "whatever", false); + testcaselist = new List(); + } + + [Test] + public void ThatParametrizedTestsHaveTraits() + { + var xml = testDataForTraits.XmlForParametrizedTests; + + ProcessXml2TestCase(xml); + + Assert.That(testcaselist.Count, Is.EqualTo(2), "Wrong number of testcases found"); + var testcase1 = testcaselist.FirstOrDefault(o => o.DisplayName == "ThatWeExist(1)"); + Assert.That(testcase1, Is.Not.Null, "Didn't find the first testcase"); + Assert.That(testcase1.Traits.Count(), Is.EqualTo(3), "Wrong number of categories for first test case"); + + + + + + var testcase2 = testcaselist.FirstOrDefault(o => o.DisplayName == "ThatWeExist(2)"); + Assert.That(testcase2, Is.Not.Null, "Didn't find the second testcase"); + Assert.That(testcase2.Traits.Count(), Is.EqualTo(3), "Wrong number of categories for second test case"); + + } + + [Test] + public void ThatDerivedClassesHaveTraits() + { + var xml = testDataForTraits.XmlForHierarchyOfClasses; + + ProcessXml2TestCase(xml); + + Assert.That(testcaselist.Count, Is.EqualTo(3), "Wrong number of testcases found"); + var testcase1 = testcaselist.FirstOrDefault(o => o.DisplayName == "dNunitTest"); + Assert.That(testcase1, Is.Not.Null, "Didn't find the testcase"); + Assert.That(testcase1.Traits.Count(), Is.EqualTo(3), "Wrong number of categories for derived test case"); + } + + [Test] + public void ThatNestedClassesHaveTraits() + { + var xml = testDataForTraits.XmlForNestedClasses; + + ProcessXml2TestCase(xml); + + Assert.That(testcaselist.Count, Is.EqualTo(2), "Wrong number of testcases found"); + var testcase1 = testcaselist.FirstOrDefault(o => o.DisplayName == "NC21"); + Assert.That(testcase1, Is.Not.Null, "Didn't find the testcase"); + Assert.That(testcase1.Traits.Count(), Is.EqualTo(2), "Wrong number of categories for derived test case"); + } + + private void ProcessXml2TestCase(XmlNode xml) + { + foreach (XmlNode node in xml.SelectNodes("//test-case")) + { + var testcase = testconverter.ConvertTestCase(node); + testcaselist.Add(testcase); + } + } + + + [Test] + public void ThatStandardClassHasTraits() + { + var xml = testDataForTraits.XmlForStandardTest; + + ProcessXml2TestCase(xml); + + Assert.That(testcaselist.Count, Is.EqualTo(1), "Wrong number of testcases found"); + var testcase1 = testcaselist.FirstOrDefault(o => o.DisplayName == "ThatWeExist"); + Assert.That(testcase1, Is.Not.Null, "Didn't find the testcase"); + Assert.That(testcase1.Traits.Count(), Is.EqualTo(2), "Wrong number of categories for first test case"); + + } + + } +#endif +}