Coverage Report - com.nilhcem.fakesmtp.server.MailListener
 
Classes in this File Line Coverage Branch Coverage Complexity
MailListener
50%
3/6
N/A
1
 
 1  
 package com.nilhcem.fakesmtp.server;
 2  
 
 3  
 import java.io.IOException;
 4  
 import java.io.InputStream;
 5  
 import org.subethamail.smtp.helper.SimpleMessageListener;
 6  
 
 7  
 /**
 8  
  * Listens to incoming emails and redirects them to the {@code MailSaver} object.
 9  
  *
 10  
  * @author Nilhcem
 11  
  * @since 1.0
 12  
  */
 13  
 public final class MailListener implements SimpleMessageListener {
 14  
         private final MailSaver saver;
 15  
 
 16  
         /**
 17  
          * Creates the listener.
 18  
          *
 19  
          * @param saver a {@code MailServer} object used to save emails and notify components.
 20  
          */
 21  1
         public MailListener(MailSaver saver) {
 22  1
                 this.saver = saver;
 23  1
         }
 24  
 
 25  
         /**
 26  
          * Accepts all kind of email <i>(always return true)</i>.
 27  
          * <p>
 28  
          * Called once for every RCPT TO during a SMTP exchange.<br>
 29  
      * Each accepted recipient will result in a separate deliver() call later.
 30  
      * </p>
 31  
      *
 32  
          * @param from the user who send the email.
 33  
          * @param recipient the recipient of the email.
 34  
          * @return always return {@code true}
 35  
          */
 36  
         public boolean accept(String from, String recipient) {
 37  0
                 return true;
 38  
         }
 39  
 
 40  
     /**
 41  
      * Receives emails and forwards them to the {@link MailSaver} object.
 42  
      */
 43  
         @Override
 44  
         public void deliver(String from, String recipient, InputStream data) throws IOException {
 45  0
                 saver.saveEmailAndNotify(from, recipient, data);
 46  0
         }
 47  
 }