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

pact4s.provider.ProviderVerificationOption.scala Maven / Gradle / Ivy

There is a newer version: 0.15.0
Show newest version
/*
 * Copyright 2021 io.github.jbwheatley
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package pact4s
package provider

import au.com.dius.pact.provider.ProviderVerifier

sealed abstract class ProviderVerificationOption(val key: String) {
  def value: String
}

object ProviderVerificationOption {

  /** Gives a more detailed output for pact verification failures */
  case object SHOW_STACKTRACE extends BooleanProviderVerificationOption(ProviderVerifier.PACT_SHOW_STACKTRACE)

  /** Doesn't need to be set if [[PublishVerificationResults]] are provided to the verifier */
  case object VERIFIER_PUBLISH_RESULTS
      extends BooleanProviderVerificationOption(ProviderVerifier.PACT_VERIFIER_PUBLISH_RESULTS)

  /** @param consumers pacts for these consumers won't be verified */
  final case class FILTER_CONSUMERS(consumers: List[String])
      extends ListProviderVerificationOption(ProviderVerifier.PACT_FILTER_CONSUMERS, consumers)

  /** @param regex won't verify pacts whose descriptions match this regex */
  final case class FILTER_DESCRIPTION(regex: String)
      extends RegexProviderVerificationOption(ProviderVerifier.PACT_FILTER_DESCRIPTION, regex)

  /** @param regex won't verify pacts whose states match this regex */
  final case class FILTER_PROVIDERSTATE(regex: String)
      extends RegexProviderVerificationOption(ProviderVerifier.PACT_FILTER_PROVIDERSTATE, regex)

  /** Gives a more detailed output for pact verification results */
  case object SHOW_FULLDIFF extends BooleanProviderVerificationOption(ProviderVerifier.PACT_SHOW_FULLDIFF)

  /** Will trim the snapshot off the provider version before publishing the results */
  case object PROVIDER_VERSION_TRIM_SNAPSHOT
      extends BooleanProviderVerificationOption(ProviderVerifier.PACT_PROVIDER_VERSION_TRIM_SNAPSHOT)

  sealed abstract class BooleanProviderVerificationOption(_key: String) extends ProviderVerificationOption(_key) {
    def value: String = "true"
  }
  sealed abstract class RegexProviderVerificationOption(_key: String, regex: String)
      extends ProviderVerificationOption(_key) {
    def value: String = regex
  }
  sealed abstract class ListProviderVerificationOption(_key: String, values: List[String])
      extends ProviderVerificationOption(_key) {
    def value: String = values.mkString(",")
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy