Reference Implementation And Test Suite Overview
Explaining Reference Implementation and Test Suite, and why it's important to keep them in sync
Reference Implementation
Reference Implementation is an example (or reference) implementation of the OpenActive RPDE, Modelling, and Open Booking API specifications. It provides multiple RPDE feeds that contain test data, some of which can be "booked".
The code for Reference Implementation can be found as an example implementation of OpenActive.Server.NET here.
A hosted version of the Reference Implementation can be found here.
This hosted Reference Implementation is only to be used for referencing and not testing. It is running on a basic developer tier Azure instance with a burst quota, so it will not handle the load of a test suite run for all tests.
Reference Implementation has three main uses that make it very important in the OpenActive ecosystem:
For data publishers / booking systems: It is used to demonstrate the properties and shape of data and APIs, according to the OpenActive specifications
For data users / brokers: It is used as a trial integration where testing can be done with no ramifications
For contributors: It is used to ensure the Test Suite tests are correct and passing, for different combinations of Open Booking API features.
Test Suite
The OpenActive Test Suite is a multi-package project used for end-to-end testing of the various flows and failure states of an Open Booking API implementation. Its most important packages are explained in the README.md.
Test Suite is highly configurable to match the implementation under test. Passing the necessary tests results in an OpenActive Conformance Certificate. An OpenActive Conformance Certificate offers a mechanism by which implementing systems can demonstrate their conformance to the OpenActive specifications.
Keeping them in sync
It is vital that Reference Implementation and Test Suite are kept in sync with each other. Changes to either trigger the Test Suite to be run against the Reference Implementation in the project's CI pipeline. All changes to either project should run Test Suite against Reference Implementation, either locally or via CI, to ensure no unplanned breaking changes are merged in.
Last updated