Fixed an incorrect test name. Oops!
Sale now handles products for which it does not have a price.
Sale no longer hardcodes the barcode that it didn't find.
Sale now handles an empty barcode with less confusion.
Clarified a guard condition by making it a guard clause.
One branch of the if statement now uses the lookup table.
The other branch of the if statement now uses the lookup table.
Removed some duplication.
Removed some duplication.
Began to simplify code by combining conditions.
Removed obsolete code.
Experimenting with "report all errors". It sounds useful.
Replaced complicated condition with the meaning of the condition; improved clarity.
Removed duplication of creating the lookup table on every invocation of onBarcode().
Moved hardcoded field value to constructor in preparation for pushing it out to clients.
Pushed default value out to all clients.
Removed obsolete code.
Clarified a test: replaced strong assumption with a weaker one.
Removed obsolete code.
Replaced a weaker test with a stronger one. The old test duplicated another test; this version tests something new.