@Override protected GreenMail greenMail() { return greenMailServer.getServer(); }
public class AddressesTest extends AbstractMailTest { private static final String ANOTHER_FOO_AT_EXAMPLE_DOT_COM = "another_" + FOO_AT_EXAMPLE_DOT_COM; private static final String ANOTHER_BAR_AT_EXAMPLE_DOT_COM = "another_" + BAR_AT_EXAMPLE_DOT_COM; private static final String ANOTHER_BAZ_AT_EXAMPLE_DOT_COM = "another_" + BAZ_AT_EXAMPLE_DOT_COM; @Rule public GreenMailServer greenMailServer = GreenMailServer.newInstance() // .withConfiguration(inputServerSetup(), outputServerSetup()) // .withUser(FOO_AT_EXAMPLE_DOT_COM, FOO, PASSWORD) // .build(); private MailApi mailApi; @Override protected ServerSetup inputServerSetup() { return ServerSetupTest.IMAP; } @Override protected ServerSetup outputServerSetup() { return ServerSetupTest.SMTP; } @Override protected GreenMail greenMail() { return greenMailServer.getServer(); } @Before public void setUpMailApi() throws Exception { final MailApiFactory mailApiFactory = new DefaultMailApiFactory(); mailApiFactory.setConfiguration(configurationFrom(FOO, PASSWORD)); mailApi = mailApiFactory.createMailApi(); } @Test public void allAddresses() throws Exception { // given send( newMail(FOO, PASSWORD) // .withTo(collectionOf(FOO_AT_EXAMPLE_DOT_COM, ANOTHER_FOO_AT_EXAMPLE_DOT_COM)) // .withCc(arrayOf(BAR_AT_EXAMPLE_DOT_COM, ANOTHER_BAR_AT_EXAMPLE_DOT_COM)) // .withBcc(BAZ_AT_EXAMPLE_DOT_COM, ANOTHER_BAZ_AT_EXAMPLE_DOT_COM) // .withSubject(SUBJECT) // .withContent(PLAIN_TEXT_CONTENT)); final FetchedMail fetchedMail = mailApi .selectFolder(INBOX) // .fetch() // .iterator() .next(); // when final GetMail getMail = mailApi.selectMail(fetchedMail).get(); // then assertThat(getMail.getFrom(), equalTo(FOO_AT_EXAMPLE_DOT_COM)); assertThat( getMail.getTos(), containsInAnyOrder(FOO_AT_EXAMPLE_DOT_COM, ANOTHER_FOO_AT_EXAMPLE_DOT_COM)); assertThat(size(getMail.getTos()), equalTo(2)); assertThat( getMail.getCcs(), containsInAnyOrder(BAR_AT_EXAMPLE_DOT_COM, ANOTHER_BAR_AT_EXAMPLE_DOT_COM)); assertThat(size(getMail.getCcs()), equalTo(2)); } @Test public void addressesStrippedFromContactDetails() throws Exception { // given send( newMail(FOO, PASSWORD) // .withFrom(address(BAZ, BAZ_AT_EXAMPLE_DOT_COM)) // .withTo(address(FOO, FOO_AT_EXAMPLE_DOT_COM)) // .withCc(address(BAR, BAR_AT_EXAMPLE_DOT_COM)) // .withSubject(SUBJECT) // .withContent(PLAIN_TEXT_CONTENT)); final FetchedMail fetchedMail = mailApi .selectFolder(INBOX) // .fetch() // .iterator() .next(); // when final GetMail getMail = mailApi.selectMail(fetchedMail).get(); // then assertThat(getMail.getFrom(), equalTo(BAZ_AT_EXAMPLE_DOT_COM)); assertThat(getMail.getTos(), containsInAnyOrder(FOO_AT_EXAMPLE_DOT_COM)); assertThat(getMail.getCcs(), containsInAnyOrder(BAR_AT_EXAMPLE_DOT_COM)); } private String address(final String contactName, final String emailAddress) { return String.format("%s <%s>", contactName, emailAddress); } private Iterable<String> collectionOf(final String... elements) { return Arrays.asList(elements); } private String[] arrayOf(final String... elements) { return elements; } }