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
ConstructorsModifierConstructorDescriptionprotectedExtension_Mats(MatsSerializer<String> matsSerializer) protectedExtension_Mats(MatsSerializer<String> matsSerializer, DataSource dataSource) -
Method Summary
Modifier and TypeMethodDescriptionvoidafterAll(org.junit.jupiter.api.extension.ExtensionContext context) Executed by Jupiter after all test methods have been executed.voidbeforeAll(org.junit.jupiter.api.extension.ExtensionContext context) Executed by Jupiter before any test method is executed.static Extension_Matscreate()Creates anExtension_Matsutilizing theMATS default serializerstatic Extension_Matscreate(MatsSerializer<String> matsSerializer) Creates anExtension_Matsutilizing the user providedMatsSerializerwhich serializes to the type of String.static Extension_Matsstatic Extension_MatscreateWithDb(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_Matsutilizing theMATS default serializer -
create
Creates anExtension_Matsutilizing the user providedMatsSerializerwhich 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:
beforeAllin 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:
afterAllin interfaceorg.junit.jupiter.api.extension.AfterAllCallback
-