/*******************************************************************************
* Cloud Foundry
* Copyright (c) [2009-2014] Pivotal Software, Inc. All Rights Reserved.
*
* This product is licensed to you under the Apache License, Version 2.0 (the "License").
* You may not use this product except in compliance with the License.
*
* This product includes a number of subcomponents with
* separate copyright notices and license terms. Your use of these
* subcomponents is subject to the terms and conditions of the
* subcomponent's license, as noted in the LICENSE file.
*******************************************************************************/
package org.cloudfoundry.identity.uaa.login.test;
import org.apache.commons.io.IOUtils;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessagePreparator;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;
public class FakeJavaMailSender implements JavaMailSender {
private final Session session;
private final ArrayList<MimeMessageWrapper> sentMessages;
public FakeJavaMailSender() {
session = Session.getInstance(new Properties());
sentMessages = new ArrayList<>();
}
@Override
public MimeMessage createMimeMessage() {
return new MimeMessage(session);
}
@Override
public MimeMessage createMimeMessage(InputStream inputStream) {
throw new UnsupportedOperationException();
}
@Override
public void send(MimeMessage mimeMessage) throws MailException {
sentMessages.add(new MimeMessageWrapper(mimeMessage));
}
@Override
public void send(MimeMessage[] mimeMessages) throws MailException {
throw new UnsupportedOperationException();
}
@Override
public void send(MimeMessagePreparator mimeMessagePreparator) throws MailException {
throw new UnsupportedOperationException();
}
@Override
public void send(MimeMessagePreparator[] mimeMessagePreparators) throws MailException {
throw new UnsupportedOperationException();
}
@Override
public void send(SimpleMailMessage simpleMailMessage) throws MailException {
throw new UnsupportedOperationException();
}
@Override
public void send(SimpleMailMessage[] simpleMailMessages) throws MailException {
throw new UnsupportedOperationException();
}
public ArrayList<MimeMessageWrapper> getSentMessages() {
return sentMessages;
}
public static class MimeMessageWrapper {
private final MimeMessage mimeMessage;
public MimeMessageWrapper(MimeMessage mimeMessage) {
this.mimeMessage = mimeMessage;
}
public List<Address> getRecipients(Message.RecipientType recipientType) throws MessagingException {
return Arrays.asList(mimeMessage.getRecipients(recipientType));
}
public List<Address> getFrom() throws MessagingException {
return Arrays.asList(mimeMessage.getFrom());
}
public String getContentString() throws MessagingException, IOException {
return IOUtils.toString(mimeMessage.getDataHandler().getInputStream());
}
}
}