Failing test: add a book
Test passed: add a book
Failing test: add a book and count
Test passed
Failing test: add N books and count
Test passed
Refactoring
Refactoring
Failing test: caclucalte checkout single book price
Test passed
Failing test: caclucalte checkout different books price
Test passed
Refactoring
Failing test: apply discount
Test passed. Bad test fixed.
Refactoring
Failing test: apply discount regardless the order
Test passed