Seddryck / NBi

NBi is a testing framework (add-on to NUnit) for Business Intelligence and Data Access. The main goal of this framework is to let users create tests with a declarative approach based on an Xml syntax. By the means of NBi, you don't need to develop C# or Java code to specify your tests! Either, you don't need Visual Studio or Eclipse to compile your test suite. Just create an Xml file and let the framework interpret it and play your tests. The framework is designed as an add-on of NUnit but with the possibility to port it easily to other testing frameworks.
http://www.nbi.io
Apache License 2.0
106 stars 37 forks source link

Support temporal assertions regarding a time period including/intersecting a specific time period #697

Open Seddryck opened 1 year ago

Seddryck commented 1 year ago

It should be possible to assert that a result-set, with a time period, is including a given time-period. A time period is defined as the closed-open time interval between two datetime.

For lags and leads, it's possible to define a variant strictly="true" to specify that there should be no intersection, meaning that the end-date should be prior to the start-date. As we've closed-open intervals, if the start date and end date are represented by the same value they automatically don't intersect.

<system-under-test>
  <result-set>
    ...
  </result-set>
</system-under-test>
<assert>
  <includes time-period="[2022-06-01;2022-07-01[">
    <time-period start="#3" end="EndPeriodColumn"/>
    <group-by>...<group-by>
  </includes>
</assert>

The optional group-by let you define that system-under-test rows should not be tested as a single set of rows but should be subdivided into subsets, each subset being defined by the group-by.