Simple file fixture loader for unittest.
You can easily load the test-based fixture.
Will be able to load the fixture in four steps.
- Create a loader of container
- Create a fixture of container
- Create a FileFixture
- Load fixture from the container.
$loaders = new LoaderContainer([
new TextLoader()
]);
$fixtures = new FixtureContainer([
'text:default:readme' => __DIR__ . '/README.md'
]);
$fixture = new FileFixture($fixtures, $loaders);
$content = $fixture->load('text:default:readme');
print $content;
Loader is compatible with text data, mustache template, ASCII art.
- TextLoader - Load the text data.
- MustacheLoader - Load the mustache template
- ArtLoader - Load the ASCII art.
With ArtLoader, you can load the coloring text data.
Create a fixture file.
Mark the text to apply the color in the tag.
<green>#######</green>
<green>#</green>
<green>#</green>
<green>#####</green>
<green>#</green>
<green>#</green>
<green>#</green>
$loaders = new LoaderContainer([
new ArtLoader(new MustacheLoader(new TextLoader()))
]);
$fixtures = new FixtureContainer([
'art:default:header' => __DIR__ . '/art.txt'
]);
$fixture = new FileFixture($fixtures, $loaders);
$content = $fixture->load('art:default:header');
print $content;
Using the configuration file, you will be able to easily load the fixture.
Example of the fixture to load the mustache of template.
{{name}} task was successful.
The name of the fixture, you must begin with the name of the loader.
[mustache.default]
successMessage = "template.ms"
The name of this fixture will be mustache:default:successMessage.
Load the fixture by specifying the name.
When the load is successful, will return the results of template of mustache has been processed.
$textLoader = new TextLoader();
$loaders = new LoaderContainer([
$textLoader,
new MustacheLoader($textLoader)
]);
$factory = new FixtureContainerFactory();
$fixtures = $factory->createFromFile(__DIR__ . '/fixtures.toml');
$fixture = new FileFixture($fixtures, $loaders);
$content = $fixture->load('mustache:default:successMessage', [
'name' => 'build'
]);
print $content;
- Jérémy Marodon (@Th3Mouk)