@SuppressWarnings( { "serial", "unchecked" } )
  protected Scenario<GIVEN_WHEN, GIVEN_WHEN, THEN> createScenario() {
    Class<GIVEN_WHEN> givenWhenClass = (Class<GIVEN_WHEN>) new TypeToken<GIVEN_WHEN>( getClass() ) {}.getRawType();
    Class<THEN> thenClass = (Class<THEN>) new TypeToken<THEN>( getClass() ) {}.getRawType();

    return new Scenario<>(givenWhenClass, givenWhenClass, thenClass);
  }
ScenarioTest that only takes two type parameters, where the first is used for combined
GIVEN and WHEN and the second is used for THEN.

This is useful for tests, where you often need to use WHEN steps also in GIVEN statements.

This class is typically not directly used by end users,
but instead test-framework-specific classes for JUnit or TestNG
jgiven-core/src/main/java/com/tngtech/jgiven/base/DualScenarioTestBase.java