Skip to content

Commit 73aab53

Browse files
author
Lars Klein
committed
Update test cases
1 parent 576882f commit 73aab53

File tree

1 file changed

+103
-24
lines changed

1 file changed

+103
-24
lines changed

test/DocumentFormat.OpenXml.Tests/ofapiTest/OpenXmlReaderTest.cs

Lines changed: 103 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -399,8 +399,7 @@ public void PartReaderIgnoreWhitespaceTest(bool ignoreWhitespace)
399399
"</w:body>" +
400400
"</w:document>";
401401

402-
UTF8Encoding utf8Encoding = new UTF8Encoding();
403-
using var stream = new MemoryStream(utf8Encoding.GetBytes(PartText), false);
402+
using var stream = new MemoryStream(Encoding.UTF8.GetBytes(PartText), false);
404403

405404
using var reader = OpenXmlReader.Create(stream, false, ignoreWhitespace);
406405
Assert.False(reader.EOF);
@@ -439,24 +438,48 @@ public void TestIgnoreWhitespaceWithFormattedXml(bool ignoreWhitespace) {
439438
<w:r>
440439
<w:t>First Text</w:t>
441440
</w:r>
442-
<w:r>
443-
<w:t>Second Text</w:t>
444-
</w:r>
445441
</w:p>
446442
</w:body>
447443
</w:document>";
448444

449-
UTF8Encoding utf8Encoding = new UTF8Encoding();
450-
var exception = Record.Exception(() => {
451-
using var stream = new MemoryStream(utf8Encoding.GetBytes(PartText), false);
452-
using var reader = OpenXmlReader.Create(stream, false, ignoreWhitespace);
453-
while (reader.Read()) {
454-
}
445+
using var stream = new MemoryStream(Encoding.UTF8.GetBytes(PartText), false);
446+
using var reader = OpenXmlReader.Create(stream, false, ignoreWhitespace);
447+
Assert.True(reader.Read());
448+
Assert.False(reader.EOF);
449+
Assert.Equal(typeof(Document), reader.ElementType);
450+
Assert.True(reader.IsStartElement);
451+
Assert.True(reader.Read());
452+
Assert.Equal(typeof(Body), reader.ElementType);
453+
Assert.True(reader.IsStartElement);
454+
Assert.True(reader.Read());
455+
Assert.Equal(typeof(Paragraph), reader.ElementType);
456+
Assert.True(reader.IsStartElement);
457+
Assert.True(reader.Read());
458+
Assert.Equal(typeof(Run), reader.ElementType);
459+
Assert.True(reader.IsStartElement);
460+
Assert.True(reader.Read());
461+
Assert.Equal(typeof(Text), reader.ElementType);
462+
Assert.True(reader.IsStartElement);
463+
Assert.True(reader.Read());
464+
Assert.Equal(typeof(Text), reader.ElementType);
465+
Assert.True(reader.IsEndElement);
466+
Assert.True(reader.Read());
467+
Assert.Equal(typeof(Run), reader.ElementType);
468+
Assert.True(reader.IsEndElement);
469+
Assert.True(reader.Read());
470+
Assert.Equal(typeof(Paragraph), reader.ElementType);
471+
Assert.True(reader.IsEndElement);
472+
Assert.True(reader.Read());
473+
Assert.Equal(typeof(Body), reader.ElementType);
474+
Assert.True(reader.IsEndElement);
475+
Assert.True(reader.Read());
476+
Assert.Equal(typeof(Document), reader.ElementType);
477+
Assert.True(reader.IsEndElement);
478+
Assert.False(reader.Read());
479+
Assert.True(reader.EOF);
455480

456-
reader.Close();
457-
});
458-
Assert.Null(exception);
459-
}
481+
reader.Close();
482+
}
460483

461484
/// <summary>
462485
/// Test that the OpenXmlReader can handle a whitespace after the last element.
@@ -473,16 +496,72 @@ public void TestIgnoreWhitespaceWhitespaceAfterLastElement(bool ignoreWhitespace
473496
</w:body>
474497
</w:document> ";
475498

476-
UTF8Encoding utf8Encoding = new UTF8Encoding();
477-
var exception = Record.Exception(() => {
478-
using var stream = new MemoryStream(utf8Encoding.GetBytes(PartText), false);
479-
using var reader = OpenXmlReader.Create(stream, false, ignoreWhitespace);
480-
while (reader.Read()) {
481-
}
499+
using var stream = new MemoryStream(Encoding.UTF8.GetBytes(PartText), false);
500+
using var reader = OpenXmlReader.Create(stream, false, ignoreWhitespace);
501+
Assert.True(reader.Read());
502+
Assert.False(reader.EOF);
503+
Assert.Equal(typeof(Document), reader.ElementType);
504+
Assert.True(reader.IsStartElement);
505+
Assert.True(reader.Read());
506+
Assert.Equal(typeof(Body), reader.ElementType);
507+
Assert.True(reader.IsStartElement);
508+
Assert.True(reader.Read());
509+
Assert.Equal(typeof(Paragraph), reader.ElementType);
510+
Assert.True(reader.IsStartElement);
511+
Assert.True(reader.Read());
512+
Assert.Equal(typeof(Paragraph), reader.ElementType);
513+
Assert.True(reader.IsEndElement);
514+
Assert.True(reader.Read());
515+
Assert.Equal(typeof(Body), reader.ElementType);
516+
Assert.True(reader.IsEndElement);
517+
Assert.True(reader.Read());
518+
Assert.Equal(typeof(Document), reader.ElementType);
519+
Assert.True(reader.IsEndElement);
520+
Assert.False(reader.Read());
521+
Assert.True(reader.EOF);
482522

483-
reader.Close();
484-
});
485-
Assert.Null(exception);
523+
reader.Close();
524+
}
525+
526+
/// <summary>
527+
/// Test that the OpenXmlReader can handle a misc node after the last element.
528+
///</summary>
529+
[Fact]
530+
public void TestMiscNodeAfterDocument() {
531+
const string PartText = @"
532+
<w:document xmlns:v=""urn:schemas-microsoft-com:vml"" xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main"">
533+
<w:body>
534+
<w:p>
535+
</w:p>
536+
</w:body>
537+
</w:document> <!--Your comment-->";
538+
539+
using var stream = new MemoryStream(Encoding.UTF8.GetBytes(PartText), true);
540+
using var reader = OpenXmlReader.Create(stream);
541+
Assert.True(reader.Read());
542+
Assert.False(reader.EOF);
543+
Assert.Equal(typeof(Document), reader.ElementType);
544+
Assert.True(reader.IsStartElement);
545+
Assert.True(reader.Read());
546+
Assert.Equal(typeof(Body), reader.ElementType);
547+
Assert.True(reader.IsStartElement);
548+
Assert.True(reader.Read());
549+
Assert.Equal(typeof(Paragraph), reader.ElementType);
550+
Assert.True(reader.IsStartElement);
551+
Assert.True(reader.Read());
552+
Assert.Equal(typeof(Paragraph), reader.ElementType);
553+
Assert.True(reader.IsEndElement);
554+
Assert.True(reader.Read());
555+
Assert.Equal(typeof(Body), reader.ElementType);
556+
Assert.True(reader.IsEndElement);
557+
Assert.True(reader.Read());
558+
Assert.Equal(typeof(Document), reader.ElementType);
559+
Assert.True(reader.IsEndElement);
560+
561+
// not reading the misc node after the end of the document
562+
Assert.False(reader.Read());
563+
Assert.True(reader.EOF);
564+
reader.Close();
486565
}
487566

488567
/// <summary>

0 commit comments

Comments
 (0)