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

hope.kola.contract.restassured.ParamConfigBuilder Maven / Gradle / Ivy

There is a newer version: 1.1.2-RELEASE
Show newest version
package hope.kola.contract.restassured;

import static io.restassured.config.ParamConfig.UpdateStrategy.MERGE;

import io.restassured.config.ParamConfig;

public class ParamConfigBuilder implements Mergeable {

  protected ParamConfig.UpdateStrategy queryParamsUpdateStrategy;
  protected ParamConfig.UpdateStrategy pathParamsUpdateStrategy;
  protected ParamConfig.UpdateStrategy formParamsUpdateStrategy;
  protected ParamConfig.UpdateStrategy requestParameterUpdateStrategy;

  @Override
  public ParamConfigBuilder merger(ParamConfigBuilder from) {
    ParamConfigBuilder res = new ParamConfigBuilder();
    res.queryParamsUpdateStrategy = queryParamsUpdateStrategy;
    res.pathParamsUpdateStrategy = pathParamsUpdateStrategy;
    res.formParamsUpdateStrategy = formParamsUpdateStrategy;
    res.requestParameterUpdateStrategy = requestParameterUpdateStrategy;

    if (from.queryParamsUpdateStrategy != null) {
      res.queryParamsUpdateStrategy = from.queryParamsUpdateStrategy;
    }
    if (from.pathParamsUpdateStrategy != null) {
      res.pathParamsUpdateStrategy = from.pathParamsUpdateStrategy;
    }
    if (from.formParamsUpdateStrategy != null) {
      res.formParamsUpdateStrategy = from.formParamsUpdateStrategy;
    }
    if (from.requestParameterUpdateStrategy != null) {
      res.requestParameterUpdateStrategy = from.requestParameterUpdateStrategy;
    }
    return res;
  }

  @Override
  public ParamConfig transform() {
    // MERGE, REPLACE, MERGE, MERGE
    // merger from default
    ParamConfig res = new ParamConfig();

    ParamConfig.UpdateStrategy _queryParamsUpdateStrategy =
        queryParamsUpdateStrategy == null
            ? res.queryParamsUpdateStrategy()
            : queryParamsUpdateStrategy;
    ParamConfig.UpdateStrategy _pathParamsUpdateStrategy =
        pathParamsUpdateStrategy == null
            ? res.pathParamsUpdateStrategy()
            : pathParamsUpdateStrategy;
    ParamConfig.UpdateStrategy _formParamsUpdateStrategy =
        formParamsUpdateStrategy == null
            ? res.formParamsUpdateStrategy()
            : formParamsUpdateStrategy;
    ParamConfig.UpdateStrategy _requestParameterUpdateStrategy =
        requestParameterUpdateStrategy == null
            ? res.requestParamsUpdateStrategy()
            : requestParameterUpdateStrategy;

    return new ParamConfig(
        _queryParamsUpdateStrategy,
        _pathParamsUpdateStrategy,
        _formParamsUpdateStrategy,
        _requestParameterUpdateStrategy);
  }

  /** Parameters with the same name is merged. */
  public ParamConfig.UpdateStrategy merger() {
    return MERGE;
  }

  /** Parameters with the same name is replaced with the latest applied value. */
  public ParamConfig.UpdateStrategy replace() {
    return ParamConfig.UpdateStrategy.REPLACE;
  }

  public void queryParamsUpdateStrategy(ParamConfig.UpdateStrategy strategy) {
    this.queryParamsUpdateStrategy = strategy;
  }

  public void pathParamsUpdateStrategy(ParamConfig.UpdateStrategy strategy) {
    this.pathParamsUpdateStrategy = strategy;
  }

  public void formParamsUpdateStrategy(ParamConfig.UpdateStrategy strategy) {
    this.formParamsUpdateStrategy = strategy;
  }

  public void requestParameterUpdateStrategy(ParamConfig.UpdateStrategy strategy) {
    this.requestParameterUpdateStrategy = strategy;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy