mardi 5 mai 2015

Mockito says arguments are not identical but they are?

This is a statement from a method that I want to test:

criteria.add(Restrictions.eq("client", selectionVariant.getClient()));

And here is a statement from my test method:

Mockito.verify(criteria).add(Restrictions.eq("client", selectionVariant.getClient()));

And this is what I see in the console:

Argument(s) are different! Wanted:
criteria.add(
    client=Client{id=1, businessKey='HPD', description='desc', version=0}
);
-> at com.innflow.ebtam.dao.hibernate.variant.SelectionVariantUniqueConstraintValidatorImplTest.testBuildValidationCriteria(SelectionVariantUniqueConstraintValidatorImplTest.java:48)
Actual invocation has different arguments:
criteria.add(
    client=Client{id=1, businessKey='HPD', description='desc', version=0}
);
-> at com.innflow.ebtam.dao.hibernate.variant.SelectionVariantUniqueConstraintValidatorImpl.buildValidationCriteria(SelectionVariantUniqueConstraintValidatorImpl.java:36)

What am I missing?

Edit:

equals method in Client.java is as follows:

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || (getClass() != o.getClass() && !(o instanceof Client))) return false;

    Client client = (Client) o;

    if (businessKey != null ? !businessKey.equals(client.getBusinessKey()) : client.getBusinessKey() != null)
        return false;

    return true;
}

Aucun commentaire:

Enregistrer un commentaire