Add a unit test for reading document information

This commit is contained in:
Richard Webb
2019-07-04 23:17:31 +01:00
parent 0dfe742770
commit 10dcbd0cc4
3 changed files with 39 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
namespace UglyToad.PdfPig.Tests.Integration
{
using System;
using PdfPig.Tokens;
using Xunit;
public class DocumentInformationTests
{
[Fact]
public void CanReadDocumentInformation()
{
var path = IntegrationHelpers.GetSpecificTestDocumentPath("custom-properties.pdf");
using (var document = PdfDocument.Open(path))
{
var information = document.Information;
Assert.Equal("Writer", information.Creator);
Assert.Equal("MoreKeywords", information.Keywords);
Assert.Equal("LibreOffice 6.1", information.Producer);
Assert.Equal("TestSubject", information.Subject);
Assert.Equal("TestTitle", information.Title);
var infoDictionary = information.DocumentInformationDictionary;
var nameToken = NameToken.Create("CustomProperty1");
Assert.True(infoDictionary.TryGet(nameToken, out var valueToken), "first custom property must be present");
Assert.IsType<StringToken>(valueToken);
Assert.Equal("Property Value", ((StringToken)valueToken).Data);
nameToken = NameToken.Create("CustomProperty2");
Assert.True(infoDictionary.TryGet(nameToken, out var valueToken2), "second custom property must be present");
Assert.IsType<StringToken>(valueToken2);
Assert.Equal("Another Property Value", ((StringToken)valueToken2).Data);
}
}
}
}