Skip to content

Commit

Permalink
MailService getDefaultMailFrom() #10475
Browse files Browse the repository at this point in the history
  • Loading branch information
anatol-sialitski committed Mar 21, 2024
1 parent 14b7f0e commit c48fd0e
Show file tree
Hide file tree
Showing 7 changed files with 97 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ public interface MailService
void send( MailMessage message );

void send( SendMailParams message );

String getDefaultFromEmail();
}
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,12 @@ public void send( final SendMailParams params )
}
}

@Override
public String getDefaultFromEmail()
{
return defaultFromEmail;
}

private MimeMessage newMessage()
{
return new MimeMessage( this.session );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.jvnet.mock_javamail.Mailbox;
import org.mockito.Mockito;

import com.enonic.xp.mail.MailException;
import com.enonic.xp.mail.MailMessage;
Expand All @@ -18,6 +17,8 @@
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

public class MailServiceImplTest
{
Expand All @@ -27,7 +28,8 @@ public class MailServiceImplTest
public void setUp()
throws Exception
{
final MailConfig config = Mockito.mock( MailConfig.class, invocation -> invocation.getMethod().getDefaultValue() );
final MailConfig config = mock( MailConfig.class, invocation -> invocation.getMethod().getDefaultValue() );
when( config.defaultFromEmail() ).thenReturn( "noreply@domain.com" );

this.mailService = new MailServiceImpl();
this.mailService.activate( config );
Expand Down Expand Up @@ -68,6 +70,12 @@ public void testSend()
SendMailParams.create().subject( "test subject" ).body( "test body" ).to( "to@bar.com" ).from( "from@bar.com" ).build() ) );
}

@Test
public void testGetDefaultFromEmail()
{
assertEquals( "noreply@domain.com", this.mailService.getDefaultFromEmail() );
}

private void createMockMessage( MimeMessage msg )
throws Exception
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.enonic.xp.lib.mail;

import java.util.function.Supplier;

import com.enonic.xp.mail.MailService;
import com.enonic.xp.script.bean.BeanContext;
import com.enonic.xp.script.bean.ScriptBean;

public class GetDefaultFromEmailHandler
implements ScriptBean
{

private Supplier<MailService> mailService;

@Override
public void initialize( final BeanContext context )
{
this.mailService = context.getService( MailService.class );
}

public String execute()
{
return this.mailService.get().getDefaultFromEmail();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
var mailLib = require('/lib/xp/mail.js');
var assert = require('/lib/xp/testing.js');

// BEGIN
// Retrieve the default from mail address.
var defaultFromEmail = mailLib.getDefaultFromEmail();
// END

assert.assertEquals('noreply@domain.com', defaultFromEmail);
15 changes: 15 additions & 0 deletions modules/lib/lib-mail/src/main/resources/lib/xp/mail.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,18 @@ export function send(params: SendMessageParams): boolean {

return bean.send();
}


interface GetDefaultFromEmailHandler {
execute(): string | null;
}

/**
* This function returns defaultFromMail.
*
* @returns {string} The default from e-mail address, or null if not set.
*/
export function getDefaultFromEmail(): string | null {
const bean = __.newBean<GetDefaultFromEmailHandler>('com.enonic.xp.lib.mail.GetDefaultFromEmailHandler');
return bean.execute();
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,12 @@ public void send( final SendMailParams message )
{
SendMailScriptTest.this.actualMessage = message;
}

@Override
public String getDefaultFromEmail()
{
return "noreply@domain.com";
}
} );
}

Expand All @@ -54,6 +60,12 @@ public void testExample()
runScript( "/lib/xp/examples/mail/send.js" );
}

@Test
public void testGetDefaultFromEmail()
{
runScript( "/lib/xp/examples/mail/getDefaultFromEmail.js" );
}

@Test
public void testSimpleMail()
{
Expand Down Expand Up @@ -119,6 +131,12 @@ public void send( final SendMailParams message )
{
throw new RuntimeException( "Error sending mail" );
}

@Override
public String getDefaultFromEmail()
{
return null;
}
};
addService( MailService.class, mailService );

Expand Down Expand Up @@ -159,6 +177,12 @@ public void send( final SendMailParams message )
{
throw new RuntimeException( "Error sending mail" );
}

@Override
public String getDefaultFromEmail()
{
return null;
}
};
addService( MailService.class, mailService );

Expand Down Expand Up @@ -192,6 +216,12 @@ public void send( final SendMailParams message )
{
throw new RuntimeException( "Error sending mail" );
}

@Override
public String getDefaultFromEmail()
{
return null;
}
} );

try
Expand Down

0 comments on commit c48fd0e

Please sign in to comment.