public class GeneratorWatcher<Context extends net.morimekta.providence.testing.generator.GeneratorContext<Context>>
extends org.junit.rules.TestWatcher
class MyTest {
{@literal @}Rule
public SimpleGeneratorWatcher gen = GeneratorWatcher
.create()
.dumpOnFailure()
.withGenerator(MyMessage.kDescriptor, gen -> {
gen.setAlwaysPresent(MyMessage._Fields.UUID, MyMessage._Fields.NAME);
gen.setValueGenerator(MyMessage._Fields.UUID, () -> UUID.randomUUID().toString());
});
{@literal @}Test
public testSomething() {
MyMessage msg = gen.context().nextMessage(MyMessage.kDescriptor);
sut.doSomething(msg);
assertThat(sut.state(), is(SystemToTest.CORRECT));
}
{@literal @}Test
public testSomethingElse() {
gen.generatorFor(MyMessage.kDescriptor)
.setValueGenerator(MyMessage._Field.NAME, () -> "Mi Nome")
.setAlwaysPresent(MyMessage._Field.AGE)
.setValueGenerator(MyMessage._Field.AGE, () -> 35);
MyMessage msg = gen.context().nextMessage(MyMessage.kDescriptor);
sut.doSomething(msg);
assertThat(sut.state(), is(SystemToTest.CORRECT));
}
}
| Modifier | Constructor and Description |
|---|---|
protected |
GeneratorWatcher(Context globalContext)
Make a simple default message generator.
|
| Modifier and Type | Method and Description |
|---|---|
GeneratorWatcher<Context> |
apply(Consumer<Context> consumer) |
Context |
context() |
static SimpleGeneratorWatcher |
create()
Create a default message generator watcher.
|
static <Context extends net.morimekta.providence.testing.generator.GeneratorContext<Context>> |
create(Context base)
Create a message generator watcher with the given base context.
|
void |
dumpGeneratedMessages()
Dump all generated messages.
|
void |
dumpGeneratedMessages(net.morimekta.providence.descriptor.PMessageDescriptor descriptor)
Dump all generated messages.
|
GeneratorWatcher<Context> |
dumpOnFailure()
Dump all generated messages on failure for this test only.
|
GeneratorWatcher<Context> |
dumpOnFailure(net.morimekta.providence.descriptor.PMessageDescriptor descriptor)
Dump all generated messages on failure for this test only.
|
protected void |
failed(Throwable e,
org.junit.runner.Description description) |
protected void |
finished(org.junit.runner.Description description) |
<M extends net.morimekta.providence.PMessage<M>> |
generate(net.morimekta.providence.descriptor.PMessageDescriptor<M> descriptor)
Generate a message with random content using the default generator
for the message type.
|
GeneratorWatcher<Context> |
setOutputSerializer(net.morimekta.providence.serializer.Serializer defaultSerializer)
Set default serializer to standard output.
|
protected void |
starting(org.junit.runner.Description description) |
protected GeneratorWatcher(Context globalContext)
globalContext - The global / default generator context.public static SimpleGeneratorWatcher create()
public static <Context extends net.morimekta.providence.testing.generator.GeneratorContext<Context>> GeneratorWatcher<Context> create(Context base)
Context - The context type.base - The base generator to use when generating messages.public <M extends net.morimekta.providence.PMessage<M>> M generate(net.morimekta.providence.descriptor.PMessageDescriptor<M> descriptor)
M - The message type.descriptor - Message descriptor to generate message from.public GeneratorWatcher<Context> apply(Consumer<Context> consumer)
public Context context()
public void dumpGeneratedMessages()
throws IOException
IOException - If writing the messages failed.public void dumpGeneratedMessages(@Nonnull net.morimekta.providence.descriptor.PMessageDescriptor descriptor) throws IOException
descriptor - Message type to dump messages for.IOException - If writing the messages failed.public GeneratorWatcher<Context> setOutputSerializer(net.morimekta.providence.serializer.Serializer defaultSerializer)
defaultSerializer - The new default serializer.public GeneratorWatcher<Context> dumpOnFailure()
public GeneratorWatcher<Context> dumpOnFailure(net.morimekta.providence.descriptor.PMessageDescriptor descriptor)
descriptor - Message type to dump messages for.protected void starting(org.junit.runner.Description description)
starting in class org.junit.rules.TestWatcherprotected void failed(Throwable e, org.junit.runner.Description description)
failed in class org.junit.rules.TestWatcherprotected void finished(org.junit.runner.Description description)
finished in class org.junit.rules.TestWatcherCopyright © 2015–2020 morimekta.net. All rights reserved.