本文整理汇总了Scala中org.specs2.matcher.Matcher类的典型用法代码示例。如果您正苦于以下问题:Scala Matcher类的具体用法?Scala Matcher怎么用?Scala Matcher使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Matcher类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: beRejectedWithMessage
//设置package包名称以及导入依赖的类
package com.wix.pay.twocheckout
import com.wix.pay.testkit.LibPayTestSupport
import com.wix.pay.twocheckout.tokenization.RSAPublicKey
import com.wix.pay.{PaymentErrorException, PaymentRejectedException}
import org.json4s.ParserUtil.ParseException
import org.specs2.matcher.Matcher
import org.specs2.matcher.MustThrownMatchers._
import scala.reflect.ClassTag
import scala.util.Try
trait TwocheckoutTestSupport extends LibPayTestSupport {
val sellerId = "someSellerId"
val publishableKey = "somePublishableKey"
val privateKey = "somePrivateKey"
val somePretoken = "somePretoken"
val token = "someToken"
val someMerchant = TwocheckoutMerchant(sellerId, publishableKey, privateKey)
val someMerchantStr = JsonTwocheckoutMerchantParser.stringify(someMerchant)
val somePublicKey = RSAPublicKey(
"AMroNi0ZH7gGJPzgZP11kwEl++ZZgmQeQpqD69Ghgp72cPMNDDe217HzPrULQEUBQwyX21i1ZagHU9jJTSbHMwtoZRCCa8AiWvxBtO1XJ7" +
"4nU9heeQScyf3M25Lu9wxPKVfaTrMcXi879TjZm8TNqr89jBqCF1NUtDO+EFFi4OStKf9ILd0DMBYBhOdxBkBmBSy8VIhw0n0JI6RhSERv" +
"LI6Ia7n63VEOCC8zfdTUwmp2e4g7M0DHvOPqZ9Ldoy4g5DQqQZW/qRVYgKgxlOXUBnJD7HquMg1oWWrYL0zWmBBEG/aOOOpgxqrCM7fmml" +
"0A4dKqS4blxeT99p7Tori9VBM=",
"AQAB"
)
def beRejectedWithMessage(message: String): Matcher[Try[String]] = beFailedTry.like { case e: PaymentRejectedException => e.message mustEqual message }
def failWithMessage(message: String): Matcher[Try[String]] = beFailedTry.like { case e: PaymentErrorException => e.message must contain(message) }
def beParseError: Matcher[Try[String]] = failWithCause[ParseException]
def beUnsupportedError: Matcher[Try[String]] = failWithCause[UnsupportedOperationException]
private def failWithCause[T : ClassTag]: Matcher[Try[String]] = beFailedTry.like { case e: PaymentErrorException => e.cause must beAnInstanceOf[T] }
}
示例2: containBillingAddress
//设置package包名称以及导入依赖的类
package com.wix.pay.stripe.drivers
import java.util
import com.wix.pay.creditcard.{AddressDetailed, PublicCreditCardOptionalFields}
import com.wix.pay.model.{Customer, IncludedCharges, OrderItem, ShippingAddress}
import com.wix.pay.stripe._
import org.specs2.matcher.{Matcher, Matchers}
trait StripeMatchers { self : Matchers =>
def containBillingAddress(billingAddress: AddressDetailed): Matcher[MappedParams] = {
be_===(billingAddress) ^^ {
StripeAdditionalInfoReConstructor.reconstructBillingAddress(_: MappedParams)
}
}
def containCustomer(customer: Customer): Matcher[MappedParams] = {
be_===(customer) ^^ {
StripeAdditionalInfoReConstructor.reconstructCustomer(_: MappedParams)
}
}
def containInvoiceId(invoiceId: String): Matcher[MappedParams] = {
be_===(invoiceId) ^^ {
StripeAdditionalInfoReConstructor.reconstructInvoiceId(_: MappedParams)
}
}
def containShippingAddress(shippingAddress: ShippingAddress): Matcher[MappedParams] = {
be_===(shippingAddress) ^^ {
StripeAdditionalInfoReConstructor.reconstructShippingAddress(_: MappedParams)
}
}
def containOrderItems(orderItems: Seq[OrderItem]): Matcher[MappedParams] = {
be_===(orderItems) ^^ {
StripeAdditionalInfoReConstructor.reconstructOrderItems(_: MappedParams)
}
}
def containIncludedCharges(includedCharges: IncludedCharges): Matcher[MappedParams] = {
be_===(includedCharges) ^^ {
StripeAdditionalInfoReConstructor.reconstructIncludedCharges(_: MappedParams)
}
}
def haveFieldParams(fields: PublicCreditCardOptionalFields): Matcher[util.LinkedHashMap[String, Object]] = {
be_===(fields.billingAddress.get) ^^ {(_:util.LinkedHashMap[String, Object]).get("address_line1").toString} and
be_===(fields.billingPostalCode.get) ^^ {(_:util.LinkedHashMap[String, Object]).get("address_zip").toString} and
be_===(fields.holderName.get) ^^ {(_:util.LinkedHashMap[String, Object]).get("name").toString}
}
def haveAnyEmptyFields(): Matcher[util.LinkedHashMap[String, Object]] = {
beTrue ^^ {(_:util.LinkedHashMap[String, Object]).containsKey("address_line1")} or
beTrue ^^ {(_:util.LinkedHashMap[String, Object]).containsKey("address_zip")}
}
}
示例3: XpctSpec
//设置package包名称以及导入依赖的类
package tryp
package unit
import org.specs2.matcher.{MatchResultCombinators, NumericMatchers, OptionMatchers, Matcher}
import MatchResultCombinators._
import Fs2Sleep.Sleep_IO
object XpctSpec
extends IOSpec
with FixedPool
{
def name = "spec"
val threads = 5
implicit val scheduler = Scheduler.fromFixedDaemonPool(1)
def is = s2"""
test $test
"""
import matcher._
val rand: IO[Int] = IO(Random.int().abs % 100)
var x = false
def failOnce = IO(if (x) 1 else { x = true; sys.error("boom") })
def test = {
for {
_ <- failOnce must_== 1 retry 1
r <- {
for {
target <- IO.pure(Option(2)) must beASome[Int]
a <- rand.xp
b <- IO(a) must be_>=(1)
c <- IO(Option(b)) must contain(a)
_ <- IO(b) must_== target
} yield (target, b, c)
}.retryEvery(1000, 1.millisecond)
(target, b, c) = r
d <- IO(List(-1, -2, b, -3)) must contain(be_>=(0))
_ <- IO(b) must_== target
_ <- IO(b) mustNot be(0)
_ <- IO(None: Option[Int]) mustNot contain(1)
} yield ()
}
}
示例4: authorizationParser
//设置package包名称以及导入依赖的类
package com.wix.pay.tranzila
import org.specs2.matcher.{AlwaysMatcher, Matcher, Matchers}
trait TranzilaMatchers extends Matchers {
def authorizationParser: TranzilaAuthorizationParser
def beMerchant(username: Matcher[String] = AlwaysMatcher()): Matcher[TranzilaMerchant] = {
username ^^ { (_: TranzilaMerchant).username aka "username" }
}
def beAuthorization(index: Matcher[String] = AlwaysMatcher(),
confirmationCode: Matcher[String] = AlwaysMatcher()): Matcher[TranzilaAuthorization] = {
index ^^ { (_: TranzilaAuthorization).index aka "currency" } and
confirmationCode ^^ { (_: TranzilaAuthorization).confirmationCode aka "confirmation code" }
}
def beAuthorizationKey(authorization: Matcher[TranzilaAuthorization]): Matcher[String] = {
authorization ^^ { authorizationParser.parse(_: String) aka "parsed authorization"}
}
}
object TranzilaMatchers extends TranzilaMatchers {
override val authorizationParser = new JsonTranzilaAuthorizationParser()
}
示例5: SimpleHttpRequestMatcher
//设置package包名称以及导入依赖的类
package com.dwolla.testutils.httpclient
import org.apache.http.client.methods.HttpRequestBase
import org.specs2.matcher.{Expectable, MatchResult, Matcher}
case class SimpleHttpRequestMatcher(req: HttpRequestBase) extends Matcher[HttpRequestBase] {
override def apply[S <: HttpRequestBase](t: Expectable[S]): MatchResult[S] = {
val actualValue = t.value
val test = actualValue != null && req.getMethod == actualValue.getMethod && req.getURI == actualValue.getURI
result(test, s"${t.description} is the same as ${req.toString}", s"${t.description} is not the same as ${req.toString}", t)
}
}
object SimpleHttpRequestMatcher {
def http(req: HttpRequestBase) = SimpleHttpRequestMatcher(req)
}
示例6: serializationBufSize
//设置package包名称以及导入依赖的类
package eu.shiftforward.apso
import java.io._
import org.specs2.matcher.{ Expectable, Matcher }
import org.specs2.mutable.SpecificationLike
import scala.reflect.ClassTag
trait CustomMatchers extends SpecificationLike {
def serializationBufSize = 10000
def beSerializable[T <: AnyRef: ClassTag]: Matcher[T] = { obj: T =>
val buffer = new ByteArrayOutputStream(serializationBufSize)
val out = new ObjectOutputStream(buffer)
out.writeObject(obj) must
not(throwA[NotSerializableException]) and not(throwAn[InvalidClassException])
// val in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray))
// in.readObject() must beAnInstanceOf[T] and
// not(throwA[InvalidClassException]) and not(throwA[StreamCorruptedException])
}
def exist: Matcher[File] = new Matcher[File] {
def apply[S <: File](v: Expectable[S]) = {
result(v.value.exists(), v.value.getName + " exists", v.value.getName + " does not exist", v)
}
}
}
示例7: MessageStatusResponseSpec
//设置package包名称以及导入依赖的类
package com.github.hgiddens.ausms
package telstra
import io.circe.Json
import io.circe.syntax._
import org.specs2.matcher.{ Matcher, MatcherMacros }
import org.specs2.mutable.Specification
object MessageStatusResponseSpec extends Specification with MatcherMacros {
def body(status: String) =
Json.obj(
"to" -> "0400000000".asJson,
"receivedTimestamp" -> "2015-02-05T14:10:14+11:00".asJson,
"sentTimestamp" -> "2015-02-05T14:10:12+11:00".asJson,
"status" -> status.asJson
)
def beResponseWithStatus(status: DeliveryStatus): Matcher[MessageStatusResponse] =
matchA[MessageStatusResponse].status(status)
"Decoding JSON" should {
"decode PEND status" in {
body("PEND").as[MessageStatusResponse].toEither must beRight(beResponseWithStatus(DeliveryStatus.Pending))
}
"decode SENT status" in {
body("SENT").as[MessageStatusResponse].toEither must beRight(beResponseWithStatus(DeliveryStatus.Sent))
}
"decode DELIVRD status" in {
body("DELIVRD").as[MessageStatusResponse].toEither must beRight(beResponseWithStatus(DeliveryStatus.Delivered))
}
"decode READ status" in {
body("READ").as[MessageStatusResponse].toEither must beRight(beResponseWithStatus(DeliveryStatus.Read))
}
}
}
示例8: ColorHashTest
//设置package包名称以及导入依赖的类
package com.github.tkqubo.colorHash
import org.specs2.matcher.Matcher
import org.specs2.mutable.Specification
// scalastyle:off magic.number
class ColorHashTest extends Specification {
"ColorHashTest" should {
"hsl" in {
ColorHash().hsl("yo") === Hsl(326, 0.35d, 0.5d)
ColorHash().hsl("more complex text") === Hsl(194, 0.5, 0.65)
}
"hex" in {
ColorHash().hex("yo") === "#AC5385"
ColorHash().hex("more complex text") === "#79BED2"
ColorHash().hex("this") === "#783A52"
ColorHash().hex("that") === "#C587B2"
ColorHash().hex("??") === "#A7D279"
}
"rgb" in {
ColorHash().rgb("yo") === Rgb(172, 83, 133)
ColorHash().rgb("more complex text") === Rgb(121, 190, 210)
}
"apply" should {
"pass with default parameters" in {
val instance = ColorHash()
instance.lightness === ColorHash.defaultParam
instance.saturation === ColorHash.defaultParam
instance.hash must beSameMethod(ColorHash.defaultHash)
}
"pass with custom parameters" in {
val instance = ColorHash(Seq(0.1, 0.2), Seq(0.0, 0.5), _.length)
instance.lightness === Seq(0.0, 0.5)
instance.saturation === Seq(0.1, 0.2)
instance.hash("1234567890") === 10L
}
}
}
private def beSameMethod(expected: String => Long): Matcher[(String => Long)] = { actual: (String => Long) =>
(1 to 10).forall { _ =>
val text: String = scala.util.Random.alphanumeric.take(10).mkString
expected(text) aka s"hash for $text" must_=== actual(text)
}
}
}
示例9: JsonDengionlineMerchantParserTest
//设置package包名称以及导入依赖的类
package com.wix.pay.dengionline
import org.specs2.matcher.MustMatchers._
import org.specs2.matcher.{AlwaysMatcher, Matcher}
import org.specs2.mutable.SpecWithJUnit
import org.specs2.specification.Scope
class JsonDengionlineMerchantParserTest extends SpecWithJUnit {
trait Ctx extends Scope {
val merchantParser: DengionlineMerchantParser = new JsonDengionlineMerchantParser
def beDengionlineMerchant(siteId: Matcher[String] = AlwaysMatcher(),
salt: Matcher[String] = AlwaysMatcher()): Matcher[DengionlineMerchant] = {
siteId ^^ { (_: DengionlineMerchant).siteId aka "siteId" } and
salt ^^ { (_: DengionlineMerchant).salt aka "salt" }
}
val someMerchant = DengionlineMerchant(
siteId = "some site ID",
salt = "some salt"
)
}
"stringify and then parse" should {
"yield a merchant similar to the original one" in new Ctx {
val merchantKey = merchantParser.stringify(someMerchant)
merchantParser.parse(merchantKey) must beDengionlineMerchant(
siteId = ===(someMerchant.siteId),
salt = ===(someMerchant.salt)
)
}
}
}
示例10: authorizationParser
//设置package包名称以及导入依赖的类
package com.wix.pay.dengionline
import org.specs2.matcher.{AlwaysMatcher, Matcher, Matchers}
trait DengionlineMatchers extends Matchers {
def authorizationParser: DengionlineAuthorizationParser
def beAuthorization(transactionId: Matcher[String] = AlwaysMatcher()): Matcher[DengionlineAuthorization] = {
transactionId ^^ { (_: DengionlineAuthorization).transactionId aka "transactionId" }
}
def beAuthorizationKey(authorization: Matcher[DengionlineAuthorization]): Matcher[String] = {
authorization ^^ { authorizationParser.parse(_: String) aka "parsed authorization"}
}
}
object DengionlineMatchers extends DengionlineMatchers {
override val authorizationParser = new JsonDengionlineAuthorizationParser()
}
示例11: containSlice
//设置package包名称以及导入依赖的类
package com.dwolla.testutils.matchers
import org.specs2.matcher.{Expectable, MatchResult, Matcher}
import util.Try
trait AdditionalSeqMatchers
extends ContainSliceMatcher
with StartWithMatcher
with EndWithMatcher
trait ContainSliceMatcher {
def containSlice[T](expected: T*): ContainSlice[T] = new ContainSlice[T](expected: _*)
class ContainSlice[T](expected: T*) extends Matcher[Seq[T]] {
override def apply[S <: Seq[T]](t: Expectable[S]): MatchResult[S] = {
val prettySlice = s"( ${expected.mkString(", ")} )"
result(
test = t.value.containsSlice(expected),
okMessage = s"${t.description} contains the slice $prettySlice",
koMessage = s"${t.description} does not contain the slice $prettySlice",
value = t
)
}
}
}
trait StartWithMatcher {
def startWith[T](expected: T): StartWith[T] = new StartWith[T](expected)
class StartWith[T](expected: T) extends Matcher[Seq[T]] {
override def apply[S <: Seq[T]](t: Expectable[S]): MatchResult[S] = result(
test = t.value.headOption.exists(_ == expected),
okMessage = s"""${t.description} starts with "$expected"""",
koMessage = s"""${t.description} does not start with "$expected"""",
value = t
)
}
}
trait EndWithMatcher {
def endWith[T](expected: T): EndWith[T] = new EndWith[T](expected)
class EndWith[T](expected: T) extends Matcher[Seq[T]] {
override def apply[S <: Seq[T]](t: Expectable[S]): MatchResult[S] = result(
test = Try {
t.value.last == expected
}.getOrElse(false),
okMessage = s"""${t.description} ends with "$expected"""",
koMessage = if (t.value.isEmpty)
s"""The provided (but empty) sequence does not end with "$expected""""
else
s"""${t.description} does not end with "$expected"""",
value = t
)
}
}
示例12: JsonAuthorizeNetMerchantParserTest
//设置package包名称以及导入依赖的类
package com.wix.pay.authorizenet
import net.authorize.{Environment, Merchant}
import org.specs2.matcher.Matcher
import org.specs2.matcher.MustMatchers._
import org.specs2.mutable.SpecWithJUnit
import org.specs2.specification.Scope
class JsonAuthorizeNetMerchantParserTest extends SpecWithJUnit {
trait Ctx extends Scope {
val parser = new JsonAuthorizeNetMerchantParser
}
def beMerchant(merchant: Merchant): Matcher[Merchant] = {
be_===(merchant.getDeviceType) ^^ { (_: Merchant).getDeviceType aka "device type" } and
be_===(merchant.getEnvironment) ^^ { (_: Merchant).getEnvironment aka "environment" } and
be_===(merchant.getLogin) ^^ { (_: Merchant).getLogin aka "login" } and
be_===(merchant.getMarketType) ^^ { (_: Merchant).getMarketType aka "market type" } and
be_===(merchant.getMD5Value) ^^ { (_: Merchant).getMD5Value aka "MD5 value" } and
be_===(merchant.getTransactionKey) ^^ { (_: Merchant).getTransactionKey aka "transaction key" } and
be_===(merchant.getUserRef) ^^ { (_: Merchant).getUserRef aka "user ref" }
}
"stringify and then parse" should {
"yield a merchant similar to the original one" in new Ctx {
val merchant = Merchant.createMerchant(Environment.PRODUCTION, "kuki", "buki")
val strMerchant = parser.stringify(merchant)
parser.parse(Environment.PRODUCTION, strMerchant) must beMerchant(merchant)
}
}
}
示例13: JsonPaguelofacilMerchantParserTest
//设置package包名称以及导入依赖的类
package com.wix.pay.paguelofacil
import org.specs2.matcher.MustMatchers._
import org.specs2.matcher.{AlwaysMatcher, Matcher}
import org.specs2.mutable.SpecWithJUnit
import org.specs2.specification.Scope
class JsonPaguelofacilMerchantParserTest extends SpecWithJUnit {
trait Ctx extends Scope {
val merchantParser: PaguelofacilMerchantParser = new JsonPaguelofacilMerchantParser
def bePaguelofacilMerchant(cclw: Matcher[String] = AlwaysMatcher()): Matcher[PaguelofacilMerchant] = {
cclw ^^ { (_: PaguelofacilMerchant).cclw aka "cclw" }
}
val someMerchant = PaguelofacilMerchant(
cclw = "some CCLW"
)
}
"stringify and then parse" should {
"yield a merchant similar to the original one" in new Ctx {
val merchantKey = merchantParser.stringify(someMerchant)
merchantParser.parse(merchantKey) must bePaguelofacilMerchant(
cclw = ===(someMerchant.cclw)
)
}
}
}
示例14: authorizationParser
//设置package包名称以及导入依赖的类
package com.wix.pay.paguelofacil
import org.specs2.matcher.{AlwaysMatcher, Matcher, Matchers}
trait PaguelofacilMatchers extends Matchers {
def authorizationParser: PaguelofacilAuthorizationParser
def beAuthorization(authRefNum: Matcher[String] = AlwaysMatcher()): Matcher[PaguelofacilAuthorization] = {
authRefNum ^^ { (_: PaguelofacilAuthorization).authRefNum aka "authRefNum" }
}
def beAuthorizationKey(authorization: Matcher[PaguelofacilAuthorization]): Matcher[String] = {
authorization ^^ { authorizationParser.parse(_: String) aka "parsed authorization"}
}
}
object PaguelofacilMatchers extends PaguelofacilMatchers {
override val authorizationParser = new JsonPaguelofacilAuthorizationParser()
}
示例15: beSameScalaCodeAs
//设置package包名称以及导入依赖的类
package sqlpt.thriftplugin.testhelpers
import java.util.StringTokenizer
import org.specs2.matcher.Matcher
import org.specs2.matcher.Matchers._
import sqlpt.thriftplugin.Utils.BasicThriftParser
import treehugger.forest._
trait CodeTreeMatchers {
def beSameScalaCodeAs(codeStr: String): Matcher[Tree] = {
def tokenized(sourceCode: String): List[String] = {
val Delimiters = " \n()[]{},;:"
def toList(t: StringTokenizer): List[String] =
if(t.hasMoreTokens)
t.nextToken :: toList(t)
else
Nil
toList(new StringTokenizer(sourceCode, Delimiters, true)).filterNot(_.trim.isEmpty)
}
(
(tree: Tree) =>
tokenized(codeStr) == tokenized(treeToString(tree)),
(tree: Tree) =>
s"${treeToString(tree)}\n\nis not the same scala code as:\n$codeStr"
)
}
}
trait Helpers extends BasicThriftParser with CodeTreeMatchers