Skip to content

Commit 991351e

Browse files
[Improve] code coverage
1 parent e8fb070 commit 991351e

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

ReqIFSharp.Tests/SpecElementWithAttributesTests/SpecHierarchyTestFixture.cs

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,21 @@ namespace ReqIFSharp.Tests.SpecElementWithAttributesTests
2222
{
2323
using System;
2424
using System.IO;
25+
using System.Linq;
2526
using System.Runtime.Serialization;
2627
using System.Threading;
2728
using System.Threading.Tasks;
2829
using System.Xml;
2930

3031
using Microsoft.Extensions.Logging;
32+
using Microsoft.Extensions.Logging.Abstractions;
3133

3234
using NUnit.Framework;
3335

3436
using ReqIFSharp;
3537

3638
using Serilog;
39+
using Serilog.Events;
3740

3841
/// <summary>
3942
/// Suite of tests for the <see cref="SpecHierarchy"/> class
@@ -45,12 +48,17 @@ public class SpecHierarchyTestFixture
4548

4649
private ILoggerFactory loggerFactory;
4750

51+
private TestLogEventSink testLogEventSink;
52+
4853
[OneTimeSetUp]
4954
public void OneTimeSetUp()
5055
{
56+
this.testLogEventSink = new TestLogEventSink();
57+
5158
Log.Logger = new LoggerConfiguration()
5259
.MinimumLevel.Verbose()
5360
.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {SourceContext} - {Message:lj}{NewLine}{Exception}")
61+
.WriteTo.Sink(this.testLogEventSink)
5462
.CreateLogger();
5563

5664
this.loggerFactory = LoggerFactory.Create(builder =>
@@ -62,6 +70,7 @@ public void OneTimeSetUp()
6270
[SetUp]
6371
public void SetUp()
6472
{
73+
this.testLogEventSink.Events.Clear();
6574
this.settings = new XmlWriterSettings();
6675
}
6776

@@ -274,5 +283,49 @@ public void SpecHierarchy_ReadXml_Verify_that_when_attribute_is_incorrect_type_e
274283

275284
Assert.That(() => specHierarchy.ReadXml(reader), Throws.InstanceOf<SerializationException>());
276285
}
286+
287+
[Test]
288+
public void ReadXml_UnsupportedElement_EmitsLogWarning()
289+
{
290+
var xml = """
291+
<UNSUPPORTED-ELEMENT />
292+
""";
293+
294+
var specHierarchy = new SpecHierarchy(this.loggerFactory);
295+
296+
using var reader = XmlReader.Create(new StringReader(xml), new XmlReaderSettings { Async = false, IgnoreWhitespace = false });
297+
298+
reader.MoveToContent();
299+
300+
specHierarchy.ReadXml(reader);
301+
302+
var warningEvent = this.testLogEventSink.Events
303+
.Where(e => e.Level == LogEventLevel.Warning)
304+
.ToList().First();
305+
306+
Assert.That(warningEvent.Properties["LocalName"].ToString().Trim('"'),
307+
Is.EqualTo("UNSUPPORTED-ELEMENT"));
308+
}
309+
310+
[Test]
311+
public async Task ReadXmlAsync_UnsupportedElement_EmitsLogWarning()
312+
{
313+
var xml = """
314+
<UNSUPPORTED-ELEMENT />
315+
""";
316+
317+
var specHierarchy = new SpecHierarchy(this.loggerFactory);
318+
319+
using var reader = XmlReader.Create(new StringReader(xml), new XmlReaderSettings { Async = true, IgnoreWhitespace = false });
320+
321+
await specHierarchy.ReadXmlAsync(reader, CancellationToken.None);
322+
323+
var warningEvent = this.testLogEventSink.Events
324+
.Where(e => e.Level == LogEventLevel.Warning)
325+
.ToList().First();
326+
327+
Assert.That(warningEvent.Properties["LocalName"].ToString().Trim('"'),
328+
Is.EqualTo("UNSUPPORTED-ELEMENT"));
329+
}
277330
}
278331
}

0 commit comments

Comments
 (0)