Package io.mats3.test.jupiter
Class Extension_Mats
- All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterAllCallback
,org.junit.jupiter.api.extension.BeforeAllCallback
,org.junit.jupiter.api.extension.Extension
public class Extension_Mats
extends AbstractMatsTest<String>
implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback
Provides a full MATS harness for unit testing by creating
MatsFactory
utilizing an in-vm
Active MQ broker, and optionally a TestH2DataSource
for database tests.
Notice: If you are in a Spring-context, this is probably not what you are looking for, as the MatsFactory then
should reside as a bean in the Spring context. Look in the 'mats-spring-test' package for testing tools for Spring.
By default the extension
will create a MatsSerializerJson
which will be the serializer
utilized by the created MatsFactory
. Should one want to use a different serializer which
serializes to the type of String
then this can be specified using the method create(MatsSerializer)
.
However should one want to specify a serializer which serializes into anything other than String
, then
Extension_MatsGeneric
offers this possibility.
Extension_Mats
shall be annotated with
@RegisterExtension
and the instance field shall be static
for the Jupiter life cycle to pick up the extension at the correct time. Extension_Mats
can be viewed in the
same manner as one would view a ClassRule in JUnit4.
Example:
public class YourTestClass { @RegisterExtension public static final Extension_Mats MATS = Extension_Mats.createRule() }To get a variant that has a
TestH2DataSource
contained, and the MatsFactory set up with transactional
handling of that, use the createWithDb()
methods. In this case, you might want to clean the database before
each test method, which can be accomplished as such:
public class YourTestClass { @RegisterExtension public static final Extension_Mats MATS = Extension_Mats.createRule() @Before // Will clean the database before each test - if this is what you want. public void cleanDatabase() { MATS.getDataSource().cleanDatabase() } }
- See Also:
-
Field Summary
Fields inherited from class io.mats3.test.abstractunit.AbstractMatsTest
_createdMatsFactories, _dataSource, _matsFactory, _matsFuturizer, _matsInitiator, _matsSerializer, _matsTestBroker, _matsTestBrokerInterface, _matsTestLatch, log
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Extension_Mats
(MatsSerializer<String> matsSerializer) protected
Extension_Mats
(MatsSerializer<String> matsSerializer, DataSource dataSource) -
Method Summary
Modifier and TypeMethodDescriptionvoid
afterAll
(org.junit.jupiter.api.extension.ExtensionContext context) Executed by Jupiter after all test methods have been executed.void
beforeAll
(org.junit.jupiter.api.extension.ExtensionContext context) Executed by Jupiter before any test method is executed.static Extension_Mats
create()
Creates anExtension_Mats
utilizing theMATS default serializer
static Extension_Mats
create
(MatsSerializer<String> matsSerializer) Creates anExtension_Mats
utilizing the user providedMatsSerializer
which serializes to the type of String.static Extension_Mats
static Extension_Mats
createWithDb
(MatsSerializer<String> matsSerializer) Methods inherited from class io.mats3.test.abstractunit.AbstractMatsTest
afterAll, beforeAll, cleanMatsFactories, cleanMatsFactory, createMatsFactory, getDataSource, getJmsConnectionFactory, getMatsFactory, getMatsFuturizer, getMatsInitiator, getMatsInterceptableMatsFactory, getMatsTestBrokerInterface, getMatsTestLatch, id
-
Constructor Details
-
Extension_Mats
-
Extension_Mats
-
-
Method Details
-
create
Creates anExtension_Mats
utilizing theMATS default serializer
-
create
Creates anExtension_Mats
utilizing the user providedMatsSerializer
which serializes to the type of String. -
createWithDb
-
createWithDb
-
beforeAll
public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context) Executed by Jupiter before any test method is executed. (Once at the start of the class.)- Specified by:
beforeAll
in interfaceorg.junit.jupiter.api.extension.BeforeAllCallback
-
afterAll
public void afterAll(org.junit.jupiter.api.extension.ExtensionContext context) Executed by Jupiter after all test methods have been executed. (Once at the end of the class.)- Specified by:
afterAll
in interfaceorg.junit.jupiter.api.extension.AfterAllCallback
-