Table of Contents

Namespace CSF.Screenplay.Reporting

Classes

AssetPathProvider

Implementation of IGetsAssetFilePath which filename paths for assets.

ContentTypeProvider

Implementation of IGetsContentType which makes use of the MimeTypes NuGet package.

FormattableFormatter

Implementation of IValueFormatter which formats objects that implement IFormattableValue.

HumanizerFormatter

A formatter which makes use of the Humanizer: https://github.com/Humanizr/Humanizer library to format a limited number of value types.

JsonScreenplayReporter

An object which subscribes/listens to the events of IHasPerformanceEvents and which produces a JSON-formatted report from them.

MimeTypes

Provides utilities for mapping file names and extensions to MIME-types.

NameAndValue

A simple model for a value that is to be included in a formatted ReportFragment, which has an associated name.

NameFormatter

Implementation of IValueFormatter which formats objects that implement IHasName.

NoOpReporter

A no-op implementation of IReporter which does nothing.

PerformanceReportBuilder

Builder for an instance of PerformanceReport.

ReportFormat

Model used for creating a ReportFragment, which includes the original report fragment template string, a reworked template string suitable for use with Format(string, params object[]) and the placeholder values to be inserted into that format.

ReportFormatCreator

Default implementation of IGetsReportFormat.

ReportPathProvider

Stateful implementation of IGetsReportPath which caches the outcome of the path-determination logic.

ReportPathProviderExtensions

Extension methods for IGetsReportPath.

ReportTimer

Default implementation of IMeasuresTime which uses a Stopwatch.

ScreenplayReportBuilder

Builder type accumulates PerformanceReportBuilder as performances occur within the Screenplay.

ScreenplayReportSerializer

Implementation of IDeserializesReport and ISerializesReport which serializes and/or deserializes a Screenplay report to/from a JSON stream.

ToStringFormatter

Implementation of IValueFormatter which formats any object by using its default ToString() method, or returns the string <null> if the value is null.

ValueFormatterExtensions

Extension methods for IGetsValueFormatter.

ValueFormatterProvider

Implementation of IGetsValueFormatter which uses dependency injection services.

ValueFormatterRegistry

Default implementation of IFormatterRegistry which also serves as an object factory, by virtue of a service provider.

WritePermissionTester

Helper class to determine whether or not we have write permission to a specified file path.

Interfaces

IDeserializesReport

An object which deserializes a Screenplay report from a stream.

IFormattableValue

An object which has its own functionality for generating a human-readable representation of itself for a Screenplay report.

IFormatterRegistry

A registry of the concrete types of IValueFormatter which are available for use by the Screenplay reporting functionality.

IGetsAssetFilePath

A service which gets a filesystem path to which Screenplay asset files should be written, if they are to be written at all.

IGetsContentType

An object which can get the MIME type for a given filename.

IGetsReportFormat

An object which can get a ReportFormat from a report format template and the associated values.

IGetsReportPath

A service which gets the path to which the Screenplay report should be written.

IGetsValueFormatter

An object which can select the most appropriate implementation of IValueFormatter from a IFormatterRegistry.

IMeasuresTime

An object which acts as a stopwatch, intended for used in providing timing data for reports.

IReporter

Defines a reporter that subscribes to and processes events from a Screenplay event notifier.

ISerializesReport

An object which serializes a Screenplay report into a stream.

ITestsPathForWritePermissions

An object which may test a file system path for writability.

IValueFormatter

An object which can format a value which appears within a Screenplay report.