This class is part of the ScalaTest matchers DSL. Please see the documentation for Matchers 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
have ('author ("Dickens"))
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:
This method enables the following syntax:
book must 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 must have (convertSymbolToHavePropertyMatcherGenerator('title).apply("A Tale of Two Cities"))