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/ShouldNot surface 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/ShouldNot surface of a table column. The comparison is written once and runs with the polarity of the property that produced this facade.

ProtoExecutionContextExtensions
ProtoHostBuilderExtensions
ProtoModelColumnAssertions<TValue>

The Should/ShouldNot surface 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/ShouldNot surface 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.range observation, 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/ShouldNot surface 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.