org.scalatest.matchers.Matchers

class HavePropertyMatcherGenerator

[source: org/scalatest/matchers/Matchers.scala]

final class HavePropertyMatcherGenerator(symbol : scala.Symbol)
extends AnyRef
This class is part of the ScalaTest matchers DSL. Please see the documentation for ShouldMatchers or MustMatchers for an overview of the matchers DSL.

This class is used as the result of an implicit conversion from class Symbol, to enable symbols to be used in have ('author ("Dickens")) syntax. The name of the implicit conversion method is convertSymbolToHavePropertyMatcherGenerator.

Class HavePropertyMatcherGenerator's primary constructor takes a Symbol. The apply method uses reflection to find and access a property that has the name specified by the Symbol passed to the constructor, so it can determine if the property has the expected value passed to apply. If the symbol passed is 'title, for example, the apply method will use reflection to look for a public Java field named "title", a public method named "title", or a public method named "getTitle". If a method, it must take no parameters. If multiple candidates are found, the apply method will select based on the following algorithm:

FieldMethod"get" MethodResult
   Throws TestFailedException, because no candidates found
  getTitle()Invokes getTitle()
 title() Invokes title()
 title()getTitle()Invokes title() (this can occur when BeanProperty annotation is used)
title  Accesses field title
title getTitle()Invokes getTitle()
titletitle() Invokes title()
titletitle()getTitle()Invokes title() (this can occur when BeanProperty annotation is used)
Author
Bill Venners
Method Summary
def apply (expectedValue : Any) : HavePropertyMatcher[AnyRef, Any]
This method enables the following syntax:
     book should have ('title ("A Tale of Two Cities"))
                              ^
     
Methods inherited from AnyRef
getClass, hashCode, equals, clone, toString, notify, notifyAll, wait, wait, wait, finalize, ==, !=, eq, ne, synchronized
Methods inherited from Any
==, !=, isInstanceOf, asInstanceOf
Method Details
def apply(expectedValue : Any) : HavePropertyMatcher[AnyRef, Any]
This method enables the following syntax:
     book should have ('title ("A Tale of Two Cities"))
                              ^
     

This class has an apply method that will produce a HavePropertyMatcher[AnyRef, Any]. The implicit conversion method, convertSymbolToHavePropertyMatcherGenerator, will cause the above line of code to be eventually transformed into:

     book should have (convertSymbolToHavePropertyMatcherGenerator('title).apply("A Tale of Two Cities"))
     


Copyright (C) 2001-2009 Artima, Inc. All rights reserved.