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

        return new Scenario<GIVEN, WHEN, THEN>( givenClass, whenClass, thenClass );
    }
Base class for Scenario tests.
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/ScenarioTestBase.java