mirror of
https://github.com/UglyToad/PdfPig.git
synced 2025-06-28 15:30:17 +08:00
393 lines
20 KiB
C#
393 lines
20 KiB
C#
namespace UglyToad.PdfPig.Tests
|
|
{
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using PdfPig.Graphics.Operations;
|
|
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.FullName == null)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
// Skip coverage measuring instrumentation classes.
|
|
if (type.FullName.StartsWith("Coverlet", StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if (type.IsPublic)
|
|
{
|
|
publicTypeNames.Add(type.FullName);
|
|
}
|
|
}
|
|
|
|
var expected = new List<string>
|
|
{
|
|
"UglyToad.PdfPig.AcroForms.AcroForm",
|
|
"UglyToad.PdfPig.AcroForms.AcroFormExtensions",
|
|
"UglyToad.PdfPig.AcroForms.SignatureFlags",
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroButtonFieldFlags",
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroCheckboxField",
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroCheckboxesField",
|
|
"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.AcroFieldType",
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroListBoxField",
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroNonTerminalField",
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroPushButtonField",
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroRadioButtonField",
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroRadioButtonsField",
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroSignatureField",
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroTextField",
|
|
"UglyToad.PdfPig.AcroForms.Fields.AcroTextFieldFlags",
|
|
"UglyToad.PdfPig.Actions.AbstractGoToAction",
|
|
"UglyToad.PdfPig.Actions.PdfAction",
|
|
"UglyToad.PdfPig.Actions.ActionType",
|
|
"UglyToad.PdfPig.Actions.GoToAction",
|
|
"UglyToad.PdfPig.Actions.GoToEAction",
|
|
"UglyToad.PdfPig.Actions.GoToRAction",
|
|
"UglyToad.PdfPig.Actions.UriAction",
|
|
"UglyToad.PdfPig.AdvancedPdfDocumentAccess",
|
|
"UglyToad.PdfPig.Annotations.Annotation",
|
|
"UglyToad.PdfPig.Annotations.AnnotationBorder",
|
|
"UglyToad.PdfPig.Annotations.AnnotationFlags",
|
|
"UglyToad.PdfPig.Annotations.AnnotationType",
|
|
"UglyToad.PdfPig.Annotations.AppearanceStream",
|
|
"UglyToad.PdfPig.Annotations.QuadPointsQuadrilateral",
|
|
"UglyToad.PdfPig.Content.ArtifactMarkedContentElement",
|
|
"UglyToad.PdfPig.Content.Catalog",
|
|
"UglyToad.PdfPig.Content.CropBox",
|
|
"UglyToad.PdfPig.Content.DocumentInformation",
|
|
"UglyToad.PdfPig.Content.EmbeddedFile",
|
|
"UglyToad.PdfPig.Content.Hyperlink",
|
|
"UglyToad.PdfPig.Content.InlineImage",
|
|
"UglyToad.PdfPig.Content.IPdfImage",
|
|
"UglyToad.PdfPig.Content.IResourceStore",
|
|
"UglyToad.PdfPig.Content.Letter",
|
|
"UglyToad.PdfPig.Content.MarkedContentElement",
|
|
"UglyToad.PdfPig.Content.MediaBox",
|
|
"UglyToad.PdfPig.Content.OptionalContentGroupElement",
|
|
"UglyToad.PdfPig.Content.Page",
|
|
"UglyToad.PdfPig.Content.PageFactoryBase`1",
|
|
"UglyToad.PdfPig.Content.PageRotationDegrees",
|
|
"UglyToad.PdfPig.Content.PageSize",
|
|
"UglyToad.PdfPig.Content.PageTreeNode",
|
|
"UglyToad.PdfPig.Content.PageTreeMembers",
|
|
"UglyToad.PdfPig.Content.Word",
|
|
"UglyToad.PdfPig.Content.TextOrientation",
|
|
"UglyToad.PdfPig.Content.XmpMetadata",
|
|
"UglyToad.PdfPig.Content.IPageFactory`1",
|
|
"UglyToad.PdfPig.CrossReference.CrossReferenceTable",
|
|
"UglyToad.PdfPig.CrossReference.CrossReferenceType",
|
|
"UglyToad.PdfPig.CrossReference.TrailerDictionary",
|
|
"UglyToad.PdfPig.Exceptions.PdfDocumentEncryptedException",
|
|
"UglyToad.PdfPig.Filters.DefaultFilterProvider",
|
|
"UglyToad.PdfPig.Filters.IFilter",
|
|
"UglyToad.PdfPig.Filters.IFilterProvider",
|
|
"UglyToad.PdfPig.Filters.ILookupFilterProvider",
|
|
"UglyToad.PdfPig.Functions.FunctionTypes",
|
|
"UglyToad.PdfPig.Functions.PdfFunction",
|
|
"UglyToad.PdfPig.PdfFonts.CharacterBoundingBox",
|
|
"UglyToad.PdfPig.PdfFonts.DescriptorFontFile",
|
|
"UglyToad.PdfPig.PdfFonts.FontDescriptor",
|
|
"UglyToad.PdfPig.PdfFonts.FontDescriptorFlags",
|
|
"UglyToad.PdfPig.PdfFonts.FontDetails",
|
|
"UglyToad.PdfPig.PdfFonts.FontStretch",
|
|
"UglyToad.PdfPig.PdfFonts.IFont",
|
|
"UglyToad.PdfPig.Geometry.GeometryExtensions",
|
|
"UglyToad.PdfPig.Geometry.UserSpaceUnit",
|
|
"UglyToad.PdfPig.Graphics.Colors.CMYKColor",
|
|
"UglyToad.PdfPig.Graphics.Colors.ColorSpace",
|
|
"UglyToad.PdfPig.Graphics.PdfPath",
|
|
"UglyToad.PdfPig.Graphics.Colors.ResourceColorSpace",
|
|
"UglyToad.PdfPig.Graphics.Colors.ColorSpaceExtensions",
|
|
"UglyToad.PdfPig.Graphics.Colors.ColorSpaceFamily",
|
|
"UglyToad.PdfPig.Graphics.Colors.GrayColor",
|
|
"UglyToad.PdfPig.Graphics.Colors.IColor",
|
|
"UglyToad.PdfPig.Graphics.Colors.RGBColor",
|
|
"UglyToad.PdfPig.Graphics.Colors.PatternColor",
|
|
"UglyToad.PdfPig.Graphics.Colors.TilingPatternColor",
|
|
"UglyToad.PdfPig.Graphics.Colors.ShadingPatternColor",
|
|
"UglyToad.PdfPig.Graphics.Colors.PatternType",
|
|
"UglyToad.PdfPig.Graphics.Colors.PatternPaintType",
|
|
"UglyToad.PdfPig.Graphics.Colors.PatternTilingType",
|
|
"UglyToad.PdfPig.Graphics.Colors.ColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.CalGrayColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.CalRGBColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.DeviceGrayColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.DeviceRgbColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.DeviceCmykColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.DeviceNColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.ICCBasedColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.IndexedColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.LabColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.PatternColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.SeparationColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.UnsupportedColorSpaceDetails",
|
|
"UglyToad.PdfPig.Graphics.Colors.Shading",
|
|
"UglyToad.PdfPig.Graphics.Colors.ShadingType",
|
|
"UglyToad.PdfPig.Graphics.Colors.FunctionBasedShading",
|
|
"UglyToad.PdfPig.Graphics.Colors.AxialShading",
|
|
"UglyToad.PdfPig.Graphics.Colors.RadialShading",
|
|
"UglyToad.PdfPig.Graphics.Colors.FreeFormGouraudShading",
|
|
"UglyToad.PdfPig.Graphics.Colors.LatticeFormGouraudShading",
|
|
"UglyToad.PdfPig.Graphics.Colors.CoonsPatchMeshesShading",
|
|
"UglyToad.PdfPig.Graphics.Colors.TensorProductPatchMeshesShading",
|
|
"UglyToad.PdfPig.Graphics.Core.LineCapStyle",
|
|
"UglyToad.PdfPig.Graphics.Core.LineDashPattern",
|
|
"UglyToad.PdfPig.Graphics.Core.LineJoinStyle",
|
|
"UglyToad.PdfPig.Graphics.Core.RenderingIntent",
|
|
"UglyToad.PdfPig.Graphics.CurrentFontState",
|
|
"UglyToad.PdfPig.Graphics.CurrentGraphicsState",
|
|
"UglyToad.PdfPig.Graphics.IColorSpaceContext",
|
|
"UglyToad.PdfPig.Graphics.IOperationContext",
|
|
"UglyToad.PdfPig.Graphics.Operations.ClippingPaths.ModifyClippingByEvenOddIntersect",
|
|
"UglyToad.PdfPig.Graphics.Operations.ClippingPaths.ModifyClippingByNonZeroWindingIntersect",
|
|
"UglyToad.PdfPig.Graphics.Operations.Compatibility.BeginCompatibilitySection",
|
|
"UglyToad.PdfPig.Graphics.Operations.Compatibility.EndCompatibilitySection",
|
|
"UglyToad.PdfPig.Graphics.Operations.PathPainting.CloseAndStrokePath",
|
|
"UglyToad.PdfPig.Graphics.Operations.PathPainting.CloseFillPathEvenOddRuleAndStroke",
|
|
"UglyToad.PdfPig.Graphics.Operations.PathPainting.CloseFillPathNonZeroWindingAndStroke",
|
|
"UglyToad.PdfPig.Graphics.Operations.PathPainting.EndPath",
|
|
"UglyToad.PdfPig.Graphics.Operations.PathPainting.FillPathEvenOddRule",
|
|
"UglyToad.PdfPig.Graphics.Operations.PathPainting.FillPathEvenOddRuleAndStroke",
|
|
"UglyToad.PdfPig.Graphics.Operations.PathPainting.FillPathNonZeroWinding",
|
|
"UglyToad.PdfPig.Graphics.Operations.PathPainting.FillPathNonZeroWindingAndStroke",
|
|
"UglyToad.PdfPig.Graphics.Operations.PathPainting.FillPathNonZeroWindingCompatibility",
|
|
"UglyToad.PdfPig.Graphics.Operations.PathPainting.StrokePath",
|
|
"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.InlineImages.BeginInlineImage",
|
|
"UglyToad.PdfPig.Graphics.Operations.InlineImages.BeginInlineImageData",
|
|
"UglyToad.PdfPig.Graphics.Operations.InlineImages.EndInlineImage",
|
|
"UglyToad.PdfPig.Graphics.Operations.InvokeNamedXObject",
|
|
"UglyToad.PdfPig.Graphics.Operations.MarkedContent.BeginMarkedContent",
|
|
"UglyToad.PdfPig.Graphics.Operations.MarkedContent.BeginMarkedContentWithProperties",
|
|
"UglyToad.PdfPig.Graphics.Operations.MarkedContent.DesignateMarkedContentPoint",
|
|
"UglyToad.PdfPig.Graphics.Operations.MarkedContent.DesignateMarkedContentPointWithProperties",
|
|
"UglyToad.PdfPig.Graphics.Operations.MarkedContent.EndMarkedContent",
|
|
"UglyToad.PdfPig.Graphics.Operations.PaintShading",
|
|
"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.SetNonStrokeColor",
|
|
"UglyToad.PdfPig.Graphics.Operations.SetNonStrokeColorAdvanced",
|
|
"UglyToad.PdfPig.Graphics.Operations.SetNonStrokeColorDeviceCmyk",
|
|
"UglyToad.PdfPig.Graphics.Operations.SetNonStrokeColorDeviceGray",
|
|
"UglyToad.PdfPig.Graphics.Operations.SetNonStrokeColorDeviceRgb",
|
|
"UglyToad.PdfPig.Graphics.Operations.SetNonStrokeColorSpace",
|
|
"UglyToad.PdfPig.Graphics.Operations.SetStrokeColorDeviceCmyk",
|
|
"UglyToad.PdfPig.Graphics.Operations.SetStrokeColor",
|
|
"UglyToad.PdfPig.Graphics.Operations.SetStrokeColorAdvanced",
|
|
"UglyToad.PdfPig.Graphics.Operations.SetStrokeColorDeviceGray",
|
|
"UglyToad.PdfPig.Graphics.Operations.SetStrokeColorDeviceRgb",
|
|
"UglyToad.PdfPig.Graphics.Operations.SetStrokeColorSpace",
|
|
"UglyToad.PdfPig.Graphics.Operations.SpecialGraphicsState.ModifyCurrentTransformationMatrix",
|
|
"UglyToad.PdfPig.Graphics.Operations.SpecialGraphicsState.Pop",
|
|
"UglyToad.PdfPig.Graphics.Operations.SpecialGraphicsState.Push",
|
|
"UglyToad.PdfPig.Graphics.Operations.SpecialGraphicsState.SetGraphicsStateParametersFromDictionary",
|
|
"UglyToad.PdfPig.Graphics.Operations.TextObjects.BeginText",
|
|
"UglyToad.PdfPig.Graphics.Operations.TextObjects.EndText",
|
|
"UglyToad.PdfPig.Graphics.Operations.TextPositioning.MoveToNextLine",
|
|
"UglyToad.PdfPig.Graphics.Operations.TextPositioning.MoveToNextLineWithOffset",
|
|
"UglyToad.PdfPig.Graphics.Operations.TextPositioning.MoveToNextLineWithOffsetSetLeading",
|
|
"UglyToad.PdfPig.Graphics.Operations.TextPositioning.SetTextMatrix",
|
|
"UglyToad.PdfPig.Graphics.Operations.TextShowing.MoveToNextLineShowText",
|
|
"UglyToad.PdfPig.Graphics.Operations.TextShowing.MoveToNextLineShowTextWithSpacing",
|
|
"UglyToad.PdfPig.Graphics.Operations.TextShowing.ShowText",
|
|
"UglyToad.PdfPig.Graphics.Operations.TextShowing.ShowTextsWithPositioning",
|
|
"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.Operations.TextState.Type3SetGlyphWidth",
|
|
"UglyToad.PdfPig.Graphics.Operations.TextState.Type3SetGlyphWidthAndBoundingBox",
|
|
"UglyToad.PdfPig.Graphics.TextMatrices",
|
|
"UglyToad.PdfPig.Graphics.XObjectContentRecord",
|
|
"UglyToad.PdfPig.Images.ColorSpaceDetailsByteConverter",
|
|
"UglyToad.PdfPig.IParsingOptions",
|
|
"UglyToad.PdfPig.Logging.ILog",
|
|
"UglyToad.PdfPig.Outline.Bookmarks",
|
|
"UglyToad.PdfPig.Outline.BookmarkNode",
|
|
"UglyToad.PdfPig.Outline.DocumentBookmarkNode",
|
|
"UglyToad.PdfPig.Outline.EmbeddedBookmarkNode",
|
|
"UglyToad.PdfPig.Outline.ExternalBookmarkNode",
|
|
"UglyToad.PdfPig.Outline.UriBookmarkNode",
|
|
"UglyToad.PdfPig.Outline.NamedDestinations",
|
|
"UglyToad.PdfPig.Outline.Destinations.ExplicitDestination",
|
|
"UglyToad.PdfPig.Outline.Destinations.ExplicitDestinationCoordinates",
|
|
"UglyToad.PdfPig.Outline.Destinations.ExplicitDestinationType",
|
|
"UglyToad.PdfPig.ParsingOptions",
|
|
"UglyToad.PdfPig.Parser.IPageContentParser",
|
|
"UglyToad.PdfPig.PdfDocument",
|
|
"UglyToad.PdfPig.PdfExtensions",
|
|
"UglyToad.PdfPig.Rendering.IPageImageRenderer",
|
|
"UglyToad.PdfPig.Rendering.PdfRendererImageFormat",
|
|
"UglyToad.PdfPig.Structure",
|
|
"UglyToad.PdfPig.Tokenization.Scanner.IPdfTokenScanner",
|
|
"UglyToad.PdfPig.Util.Adler32Checksum",
|
|
"UglyToad.PdfPig.Util.IWordExtractor",
|
|
"UglyToad.PdfPig.Util.DefaultWordExtractor",
|
|
"UglyToad.PdfPig.Util.DateFormatHelper",
|
|
"UglyToad.PdfPig.Util.WhitespaceSizeStatistics",
|
|
"UglyToad.PdfPig.Writer.ITokenWriter",
|
|
"UglyToad.PdfPig.Writer.PdfAStandard",
|
|
"UglyToad.PdfPig.Writer.PdfDocumentBuilder",
|
|
"UglyToad.PdfPig.Writer.PdfMerger",
|
|
"UglyToad.PdfPig.Writer.PdfTextRemover",
|
|
"UglyToad.PdfPig.Writer.PdfWriterType",
|
|
"UglyToad.PdfPig.Writer.PdfPageBuilder",
|
|
"UglyToad.PdfPig.Writer.TokenWriter",
|
|
"UglyToad.PdfPig.XObjects.XObjectImage",
|
|
"UglyToad.PdfPig.XObjects.XObjectImage",
|
|
"UglyToad.PdfPig.XObjects.XObjectType"
|
|
};
|
|
|
|
foreach (var publicTypeName in publicTypeNames)
|
|
{
|
|
Assert.True(expected.Contains(publicTypeName), $"Type should not be public: {publicTypeName}.");
|
|
}
|
|
|
|
foreach (var expectedPublicType in expected)
|
|
{
|
|
Assert.True(publicTypeNames.Contains(expectedPublicType), $"Type should be public: {expectedPublicType}.");
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void AllSpecificationOperatorsArePresent()
|
|
{
|
|
var assembly = typeof(PdfDocument).Assembly;
|
|
|
|
var types = assembly.GetTypes().Where(x => typeof(IGraphicsStateOperation).IsAssignableFrom(x) && !x.IsInterface);
|
|
|
|
var expectedSymbols = new[]
|
|
{
|
|
"b",
|
|
"B",
|
|
"b*",
|
|
"B*",
|
|
"BDC",
|
|
"BI",
|
|
"BMC",
|
|
"BT",
|
|
"BX",
|
|
"c",
|
|
"cm",
|
|
"CS",
|
|
"cs",
|
|
"d",
|
|
"d0",
|
|
"d1",
|
|
"Do",
|
|
"DP",
|
|
"EI",
|
|
"EMC",
|
|
"ET",
|
|
"EX",
|
|
"f",
|
|
"F",
|
|
"f*",
|
|
"G",
|
|
"g",
|
|
"gs",
|
|
"h",
|
|
"i",
|
|
"ID",
|
|
"j",
|
|
"J",
|
|
"K",
|
|
"k",
|
|
"l",
|
|
"m",
|
|
"M",
|
|
"MP",
|
|
"n",
|
|
"q",
|
|
"Q",
|
|
"re",
|
|
"RG",
|
|
"rg",
|
|
"ri",
|
|
"s",
|
|
"S",
|
|
"SC",
|
|
"sc",
|
|
"SCN",
|
|
"scn",
|
|
"sh",
|
|
"T*",
|
|
"Tc",
|
|
"Td",
|
|
"TD",
|
|
"Tf",
|
|
"Tj",
|
|
"TJ",
|
|
"TL",
|
|
"Tm",
|
|
"Tr",
|
|
"Ts",
|
|
"Tw",
|
|
"Tz",
|
|
"v",
|
|
"w",
|
|
"W",
|
|
"W*",
|
|
"y",
|
|
"'",
|
|
"\""
|
|
};
|
|
|
|
var symbols = new List<string>();
|
|
|
|
foreach (var type in types)
|
|
{
|
|
var symbol = type.GetField("Symbol", BindingFlags.Public | BindingFlags.Static);
|
|
if (symbol == null)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
symbols.Add(symbol.GetValue(null).ToString());
|
|
}
|
|
|
|
foreach (var expectedSymbol in expectedSymbols)
|
|
{
|
|
Assert.True(symbols.Contains(expectedSymbol), $"There is no operation defined with the symbol: {expectedSymbol}.");
|
|
}
|
|
}
|
|
}
|
|
}
|