org.jmock.core.constraint
public class HasPropertyWithValue extends java.lang.Object implements Constraint
public class Person {
private String name;
public Person(String person) {
this.person = person;
}
public String getName() {
return name;
}
}
And that these person
objects are generated within a piece of code under test (a class named
PersonGenerator). This object is sent to one of our mock objects which
overrides the PersonGenerationListener interface:
public interface PersonGenerationListener {
public void personGenerated(Person person);
}
In order to check that the code under test generates a person with name
"Iain" we would do the following:
Mock personGenListenerMock = mock(PersonGenerationListener.class);
personGenListenerMock.expects(once()).method("personGenerated").with(and(isA(Person.class), hasProperty("Name", eq("Iain")));
PersonGenerationListener listener = (PersonGenerationListener)personGenListenerMock.proxy();
If an exception is thrown by the getter method for a property, the property
does not exist, is not readable, or a reflection related exception is thrown
when trying to invoke it then this is treated as an evaluation failure and
the eval method will return false.
This constraint class will also work with JavaBean objects that have explicit
bean descriptions via an associated BeanInfo description class. See the
JavaBeans specification for more information:
http://java.sun.com/products/javabeans/docs/index.htmlConstructor and Description |
---|
HasPropertyWithValue(java.lang.String propertyName,
Constraint expectation) |
Modifier and Type | Method and Description |
---|---|
java.lang.StringBuffer |
describeTo(java.lang.StringBuffer buffer)
Appends the description of this object to the buffer.
|
boolean |
eval(java.lang.Object argument)
Evaluates the constraint for argument o.
|
public HasPropertyWithValue(java.lang.String propertyName, Constraint expectation)
public boolean eval(java.lang.Object argument)
Constraint
eval
in interface Constraint
argument
- the object against which the constraint is evaluated.true
if o meets the constraint,
false
if it does not.public java.lang.StringBuffer describeTo(java.lang.StringBuffer buffer)
SelfDescribing
describeTo
in interface SelfDescribing
buffer
- The buffer that the description is appended to.