Project

General

Profile

Download (3.14 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2021 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.api.service;
10

    
11
import static org.junit.Assert.assertEquals;
12

    
13
import java.io.FileNotFoundException;
14
import java.util.Objects;
15

    
16
import javax.mail.MessagingException;
17
import javax.mail.internet.MimeMessage;
18

    
19
import org.junit.Test;
20
import org.springframework.core.env.Environment;
21
import org.springframework.mail.SimpleMailMessage;
22
import org.springframework.mail.javamail.JavaMailSender;
23
import org.subethamail.wiser.Wiser;
24
import org.subethamail.wiser.WiserMessage;
25
import org.unitils.spring.annotation.SpringBeanByType;
26

    
27
import eu.etaxonomy.cdm.api.config.SendEmailConfigurer;
28
import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
29

    
30

    
31
public class EmailSendTest extends CdmIntegrationTest {
32

    
33

    
34
    private static final String SUBJECT = "eu.etaxonomy.cdm.test.function.EmailSendTest";
35

    
36
    private static final String TO = "a.kohlbecker@bgbm.org";
37

    
38
    @SpringBeanByType
39
    private JavaMailSender emailSender;
40

    
41
    @SpringBeanByType
42
    private Environment env;
43

    
44
    @Test
45
    public void sendEmailTest() {
46

    
47
        boolean disabled = false;
48
        try {
49
            disabled = Boolean.valueOf(env.getProperty(SendEmailConfigurer.DISABLED));
50
        } catch (Exception e) {
51
            // ignore all
52
        }
53

    
54
        if(disabled) {
55
            logger.warn("sendEmailTest is disabled");
56
            return;
57
        }
58

    
59
        String from = env.getProperty(SendEmailConfigurer.FROM_ADDRESS);
60

    
61
        boolean useWiser = Objects.equals(env.getProperty(SendEmailConfigurer.INT_TEST_SERVER), "wiser");
62
        Wiser wiser = null;
63
        if(useWiser) {
64
            // start test smtp server
65
            wiser = new Wiser();
66
            wiser.setPort(2500); // Default is 25
67
            wiser.start();
68
        }
69

    
70
        if(!disabled) {
71

    
72
            SimpleMailMessage message = new SimpleMailMessage();
73
            message.setFrom(from);
74
            message.setTo(TO);
75
            message.setSubject(SUBJECT);
76
            message.setText("This is a test email send from the cdmlib intergration test suite");
77
            emailSender.send(message);
78
        }
79

    
80
        if(useWiser) {
81
            for (WiserMessage message : wiser.getMessages())
82
            {
83
                String envelopeSender = message.getEnvelopeSender();
84
                String envelopeReceiver = message.getEnvelopeReceiver();
85
                String subject = null;
86

    
87
                assertEquals(from, envelopeSender);
88
                assertEquals(TO, envelopeReceiver);
89
                try {
90
                    MimeMessage mess = message.getMimeMessage();
91
                    subject  = mess.getSubject();
92
                } catch (MessagingException e) {
93
                    logger.error("MessagingException", e);
94
                }
95
                assertEquals(SUBJECT, subject);
96
            }
97
            wiser.stop();
98
        }
99

    
100
    }
101

    
102
    @Override
103
    public void createTestDataSet() throws FileNotFoundException {
104
        // no data needed
105
    }
106

    
107
}
(7-7/38)