Namespace ProtoTest.Sheets
Classes
- ColumnAttribute
Binds one record property to a header path, for example
[Column("FY26", "Amount")].
- ProtoCell
One cell. Values are typed best-effort from the OpenXML cell type and number format: text, number, boolean or date, with the formula text kept alongside its cached value. Assertions are traced and fail with the sheet, reference, expected and actual value.
- ProtoCellAssertions
The
Should/ShouldNotsurface of a cell. Each check is implemented once and its polarity is fixed by the property that produced this facade, so a negative failure reads "Expected ... not to ..." and carries the same evidence as the positive one.
- ProtoColumn
A table column: its header path and its data cells.
- ProtoColumnAssertions
The
Should/ShouldNotsurface of a table column. The comparison is written once and runs with the polarity of the property that produced this facade.
- ProtoModelColumnAssertions<TValue>
The
Should/ShouldNotsurface of a typed model column. The comparison is written once and runs with the polarity of the property that produced this facade.
- ProtoModelColumn<TValue>
A typed model column with property-style assertions over its values.
- ProtoRange
A rectangular range of cells, row-major, with shape assertions.
- ProtoRangeAssertions
The
Should/ShouldNotsurface of a range. Each check is written once and runs with the polarity of the property that produced this facade.
- ProtoSheet
One sheet. Reading a cell or range records a
sheets.rangeobservation, which is what the coverage collector aggregates: coverage is the ranges the test actually read, not what the file has.
- ProtoSheetModel<TRow>
A sheet modelled as a record:
[Sheet]and[Column]declare the layout once, the model verifies it, and tests read typed rows and columns without repeating header paths. The record is the model; ProtoSheetModel<TRow> remains the escape hatch for shapes a record cannot hold.
- ProtoSheets
Entry point for opening generated workbooks.
- ProtoTable
A header-aware view of a sheet area. Header rows can be layered - a merged group header over subheaders - and a column is addressed by its full header path; a single segment matches when it is unambiguous, and ambiguity fails with the candidate paths instead of guessing.
- ProtoTableAssertions
The
Should/ShouldNotsurface of a table. The row lookup runs once and the polarity of the property that produced this facade decides whether finding the row passes or fails.
- ProtoTableRow
One data row of a table, addressable by header path (or a single unambiguous segment).
- ProtoWorkbook
An opened workbook. Reading is eager and complete: tests assert on values, so a missing sheet or reference must fail with a clear message rather than a lazy parser error later.
- SheetAttribute
Declares which sheet of the workbook a row record models, and where its headers live.
- SheetModelAssertions
Row-level shape assertions for record models, reusing the Json shape matcher the REST and GraphQL integrations use. A row record serializes with its property names, so an anonymous expected shape reads the same way as elsewhere.
- SheetsCoverageCollector
Aggregates the ranges a test read as sheet coverage: one item per
Sheet!A1:C10.
- SheetsOptions
Spreadsheet choices, layered from
ProtoTest:Sheets.
- SpreadsheetAssertionException
A spreadsheet assertion failed; the message names the sheet, reference and actual value.