2018-01-11 03:49:32 +08:00
|
|
|
|
namespace UglyToad.PdfPig.Tests
|
2018-01-09 06:08:58 +08:00
|
|
|
|
{
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using Xunit;
|
|
|
|
|
|
|
|
|
|
public class PublicApiScannerTests
|
|
|
|
|
{
|
|
|
|
|
[Fact]
|
|
|
|
|
public void OnlyExposedApiIsPublic()
|
|
|
|
|
{
|
|
|
|
|
var assembly = typeof(PdfDocument).Assembly;
|
|
|
|
|
|
|
|
|
|
var types = assembly.GetTypes();
|
|
|
|
|
|
|
|
|
|
var publicTypeNames = new List<string>();
|
|
|
|
|
|
|
|
|
|
foreach (var type in types)
|
|
|
|
|
{
|
|
|
|
|
if (type.IsPublic)
|
|
|
|
|
{
|
|
|
|
|
publicTypeNames.Add(type.FullName);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var expected = new List<string>
|
|
|
|
|
{
|
2019-01-05 23:13:32 +08:00
|
|
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroChoiceFieldFlags",
|
|
|
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroChoiceOption",
|
|
|
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroComboBoxField",
|
|
|
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroFieldBase",
|
|
|
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroFieldCommonInformation",
|
|
|
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroListBoxField",
|
2019-01-05 23:17:24 +08:00
|
|
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroTextField",
|
|
|
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroTextFieldFlags",
|
2018-12-22 23:54:32 +08:00
|
|
|
|
"UglyToad.PdfPig.Annotations.Annotation",
|
|
|
|
|
"UglyToad.PdfPig.Annotations.AnnotationBorder",
|
|
|
|
|
"UglyToad.PdfPig.Annotations.AnnotationFlags",
|
2019-01-04 06:20:53 +08:00
|
|
|
|
"UglyToad.PdfPig.Annotations.AnnotationType",
|
2018-11-25 03:02:06 +08:00
|
|
|
|
"UglyToad.PdfPig.Content.Catalog",
|
|
|
|
|
"UglyToad.PdfPig.Content.DocumentInformation",
|
2018-01-11 03:49:32 +08:00
|
|
|
|
"UglyToad.PdfPig.Content.Letter",
|
|
|
|
|
"UglyToad.PdfPig.Content.Page",
|
|
|
|
|
"UglyToad.PdfPig.Content.PageSize",
|
2018-11-25 04:51:27 +08:00
|
|
|
|
"UglyToad.PdfPig.Content.Word",
|
2019-01-04 06:20:53 +08:00
|
|
|
|
"UglyToad.PdfPig.Core.TransformationMatrix",
|
2018-11-25 03:02:06 +08:00
|
|
|
|
"UglyToad.PdfPig.CrossReference.CrossReferenceTable",
|
|
|
|
|
"UglyToad.PdfPig.CrossReference.CrossReferenceType",
|
|
|
|
|
"UglyToad.PdfPig.CrossReference.TrailerDictionary",
|
2019-01-04 06:20:53 +08:00
|
|
|
|
"UglyToad.PdfPig.Exceptions.PdfDocumentFormatException",
|
2018-12-23 01:58:07 +08:00
|
|
|
|
"UglyToad.PdfPig.Fonts.DescriptorFontFile",
|
2019-01-04 06:20:53 +08:00
|
|
|
|
"UglyToad.PdfPig.Fonts.Exceptions.InvalidFontFormatException",
|
2018-12-23 01:58:07 +08:00
|
|
|
|
"UglyToad.PdfPig.Fonts.FontDescriptor",
|
|
|
|
|
"UglyToad.PdfPig.Fonts.FontDescriptorFlags",
|
|
|
|
|
"UglyToad.PdfPig.Fonts.FontStretch",
|
2018-12-29 00:55:46 +08:00
|
|
|
|
"UglyToad.PdfPig.Fonts.Standard14Font",
|
2019-01-04 06:20:53 +08:00
|
|
|
|
"UglyToad.PdfPig.Geometry.PdfPath",
|
|
|
|
|
"UglyToad.PdfPig.Geometry.PdfPoint",
|
|
|
|
|
"UglyToad.PdfPig.Geometry.PdfRectangle",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Core.LineCapStyle",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Core.LineDashPattern",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Core.LineJoinStyle",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Core.RenderingIntent",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Core.TextRenderingMode",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.CurrentFontState",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.CurrentGraphicsState",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.IOperationContext",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.ClippingPaths.ModifyClippingByEvenOddIntersect",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.ClippingPaths.ModifyClippingByNonZeroWindingIntersect",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.CloseAndStrokePath",
|
2019-01-05 02:55:36 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.CloseFillPathEvenOddRuleAndStroke",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.CloseFillPathNonZeroWindingAndStroke",
|
2019-01-04 06:20:53 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.EndPath",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.FillPathEvenOddRule",
|
2019-01-05 02:55:36 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.FillPathEvenOddRuleAndStroke",
|
2019-01-04 06:20:53 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.FillPathNonZeroWinding",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.FillPathNonZeroWindingAndStroke",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.FillPathNonZeroWindingCompatibility",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.General.SetColorRenderingIntent",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.General.SetFlatnessTolerance",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.General.SetLineCap",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.General.SetLineDashPattern",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.General.SetLineJoin",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.General.SetLineWidth",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.General.SetMiterLimit",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.IGraphicsStateOperation",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.InvokeNamedXObject",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.PathConstruction.AppendDualControlPointBezierCurve",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.PathConstruction.AppendEndControlPointBezierCurve",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.PathConstruction.AppendRectangle",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.PathConstruction.AppendStartControlPointBezierCurve",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.PathConstruction.AppendStraightLineSegment",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.PathConstruction.BeginNewSubpath",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.PathConstruction.CloseSubpath",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.SetNonStrokeColorDeviceCmyk",
|
2019-01-05 02:55:36 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.SetNonStrokeColorDeviceGray",
|
2019-01-04 06:20:53 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.SetNonStrokeColorDeviceRgb",
|
2019-01-05 02:55:36 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.SetStrokeColorDeviceCmyk",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.SetStrokeColorDeviceGray",
|
2019-01-04 06:20:53 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.SetStrokeColorDeviceRgb",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.SpecialGraphicsState.ModifyCurrentTransformationMatrix",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.SpecialGraphicsState.Pop",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.SpecialGraphicsState.Push",
|
2019-01-05 03:54:55 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.SpecialGraphicsState.SetGraphicsStateParametersFromDictionary",
|
2019-01-04 06:20:53 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.StrokePath",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextObjects.BeginText",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextObjects.EndText",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextPositioning.MoveToNextLine",
|
2019-01-05 02:55:36 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextPositioning.MoveToNextLineWithOffset",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextPositioning.MoveToNextLineWithOffsetSetLeading",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextPositioning.SetTextMatrix",
|
2019-01-04 06:20:53 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextShowing.MoveToNextLineShowText",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextShowing.MoveToNextLineShowTextWithSpacing",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextShowing.ShowText",
|
2019-01-05 02:55:36 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextShowing.ShowTextsWithPositioning",
|
2019-01-04 06:20:53 +08:00
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextState.SetCharacterSpacing",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextState.SetFontAndSize",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextState.SetHorizontalScaling",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextState.SetTextLeading",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextState.SetTextRenderingMode",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextState.SetTextRise",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.Operations.TextState.SetWordSpacing",
|
|
|
|
|
"UglyToad.PdfPig.Graphics.TextMatrices",
|
|
|
|
|
"UglyToad.PdfPig.IndirectReference",
|
|
|
|
|
"UglyToad.PdfPig.IO.IInputBytes",
|
|
|
|
|
"UglyToad.PdfPig.Logging.ILog",
|
|
|
|
|
"UglyToad.PdfPig.ParsingOptions",
|
|
|
|
|
"UglyToad.PdfPig.PdfDocument",
|
|
|
|
|
"UglyToad.PdfPig.Structure",
|
2018-11-25 03:02:06 +08:00
|
|
|
|
"UglyToad.PdfPig.Tokens.ArrayToken",
|
|
|
|
|
"UglyToad.PdfPig.Tokens.BooleanToken",
|
|
|
|
|
"UglyToad.PdfPig.Tokens.CommentToken",
|
|
|
|
|
"UglyToad.PdfPig.Tokens.DictionaryToken",
|
|
|
|
|
"UglyToad.PdfPig.Tokens.HexToken",
|
|
|
|
|
"UglyToad.PdfPig.Tokens.IDataToken`1",
|
|
|
|
|
"UglyToad.PdfPig.Tokens.IndirectReferenceToken",
|
|
|
|
|
"UglyToad.PdfPig.Tokens.IToken",
|
|
|
|
|
"UglyToad.PdfPig.Tokens.NameToken",
|
|
|
|
|
"UglyToad.PdfPig.Tokens.NullToken",
|
|
|
|
|
"UglyToad.PdfPig.Tokens.NumericToken",
|
|
|
|
|
"UglyToad.PdfPig.Tokens.ObjectToken",
|
|
|
|
|
"UglyToad.PdfPig.Tokens.StreamToken",
|
2018-11-25 04:51:27 +08:00
|
|
|
|
"UglyToad.PdfPig.Tokens.StringToken",
|
2018-11-27 03:46:41 +08:00
|
|
|
|
"UglyToad.PdfPig.Util.IWordExtractor",
|
2018-12-29 00:55:46 +08:00
|
|
|
|
"UglyToad.PdfPig.Writer.PdfDocumentBuilder",
|
|
|
|
|
"UglyToad.PdfPig.Writer.PdfPageBuilder",
|
|
|
|
|
"UglyToad.PdfPig.Writer.TokenWriter",
|
2018-11-27 03:46:41 +08:00
|
|
|
|
"UglyToad.PdfPig.XObjects.XObjectImage"
|
2018-01-09 06:08:58 +08:00
|
|
|
|
};
|
2019-01-05 02:55:36 +08:00
|
|
|
|
|
2018-11-25 03:02:06 +08:00
|
|
|
|
foreach (var publicTypeName in publicTypeNames)
|
|
|
|
|
{
|
|
|
|
|
Assert.True(expected.Contains(publicTypeName), $"Type should not be public: {publicTypeName}.");
|
|
|
|
|
}
|
2019-01-05 23:13:32 +08:00
|
|
|
|
|
|
|
|
|
foreach (var expectedPublicType in expected)
|
|
|
|
|
{
|
|
|
|
|
Assert.True(publicTypeNames.Contains(expectedPublicType), $"Type should be public: {expectedPublicType}.");
|
|
|
|
|
}
|
2018-01-09 06:08:58 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|