-
Notifications
You must be signed in to change notification settings - Fork 105
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added seperate tests for verifying traits processing #392
- Loading branch information
1 parent
6454201
commit c3d5e6c
Showing
2 changed files
with
294 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 = | ||
@"<test-suite | ||
id='121' | ||
name='FakeTestData' | ||
fullname='NUnit.VisualStudio.TestAdapter.Tests.Fakes.FakeTestData' | ||
classname='NUnit.VisualStudio.TestAdapter.Tests.Fakes.FakeTestData'> | ||
<properties> | ||
<property name='Category' value='super' /> | ||
</properties> | ||
<test-case | ||
id='123' | ||
name='FakeTestCase' | ||
fullname='NUnit.VisualStudio.TestAdapter.Tests.Fakes.FakeTestData.FakeTestCase' | ||
methodname='FakeTestCase' | ||
classname='NUnit.VisualStudio.TestAdapter.Tests.Fakes.FakeTestData'> | ||
<properties> | ||
<property name='Category' value='cat1' /> | ||
<property name='Priority' value='medium' /> | ||
</properties> | ||
</test-case> | ||
</test-suite>"; | ||
|
||
const string XmlHierarchyOfClasses = @"<test-run id='2' name='nUnitClassLibrary.dll' fullname='C:\Users\navb\source\repos\nUnitClassLibrary\nUnitClassLibrary\bin\Debug\nUnitClassLibrary.dll' testcasecount='5'> | ||
<test-suite type='Assembly' id='0-1009' name='nUnitClassLibrary.dll' fullname='C:\Users\navb\source\repos\nUnitClassLibrary\nUnitClassLibrary\bin\Debug\nUnitClassLibrary.dll' runstate='Runnable' testcasecount='5'> | ||
<properties> | ||
<property name='_PID' value='6164' /> | ||
<property name='_APPDOMAIN' value='domain-71b2ab93-nUnitClassLibrary.dll' /> | ||
</properties> | ||
<test-suite type='TestSuite' id='0-1010' name='nUnitClassLibrary' fullname='nUnitClassLibrary' runstate='Runnable' testcasecount='5'> | ||
<test-suite type='TestFixture' id='0-1000' name='Class1' fullname='nUnitClassLibrary.Class1' classname='nUnitClassLibrary.Class1' runstate='Runnable' testcasecount='1'> | ||
<properties> | ||
<property name='Category' value='BaseClass' /> | ||
</properties> | ||
<test-case id='0-1001' name='nUnitTest' fullname='nUnitClassLibrary.Class1.nUnitTest' methodname='nUnitTest' classname='nUnitClassLibrary.Class1' runstate='Runnable' seed='113395783'> | ||
<properties> | ||
<property name='Category' value='Base' /> | ||
</properties> | ||
</test-case> | ||
</test-suite> | ||
<test-suite type='TestFixture' id='0-1002' name='ClassD' fullname='nUnitClassLibrary.ClassD' classname='nUnitClassLibrary.ClassD' runstate='Runnable' testcasecount='2'> | ||
<properties> | ||
<property name='Category' value='DerivedClass' /> | ||
<property name='Category' value='BaseClass' /> | ||
</properties> | ||
<test-case id='0-1003' name='dNunitTest' fullname='nUnitClassLibrary.ClassD.dNunitTest' methodname='dNunitTest' classname='nUnitClassLibrary.ClassD' runstate='Runnable' seed='405714082'> | ||
<properties> | ||
<property name='Category' value='Derived' /> | ||
</properties> | ||
</test-case> | ||
<test-case id='0-1004' name='nUnitTest' fullname='nUnitClassLibrary.ClassD.nUnitTest' methodname='nUnitTest' classname='nUnitClassLibrary.Class1' runstate='Runnable' seed='1553985978'> | ||
<properties> | ||
<property name='Category' value='Base' /> | ||
</properties> | ||
</test-case> | ||
</test-suite> | ||
</test-suite> | ||
</test-suite> | ||
</test-run>"; | ||
|
||
const string XmlNestedClasses = @"<test-run id='2' name='nUnitClassLibrary.dll' fullname='C:\Users\navb\source\repos\nUnitClassLibrary\nUnitClassLibrary\bin\Debug\nUnitClassLibrary.dll' testcasecount='5'> | ||
<test-suite type='Assembly' id='0-1009' name='nUnitClassLibrary.dll' fullname='C:\Users\navb\source\repos\nUnitClassLibrary\nUnitClassLibrary\bin\Debug\nUnitClassLibrary.dll' runstate='Runnable' testcasecount='5'> | ||
<properties> | ||
<property name='_PID' value='6164' /> | ||
<property name='_APPDOMAIN' value='domain-71b2ab93-nUnitClassLibrary.dll' /> | ||
</properties> | ||
<test-suite type='TestSuite' id='0-1010' name='nUnitClassLibrary' fullname='nUnitClassLibrary' runstate='Runnable' testcasecount='5'> | ||
<test-suite type='TestFixture' id='0-1005' name='NestedClasses' fullname='nUnitClassLibrary.NestedClasses' classname='nUnitClassLibrary.NestedClasses' runstate='Runnable' testcasecount='1'> | ||
<properties> | ||
<property name='Category' value='NS1' /> | ||
</properties> | ||
<test-case id='0-1006' name='NC11' fullname='nUnitClassLibrary.NestedClasses.NC11' methodname='NC11' classname='nUnitClassLibrary.NestedClasses' runstate='Runnable' seed='1107340752'> | ||
<properties> | ||
<property name='Category' value='NS11' /> | ||
</properties> | ||
</test-case> | ||
</test-suite> | ||
<test-suite type='TestFixture' id='0-1007' name='NestedClasses+NestedClass2' fullname='nUnitClassLibrary.NestedClasses+NestedClass2' classname='nUnitClassLibrary.NestedClasses+NestedClass2' runstate='Runnable' testcasecount='1'> | ||
<properties> | ||
<property name='Category' value='NS2' /> | ||
</properties> | ||
<test-case id='0-1008' name='NC21' fullname='nUnitClassLibrary.NestedClasses+NestedClass2.NC21' methodname='NC21' classname='nUnitClassLibrary.NestedClasses+NestedClass2' runstate='Runnable' seed='1823789309'> | ||
<properties> | ||
<property name='Category' value='NS21' /> | ||
</properties> | ||
</test-case> | ||
</test-suite> | ||
</test-suite> | ||
</test-suite> | ||
</test-run>"; | ||
|
||
|
||
|
||
|
||
|
||
|
||
/// <summary> | ||
/// [Category("ClassLevel")] | ||
///public class ManyTests | ||
///{ | ||
/// [TestCase(1), Category("TestCase level")] | ||
/// [TestCase(2)] | ||
/// [Category("MethodLevel")] | ||
/// public void ThatWeExist(int n) | ||
/// { | ||
/// Assert.IsTrue(true); | ||
/// } | ||
///} | ||
/// </summary> | ||
const string TestXmlParametrizedData = | ||
@"<test-suite type='Assembly' id='4-1004' name='ClassLibrary11.dll' fullname='C:\Users\Terje\documents\visual studio 2017\Projects\ClassLibrary11\ClassLibrary11\bin\Debug\ClassLibrary11.dll' runstate='Runnable' testcasecount='2'> | ||
<properties> | ||
<property name='_PID' value='10904' /> | ||
<property name='_APPDOMAIN' value='domain-aa3de7f5-ClassLibrary11.dll' /> | ||
</properties> | ||
<test-suite type='TestSuite' id='4-1005' name='ClassLibrary11' fullname='ClassLibrary11' runstate='Runnable' testcasecount='2'> | ||
<test-suite type='TestFixture' id='4-1000' name='ManyTests' fullname='ClassLibrary11.ManyTests' classname='ClassLibrary11.ManyTests' runstate='Runnable' testcasecount='2'> | ||
<properties> | ||
<property name='Category' value='ClassLevel' /> | ||
</properties> | ||
<test-suite type='ParameterizedMethod' id='4-1003' name='ThatWeExist' fullname='ClassLibrary11.ManyTests.ThatWeExist' classname='ClassLibrary11.ManyTests' runstate='Runnable' testcasecount='2'> | ||
<properties> | ||
<property name='Category' value='TestCase level' /> | ||
<property name='Category' value='MethodLevel' /> | ||
</properties> | ||
<test-case id='4-1001' name='ThatWeExist(1)' fullname='ClassLibrary11.ManyTests.ThatWeExist(1)' methodname='ThatWeExist' classname='ClassLibrary11.ManyTests' runstate='Runnable' seed='1087191830' /> | ||
<test-case id='4-1002' name='ThatWeExist(2)' fullname='ClassLibrary11.ManyTests.ThatWeExist(2)' methodname='ThatWeExist' classname='ClassLibrary11.ManyTests' runstate='Runnable' seed='1855643337' /> | ||
</test-suite> | ||
</test-suite> | ||
</test-suite> | ||
</test-suite>"; | ||
|
||
/// <summary> | ||
/// [Category("ClassLevel")] | ||
///public class StandardClass | ||
///{ | ||
/// [Category("MethodLevel")] | ||
/// [Test] | ||
/// public void ThatWeExist() | ||
/// { | ||
/// Assert.IsTrue(true); | ||
/// } | ||
///} | ||
/// </summary> | ||
private const string TestXmlStandardClass = | ||
@"<test-suite type='Assembly' id='5-1002' name='ClassLibrary11.dll' fullname='C:\Users\Terje\documents\visual studio 2017\Projects\ClassLibrary11\ClassLibrary11\bin\Debug\ClassLibrary11.dll' runstate='Runnable' testcasecount='1'> | ||
<properties> | ||
<property name='_PID' value='10904' /> | ||
<property name='_APPDOMAIN' value='domain-aa3de7f5-ClassLibrary11.dll' /> | ||
</properties> | ||
<test-suite type='TestSuite' id='5-1003' name='ClassLibrary11' fullname='ClassLibrary11' runstate='Runnable' testcasecount='1'> | ||
<test-suite type='TestFixture' id='5-1000' name='StandardClass' fullname='ClassLibrary11.StandardClass' classname='ClassLibrary11.StandardClass' runstate='Runnable' testcasecount='1'> | ||
<properties> | ||
<property name='Category' value='ClassLevel' /> | ||
</properties> | ||
<test-case id='5-1001' name='ThatWeExist' fullname='ClassLibrary11.StandardClass.ThatWeExist' methodname='ThatWeExist' classname='ClassLibrary11.StandardClass' runstate='Runnable' seed='1462235782'> | ||
<properties> | ||
<property name='Category' value='MethodLevel' /> | ||
</properties> | ||
</test-case> | ||
</test-suite> | ||
</test-suite> | ||
</test-suite>"; | ||
|
||
|
||
|
||
|
||
|
||
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<TestCase> testcaselist; | ||
private TestDataForTraits testDataForTraits; | ||
|
||
|
||
[SetUp] | ||
public void SetUp() | ||
{ | ||
testDataForTraits = new TestDataForTraits(); | ||
var messagelogger = Substitute.For<IMessageLogger>(); | ||
var testlogger = new TestLogger(messagelogger, 5); | ||
|
||
testconverter = new TestConverter(testlogger, "whatever", false); | ||
testcaselist = new List<TestCase>(); | ||
} | ||
|
||
[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 | ||
} |