Pergunta de entrevista da empresa Thoughtworks

Coding challenge. Use OOP and TDD to succeed.