// Copyright (c) 2003-present, Jodd Team (http://jodd.org)
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.

package jodd.mail;

import org.junit.jupiter.api.Test;

import java.util.Properties;

import static jodd.mail.SmtpServer.MAIL_SMTP_FROM;
import static org.junit.jupiter.api.Assertions.assertEquals;

class SmtpServerTest {

    @Test
    void testAddsPropertyToServerSession() {
        Properties overridenProperties = new Properties();

        overridenProperties.setProperty("mail.smtp.from", "bounce@jodd.org");

        SmtpServer smtpServer = SmtpServer.create("some.host.com", 587)
                .authenticateWith("test", "password")
                .timeout(10)
                .properties(overridenProperties);

        Properties sessionProperties = smtpServer.createSession().mailSession.getProperties();

        assertEquals("bounce@jodd.org", sessionProperties.getProperty("mail.smtp.from"));
    }

    @Test
    void testAddsPropertyToServerSession2() {
        SmtpSslServer smtpServer = SmtpSslServer.create("some.host.com", 587)
                .authenticateWith("test", "password")
                .timeout(10)
                .property(MAIL_SMTP_FROM, "bounce@jodd.org");

        Properties sessionProperties = smtpServer.createSession().mailSession.getProperties();

        assertEquals("bounce@jodd.org", sessionProperties.getProperty("mail.smtp.from"));
    }
}

@@ -1599,16 +1599,278 @@
 Test %7B%0A%0A
+    private static final String HOST = %22some.host.com%22;%0A    private static final int PORT = 587;%0A    private static final String FROM = %22bounce@jodd.org%22;%0A    private static final String USERNAME = %22test%22;%0A    private static final String PASSWORD = %22password%22;%0A%0A
     @Tes
@@ -2020,43 +2020,28 @@
 rty(
-%22mail.smtp.from%22, %22bounce@jodd.org%22
+MAIL_SMTP_FROM, FROM
 );%0A%0A
@@ -2090,36 +2090,26 @@
 .create(
-%22some.host.com%22, 587
+HOST, PORT
 )%0A      
@@ -2136,34 +2136,34 @@
 ateWith(
-%22test%22, %22password%22
+USERNAME, PASSWORD
 )%0A      
@@ -2248,183 +2248,29 @@
     
-Properties sessionProperties = smtpServer.createSession().mailSession.getProperties();%0A%0A        assertEquals(%22bounce@jodd.org%22, sessionProperties.getProperty(%22mail.smtp.from%22)
+assertFrom(smtpServer
 );%0A 
@@ -2391,28 +2391,18 @@
 ate(
-%22some.host.com%22, 587
+HOST, PORT
 )%0A  
@@ -2437,26 +2437,26 @@
 ith(
-%22test%22, %22password%22
+USERNAME, PASSWORD
 )%0A  
@@ -2528,28 +2528,102 @@
 OM, 
-%22bounce@jodd.org%22);%0A
+FROM);%0A        assertFrom(smtpServer);%0A    %7D%0A%0A    private void assertFrom(MailServer server) %7B
 %0A   
@@ -2659,20 +2659,16 @@
 ties = s
-mtpS
 erver.cr
@@ -2702,33 +2702,32 @@
 etProperties();%0A
-%0A
         assertEq
@@ -2731,33 +2731,20 @@
 tEquals(
-%22bounce@jodd.org%22
+FROM
 , sessio
@@ -2771,24 +2771,22 @@
 rty(
-%22mail.smtp.from%22
+MAIL_SMTP_FROM
 ));%0A

Use constants; refactor for less code