Gina Replay
This project use the Gina Events library to provides a recording/replaying system. This library should be used to record sessions and to replay them while checking the system responses.
Getting started
To use this library you should :
- instantiate a GinaReplayManager
manager = new GinaReplayManager();
- add the different EventDescription you want it to manage
manager.addEventDescriptionModels(FIBEventDescription.class);
- create a GinaReplaySession and register it in the GinaReplayManager
GinaReplaySession session = new GinaReplaySession(manager);
session.setCurrentSession(recorder);
- start the GinaReplaySession, it will be by default in recording mode except if it is started externally in replay mode
session.start();
- you can use GinaReplaySession.isRecording() to check if the system is in recording mode
For detailed examples, please check gina-replay/src/test/java/cases.
Replay Mode
To start a replay mode :
- instantiate a ReplayTestConfiguration
ReplayTestConfiguration testConfiguration = new ReplayTestConfiguration();
- load a scenario File into it
File scenarioDir = ((FileResourceImpl) ResourceLocator.locateResource("scenarii/last-scenario")).getFile();
testConfiguration.loadScenario(scenarioDir);
- use runMain method to start the main of the target application, this will init and configure the GinaReplayManager
testConfiguration.runMain();
- you can know how many events there are to be played by using Scenario.size
testConfiguration.getSession().getScenario().size();
- use GinaReplaySession.checkNextStep to play and check the next event of your scenario
testConfiguration.getSession().checkNextStep(true);
GinaReplaySession
A GinaReplaySession instance represents a recording/replaying session. It has a Scenario (a list of events) and read from/write into it. It also manages the record an replay strategies.
Strategies
There are two strategies : one for recording, and one for checking. The strategies extend the abstract RecordingStrategy and CheckingStrategy classes and describes how events should be stored or checked. Please check out the examples StandardRecordingStrategy and StrictCheckingStrategy.