All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.grzesiek_galezowski.test_environment.implementation_details.SynchronizationAssertDsl Maven / Gradle / Ivy

There is a newer version: 1.2.5
Show newest version
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