Skip to content

Commit

Permalink
Merge pull request #74 from smallrye/import/rs-tck-junit5-shim
Browse files Browse the repository at this point in the history
  • Loading branch information
cescoffier authored Jul 7, 2022
2 parents a50847d + 5eb52dd commit 6703d21
Show file tree
Hide file tree
Showing 11 changed files with 1,347 additions and 0 deletions.
41 changes: 41 additions & 0 deletions mutiny-zero-reactive-streams-junit5-tck/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Reactive Streams TCK for Junit 5

_This module is a fork of the Reactive Streams TCK (https://github.com/reactive-streams/reactive-streams-jvm/tree/master/tck)
but use Junit 5 instead of TestNG. This project does not depend on Mutiny._

The purpose of the *Reactive Streams Technology Compatibility Kit* (from here on referred to as: *the TCK*) is to guide
and help Reactive Streams library implementers to validate their implementations against the rules defined in
[the Specification](https://github.com/reactive-streams/reactive-streams-jvm).

## Structure of the TCK

The TCK aims to cover all rules defined in the Specification, however for some rules outlined in the Specification it is
not possible (or viable) to construct automated tests, thus the TCK can not claim to fully verify an implementation, however it
is very helpful and is able to validate the most important rules.

The TCK is split up into 4 test classes which are to be extended by implementers, providing their `Publisher` / `Subscriber`
/ `Processor` implementations for the test harness to validate.

The tests are split in the following way:

* `PublisherVerification`
* `SubscriberWhiteboxVerification`
* `SubscriberBlackboxVerification`
* `IdentityProcessorVerification`

The sections below include examples on how these can be used and describe the various configuration options.


```xml
<dependency>
<groupId>io.smallrye.reactive</groupId>
<artifactId>reactive-streams-junit5-tck</artifactId>
<version>${last mutiny release}</version>
<classifier>tests</classifier>
<type>test-jar</type>
<scope>test</scope>
</dependency>
```

Please refer to the [Reactive Streams Specification](https://github.com/reactive-streams/reactive-streams-jvm) for the official,
and to the last Mutiny release to find the latest version. Make sure that your Reactive Streams API and TCK dependency versions match.
39 changes: 39 additions & 0 deletions mutiny-zero-reactive-streams-junit5-tck/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<artifactId>mutiny-zero-parent</artifactId>
<groupId>io.smallrye.reactive</groupId>
<version>0.4.0-SNAPSHOT</version>
</parent>

<artifactId>mutiny-zero-reactive-streams-junit5-tck</artifactId>

<name>SmallRye Mutiny Zero - Reactive Streams TCK with JUnit5</name>
<description>The Reactive Streams TCK using JUnit 5 instead of TestNG</description>

<dependencies>

<dependency>
<groupId>org.reactivestreams</groupId>
<artifactId>reactive-streams</artifactId>
</dependency>

<dependency>
<groupId>org.reactivestreams</groupId>
<artifactId>reactive-streams-tck</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>

</dependencies>

</project>
46 changes: 46 additions & 0 deletions mutiny-zero-reactive-streams-junit5-tck/revapi.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
[
{
"extension": "revapi.java",
"id": "java",
"configuration": {
"missing-classes": {
"behavior": "report",
"ignoreMissingAnnotations": false
}
}
},
{
"extension": "revapi.filter",
"configuration": {
"elements": {
"include": [
{
"matcher": "java-package",
"match": "org.reactivestreams.tck.junit5"
}
]
}
}
},
{
"extension": "revapi.differences",
"id": "breaking-changes",
"configuration": {
"criticality": "highlight",
"minSeverity": "POTENTIALLY_BREAKING",
"minCriticality": "documented",
"differences": []
}
},
{
"extension": "revapi.reporter.json",
"configuration": {
"minSeverity": "POTENTIALLY_BREAKING",
"minCriticality": "documented",
"output": "target/compatibility.json",
"indent": true,
"append": false,
"keepEmptyFile": true
}
}
]
Loading

0 comments on commit 6703d21

Please sign in to comment.