Lambdas are view elements, and should be tested as such
We can display validation errors in the order form, but no validation happens yet
We restore form values when a validation error occurs during checkout
Credit Card Details are only valid when card number is not blank and expiry date is not null, but we don't validate them yet
Throw exception when invalid constraints are accessed
Cashier will reject invalid payment details
Address is only valid with a first name and a last name
We only consider card details valid when they have a valid billing address.

--HG--
rename : domain/src/main/java/org/testinfected/petstore/NotNull.java => domain/src/main/java/org/testinfected/petstore/Valid.java
Remove duplication in tests by extracting validation matchers into
their own class
Constraints throw ConstraintViolationExceptions rather than IllegalArgumentException

--HG--
rename : domain/src/main/java/org/testinfected/petstore/Check.java => domain/src/main/java/org/testinfected/petstore/Validate.java
Trying to find better names for validation concepts

--HG--
rename : domain/src/main/java/org/testinfected/petstore/Check.java => domain/src/main/java/org/testinfected/petstore/Ensure.java
We reject payment details submissions that are invalid, but we don't redisplay submitted values yet

--HG--
rename : webapp/src/main/java/org/testinfected/petstore/views/ChoiceOfCreditCards.java => webapp/src/main/java/org/testinfected/petstore/helpers/ChoiceOfCreditCards.java
rename : webapp/src/main/java/org/testinfected/petstore/views/ErrorList.java => webapp/src/main/java/org/testinfected/petstore/helpers/ErrorList.java
rename : webapp/src/main/java/org/testinfected/petstore/views/PathToAttachment.java => webapp/src/main/java/org/testinfected/petstore/helpers/PathToAttachment.java
Don't try to enforce satisfaction of constraints at access time. It's making things more complicated than it should be
We now redisplay form with invalid data when payment details are rejected
Prepare forms for error message translation

--HG--
rename : webapp/src/main/java/org/testinfected/petstore/helpers/ErrorList.java => webapp/src/main/java/org/testinfected/petstore/helpers/Errors.java
rename : webapp/src/main/java/org/testinfected/petstore/helpers/FormErrors.java => webapp/src/main/java/org/testinfected/petstore/helpers/Form.java
We translate validation error codes to messages but we don't have any way to load messages yet
We display human readable messages when validation fails, but only have a default locale