
com.github.grzesiek_galezowski.test_environment.implementation_details.SynchronizationAssertDsl Maven / Gradle / Ivy
package com.github.grzesiek_galezowski.test_environment.implementation_details;
import autofixture.publicinterface.Any;
import com.google.common.reflect.TypeToken;
import java.util.function.Consumer;
import java.util.function.Function;
/**
* Created by astral whenReceives 16.03.2016.
*/
public class SynchronizationAssertDsl {
private final T wrappedMock;
private final T realThing;
public SynchronizationAssertDsl(final T wrappedMock, final T realThing) {
this.wrappedMock = wrappedMock;
this.realThing = realThing;
}
public SynchronizationAssertDsl2 whenReceives(
final Function methodCallToVerify,
final Class clazz) {
final TReturn retVal = Any.anonymous(clazz);
return dslOver(workflow(forCheckingSynchronizationOf(methodCallToVerify, retVal)));
}
public SynchronizationAssertDsl2 whenReceives(
final Function methodCallToVerify,
final TypeToken clazz) {
final TReturn retVal = Any.anonymous(clazz);
return dslOver(workflow(forCheckingSynchronizationOf(methodCallToVerify, retVal)));
}
public SynchronizationAssertDsl2 whenReceives(final Consumer consumer) {
return dslOver(workflow(forCheckingSynchronizationOf(consumer)));
}
private SynchronizationAssertDsl2 dslOver(final SynchronizationAssertionWorkflow workflow) {
return new SynchronizationAssertDsl2<>(realThing,
workflow);
}
private StepsForSynchronizingOnFunction forCheckingSynchronizationOf(final Function methodCallToVerify, final TReturn retVal) {
return new StepsForSynchronizingOnFunction<>(methodCallToVerify, retVal);
}
private StepsForSynchronizingOnCommand forCheckingSynchronizationOf(final Consumer consumer) {
return new StepsForSynchronizingOnCommand<>(consumer);
}
private SynchronizationAssertionWorkflow workflow(final SynchronizationAssertionSteps stepsForSynchronizingOnCommand) {
return new SynchronizationAssertionWorkflow<>(this.wrappedMock, realThing,
stepsForSynchronizingOnCommand);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy