Birthday Greetings Kata

Tu tarea

Como eres una persona muy amigable, te gustaría enviar una nota de cumpleaños a todos los amigos que tienes. Pero tienes muchos amigos y eres un poco vago, puede que te lleve algunas veces escribir todas las notas a mano.

La buena noticia es que este sistema puede hacerlo automáticamente por tí.

Imagina que tienes un archivo plano con todos tus amigos:

last_name, first_name, date_of_birth, email
 Doe, John, 1982/10/08, john.doe@foobar.com
 Ann, Mary, 1975/09/11, mary.ann@foobar.com

Y desea enviarles un correo de feliz cumpleaños en su fecha de nacimiento:

Subject: Happy birthday!
Happy birthday, dear <first_name>!

¿Cómo sería este software? Intente implementarlo para que pueda cambiar fácilmente:

  • la forma en que recupera los datos de sus amigos (por ejemplo, intente cambiar a SQLite Db)
  • la forma en que envías la nota: (por ejemplo, imagina que quieres enviar SMS en lugar de correos electrónicos)

¿Qué tipo de pruebas escribirías? ¿Usarías mocks?

Características adicionales

  • Los amigos nacidos el 29 de febrero deberían celebrar su cumpleaños el 28 de febrero.

  • Envía una nota de recordatorio de cumpleaños cuando sea el cumpleaños de otra persona:

Subject: Birthday Reminder

Dear <first_name>,
Today is <someone_else_first_name> <someone_else_last_name>'s birthday.
Don't forget to send him a message !
  • Enviar una única nota de recordatorio de cumpleaños para todas las personas que lo estén hoy.
Subject: Birthday Reminder

Dear <first_name>,
Today is <full_name_1>, <full_name_2> and <full_name_3>'s birthday.
Don't forget to send them a message !

Recursos