4
4
namespace Xunit . Xml . TestLogger . AcceptanceTests
5
5
{
6
6
using System ;
7
+ using System . Collections . Generic ;
7
8
using System . Globalization ;
8
9
using System . IO ;
9
10
using System . Linq ;
@@ -133,15 +134,15 @@ public void AssemblyElementTotalAttributeShouldValueEqualToNumberOfTotalTests()
133
134
{
134
135
XmlNode assemblyNode = this . testResultsXmlDocument . SelectSingleNode ( TestResultsXmlTests . AssemblyElement ) ;
135
136
136
- Assert . Equal ( "5 " , assemblyNode . Attributes [ "total" ] . Value ) ;
137
+ Assert . Equal ( "6 " , assemblyNode . Attributes [ "total" ] . Value ) ;
137
138
}
138
139
139
140
[ Fact ]
140
141
public void AssemblyElementPassedAttributeShouldValueEqualToNumberOfPassedTests ( )
141
142
{
142
143
XmlNode assemblyNode = this . testResultsXmlDocument . SelectSingleNode ( TestResultsXmlTests . AssemblyElement ) ;
143
144
144
- Assert . Equal ( "2 " , assemblyNode . Attributes [ "passed" ] . Value ) ;
145
+ Assert . Equal ( "3 " , assemblyNode . Attributes [ "passed" ] . Value ) ;
145
146
}
146
147
147
148
[ Fact ]
@@ -192,7 +193,7 @@ public void CollectionElementsCountShouldBeTwo()
192
193
{
193
194
XmlNodeList collectionElementNodeList = this . testResultsXmlDocument . SelectNodes ( TestResultsXmlTests . CollectionElement ) ;
194
195
195
- Assert . True ( collectionElementNodeList . Count == 2 ) ;
196
+ Assert . Equal ( 3 , collectionElementNodeList . Count ) ;
196
197
}
197
198
198
199
[ Fact ]
@@ -237,13 +238,25 @@ public void CollectionElementTimeAttributeShouldHaveValidFormatValue()
237
238
}
238
239
239
240
[ Fact ]
240
- public void CollectionElementShouldContainThreeTestsElemets ( )
241
+ public void CollectionElementShouldContainThreeTestsElements ( )
241
242
{
242
243
XmlNode unitTest1Collection = this . GetUnitTest1Collection ( ) ;
243
244
244
245
Assert . True ( unitTest1Collection . SelectNodes ( "test" ) . Count == 3 ) ;
245
246
}
246
247
248
+ [ Fact ]
249
+ public void TestElementNameAttributeShouldBeEscaped ( )
250
+ {
251
+ var testNodes = this . GetTestXmlNodePartial (
252
+ "UnitTest3" ,
253
+ @"Xunit.Xml.TestLogger.NetCore.Tests.UnitTest3.TestInvalidName" ) ;
254
+
255
+ Assert . Equal (
256
+ "Xunit.Xml.TestLogger.NetCore.Tests.UnitTest3.TestInvalidName(input: \" Head\\ u0080r\" )" ,
257
+ testNodes . Item ( 0 ) . Attributes [ "name" ] . Value ) ;
258
+ }
259
+
247
260
[ Fact ]
248
261
public void TestElementTypeAttributeShouldHaveCorrectValue ( )
249
262
{
@@ -290,7 +303,9 @@ public void FailedTestElementResultAttributeShouldHaveValueFail()
290
303
[ Fact ]
291
304
public void PassedTestElementResultAttributeShouldHaveValuePass ( )
292
305
{
293
- XmlNode passedTestXmlNode = this . GetATestXmlNode ( "Xunit.Xml.TestLogger.NetCore.Tests.UnitTest1.PassTest11" ) ;
306
+ XmlNode passedTestXmlNode = this . GetATestXmlNode (
307
+ "UnitTest1" ,
308
+ "Xunit.Xml.TestLogger.NetCore.Tests.UnitTest1.PassTest11" ) ;
294
309
295
310
Assert . Equal ( "Pass" , passedTestXmlNode . Attributes [ "result" ] . Value ) ;
296
311
}
@@ -317,7 +332,9 @@ public void FailedTestElementShouldContainsFailureDetails()
317
332
[ Fact ]
318
333
public void SkippedTestElementShouldContainSkippingReason ( )
319
334
{
320
- XmlNode skippedTestNode = this . GetATestXmlNode ( "Xunit.Xml.TestLogger.NetCore.Tests.UnitTest1.SkipTest11" ) ;
335
+ XmlNode skippedTestNode = this . GetATestXmlNode (
336
+ "UnitTest1" ,
337
+ "Xunit.Xml.TestLogger.NetCore.Tests.UnitTest1.SkipTest11" ) ;
321
338
var reasonNodes = skippedTestNode . SelectNodes ( "reason" ) ;
322
339
323
340
Assert . Equal ( 1 , reasonNodes . Count ) ;
@@ -331,27 +348,38 @@ public void SkippedTestElementShouldContainSkippingReason()
331
348
Assert . Equal ( expectedReason , reasonData . Value ) ;
332
349
}
333
350
334
- private XmlNode GetATestXmlNode ( string queryTestName = "Xunit.Xml.TestLogger.NetCore.Tests.UnitTest1.FailTest11" )
351
+ private XmlNode GetATestXmlNode (
352
+ string collectionName = "UnitTest1" ,
353
+ string queryTestName = "Xunit.Xml.TestLogger.NetCore.Tests.UnitTest1.FailTest11" )
335
354
{
336
- XmlNode unitTest1Collection = this . GetUnitTest1Collection ( ) ;
355
+ var unitTest1Collection = this . GetUnitTestCollection ( collectionName ) ;
337
356
338
357
var testNodes = unitTest1Collection . SelectNodes ( $ "test[@name=\" { queryTestName } \" ]") ;
339
358
return testNodes . Item ( 0 ) ;
340
359
}
341
360
342
- private XmlNode GetUnitTest1Collection ( )
361
+ private XmlNodeList GetTestXmlNodePartial (
362
+ string collectionName ,
363
+ string testName )
343
364
{
344
- XmlNodeList collectionElementNodeList =
345
- this . testResultsXmlDocument . SelectNodes ( TestResultsXmlTests . CollectionElement ) ;
365
+ var unitTest1Collection = this . GetUnitTestCollection ( collectionName ) ;
346
366
347
- Assert . True ( collectionElementNodeList . Count == 2 ) ;
367
+ var testNodes = unitTest1Collection . SelectNodes ( $ "test[contains(@name, \" { testName } \" )]") ;
368
+ return testNodes ;
369
+ }
348
370
349
- XmlNode unitTest1Collection = null ;
350
- var firstCollectionName = collectionElementNodeList [ 0 ] . Attributes [ "name" ] ;
351
- unitTest1Collection = "Test collection for Xunit.Xml.TestLogger.NetCore.Tests.UnitTest1" . Equals ( firstCollectionName . Value )
352
- ? collectionElementNodeList [ 0 ] : collectionElementNodeList [ 1 ] ;
371
+ private XmlNode GetUnitTestCollection ( string name )
372
+ {
373
+ var testNodes = this . testResultsXmlDocument . SelectNodes (
374
+ $ "//assemblies/assembly/collection[contains(@name, \" { name } \" )]" ) ;
353
375
354
- return unitTest1Collection ;
376
+ Assert . Equal ( 1 , testNodes . Count ) ;
377
+ return testNodes . Item ( 0 ) ;
378
+ }
379
+
380
+ private XmlNode GetUnitTest1Collection ( )
381
+ {
382
+ return this . GetUnitTestCollection ( "UnitTest1" ) ;
355
383
}
356
384
}
357
385
}
0 commit comments