Testare più email contemporaneamente

Può capitare di inviare dalla stessa action diverse email, ad esempio per notificare un amministratore di un determinato evento e contemporaneamente per dare feedback all’utente che l’ha scatenato.

In questi casi sfTesterMailer, che con il metodo withMessage(), ci viene incontro dandoci la possibilità di filtrare, filtrando per destinatario, l’email che vogliamo testare.

Supponiamo ad esempio di aver spedito due email, una a admin@example.org e l’altra ad user@example.org in questo ordine.

Il test funzionale corrispondente sarà:

1
2
3
4
5
6
with('mailer')->begin()->
  hasSent(2)->
  checkHeader('to', '/admin@example.org/')->
  withMessage('user@example.org')->
  checkHeader('to', '/user@example.org/')->
end();

Inoltre il metodo withMessage() ci permette anche di ciclare all’interno dei messaggi, usando un secondo parametro denominato $position, casomai i messaggi inviati all’utente siano più di uno.