public class GeneratorWatcher<Base extends GeneratorBase<Base,Context>,Context extends 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.generate(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.generate(MyMessage.kDescriptor);
sut.doSomething(msg);
assertThat(sut.state(), is(SystemToTest.CORRECT));
}
}
| Constructor and Description |
|---|
GeneratorWatcher(Base base)
Make a simple default message generator.
|
| Modifier and Type | Method and Description |
|---|---|
List<PMessage> |
allGenerated()
Get all generated messages.
|
static SimpleGeneratorWatcher |
create()
Create a default message generator watcher.
|
static <Context extends GeneratorContext<Context>,Base extends GeneratorBase<Base,Context>> |
create(Base base)
Create a message generator watcher with the given base context.
|
void |
dumpGeneratedMessages()
Dump all generated messages.
|
GeneratorWatcher<Base,Context> |
dumpOnFailure()
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 PMessage<M,F>,F extends PField> |
generate(Context context,
PMessageDescriptor<M,F> descriptor)
Generate a message with random content using the default generator
for the message type.
|
<M extends PMessage<M,F>,F extends PField> |
generate(PMessageDescriptor<M,F> descriptor)
Generate a message with random content using the default generator
for the message type.
|
Base |
getBaseContext() |
<M extends PMessage<M,F>,F extends PField> |
getDefaultGenerator(PMessageDescriptor<M,F> descriptor)
Get the default generator used to generate given message.
|
<M extends PMessage<M,F>,F extends PField> |
newReportingGenerator(PMessageDescriptor<M,F> descriptor)
Create a new non-default generator used to generate given message.
|
GeneratorWatcher<Base,Context> |
setFairy(io.codearte.jfairy.Fairy fairy)
Set the feiry data generator being used.
|
GeneratorWatcher<Base,Context> |
setFillRate(double fillRate)
Set the field fill rate in the range <0.0 ..
|
GeneratorWatcher<Base,Context> |
setLocale(Locale locale)
Set the locale to generate values for.
|
GeneratorWatcher<Base,Context> |
setMaxCollectionItems(int max)
Set the max collection items for default generated collections.
|
GeneratorWatcher<Base,Context> |
setMessageReader(MessageReader reader)
Set the message reader for the generator.
|
GeneratorWatcher<Base,Context> |
setMessageWriter(MessageWriter writer)
Set the message writer in case of failure.
|
GeneratorWatcher<Base,Context> |
setOutputSerializer(Serializer defaultSerializer)
Set default serializer to standard output.
|
GeneratorWatcher<Base,Context> |
setRandom(Random random)
Set the random generator being used.
|
GeneratorWatcher<Base,Context> |
setResourceReader(String resource)
Read messages from the given resource (pretty formatted).
|
GeneratorWatcher<Base,Context> |
setResourceReader(String resource,
Serializer serializer)
Read messages from the given resource.
|
protected void |
starting(org.junit.runner.Description description) |
<M extends PMessage<M,F>,F extends PField> |
withGenerator(PMessageDescriptor<M,F> descriptor,
Consumer<MessageGenerator<Context,M,F>> modificationConsumer)
Get the modifiable message generator for descriptor.
|
public GeneratorWatcher(Base base)
base - The base generator to use when generating messages.public static SimpleGeneratorWatcher create()
public static <Context extends GeneratorContext<Context>,Base extends GeneratorBase<Base,Context>> GeneratorWatcher<Base,Context> create(Base base)
Base - The base generator type.Context - The context type.base - The base generator to use when generating messages.public <M extends PMessage<M,F>,F extends PField> M generate(PMessageDescriptor<M,F> descriptor)
M - The message type.F - The field type.descriptor - Message descriptor to generate message from.public <M extends PMessage<M,F>,F extends PField> M generate(Context context, PMessageDescriptor<M,F> descriptor)
M - The message type.F - The field type.context - The specific context to use when generating.descriptor - Message descriptor to generate message from.public <M extends PMessage<M,F>,F extends PField> GeneratorWatcher<Base,Context> withGenerator(PMessageDescriptor<M,F> descriptor, Consumer<MessageGenerator<Context,M,F>> modificationConsumer)
M - The message type.F - The message field type.descriptor - the message descriptor constant.modificationConsumer - Consumer to handle modifications on the generator
instance.public <M extends PMessage<M,F>,F extends PField> MessageGenerator<Context,M,F> getDefaultGenerator(PMessageDescriptor<M,F> descriptor)
M - The message type.F - The message field type.descriptor - the message descriptor constant.public <M extends PMessage<M,F>,F extends PField> MessageGenerator<Context,M,F> newReportingGenerator(PMessageDescriptor<M,F> descriptor)
M - The message type.F - The message field type.descriptor - the message descriptor constant.public List<PMessage> allGenerated()
public void dumpGeneratedMessages()
throws IOException
IOException - If writing the messages failed.public Base getBaseContext()
public GeneratorWatcher<Base,Context> setRandom(Random random)
random - The random generator.public GeneratorWatcher<Base,Context> setFairy(io.codearte.jfairy.Fairy fairy)
fairy - The fairy data generator.public GeneratorWatcher<Base,Context> setLocale(Locale locale)
locale - The locale to set.public GeneratorWatcher<Base,Context> setFillRate(double fillRate)
fillRate - The new fill rate.public GeneratorWatcher<Base,Context> setMessageWriter(MessageWriter writer)
writer - The message writer.public GeneratorWatcher<Base,Context> setMessageReader(MessageReader reader)
reader - The message reader. All messages will be read from thispublic GeneratorWatcher<Base,Context> setResourceReader(String resource)
resource - The resource path.public GeneratorWatcher<Base,Context> setResourceReader(String resource, Serializer serializer)
resource - The resource path.serializer - Serializer to use for reading resource.public GeneratorWatcher<Base,Context> setOutputSerializer(Serializer defaultSerializer)
defaultSerializer - The new default serializer.public GeneratorWatcher<Base,Context> setMaxCollectionItems(int max)
max - The max number of items.public GeneratorWatcher<Base,Context> dumpOnFailure()
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–2017 morimekta.net. All rights reserved.