mailslurp-examples - java-maven-junit4

https://github.com/mailslurp/examples

Table of Contents

java-maven-junit4/pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>java-maven-junit4</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>com.mailslurp</groupId>
            <artifactId>mailslurp-client-java</artifactId>
            <version>11.5.10</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

java-maven-junit4/README.md

# Email testing
See [examples repository](https://github.com/mailslurp/examples) for source.

java-maven-junit4/Makefile

-include ../.env

test:
	API_KEY=$(API_KEY) mvn install test

java-maven-junit4/src/test/java/com/mailslurp/examples/ExampleUsageTest.java

package com.mailslurp.examples;

import com.mailslurp.api.api.InboxControllerApi;
import com.mailslurp.api.api.WaitForControllerApi;
import com.mailslurp.client.ApiClient;
import com.mailslurp.client.Configuration;
import com.mailslurp.models.Email;
import com.mailslurp.models.Inbox;
import com.mailslurp.models.SendEmailOptions;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.junit.BeforeClass;
import org.junit.Test;

import static java.util.Collections.singletonList;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

public class ExampleUsageTest {

    private final static String YOUR_API_KEY = System.getenv("API_KEY");
    private static final Boolean UNREAD_ONLY = true;
    private static final Long TIMEOUT_MILLIS = 30000L;

    @BeforeClass
    public static void Setup() {
        assertNotNull(YOUR_API_KEY);
    }

    @Test
    public void CanCreateInboxes() throws Exception {
        ApiClient defaultClient = Configuration.getDefaultApiClient();
        defaultClient.setApiKey(YOUR_API_KEY);

        InboxControllerApi inboxControllerApi = new InboxControllerApi(defaultClient);
        Inbox inbox = inboxControllerApi.createInbox(null, null, null, null, null, null);

        // verify inbox
        assertEquals(inbox.getEmailAddress().contains("@mailslurp.com"), true);
        assertNotNull(inbox.getId());
    }

    @Test
    public void CanSendEmails() throws Exception {
        ApiClient defaultClient = Configuration.getDefaultApiClient();
        defaultClient.setApiKey(YOUR_API_KEY);

        InboxControllerApi inboxControllerApi = new InboxControllerApi(defaultClient);
        Inbox inbox = inboxControllerApi.createInbox(null, null, null, null, null, null);

        SendEmailOptions sendEmailOptions = new SendEmailOptions()
                .to(singletonList(inbox.getEmailAddress()))
                .subject("Test")
                .body("Hello");
        inboxControllerApi.sendEmail(inbox.getId(), sendEmailOptions);
    }

    @Test
    public void CanReceiveEmail() throws Exception {
        ApiClient defaultClient = Configuration.getDefaultApiClient();
        defaultClient.setApiKey(YOUR_API_KEY);

        InboxControllerApi inboxControllerApi = new InboxControllerApi(defaultClient);
        Inbox inbox1 = inboxControllerApi.createInbox(null, null, null, null, null, null);
        Inbox inbox2 = inboxControllerApi.createInbox(null, null, null, null, null, null);

        SendEmailOptions sendEmailOptions = new SendEmailOptions()
                .to(singletonList(inbox2.getEmailAddress()))
                .subject("Hello inbox2")
                .body("Your code is: 123");
        inboxControllerApi.sendEmail(inbox1.getId(), sendEmailOptions);

        WaitForControllerApi waitForControllerApi = new WaitForControllerApi(defaultClient);
        Email email = waitForControllerApi.waitForLatestEmail(inbox2.getId(), TIMEOUT_MILLIS, UNREAD_ONLY);

        assertEquals(email.getSubject(), "Hello inbox2");
        assertEquals(email.getBody().contains("Your code is:"), true);

        Pattern p = Pattern.compile("Your code is: ([0-9]{3})");
        Matcher m = p.matcher(email.getBody());
        m.find();

        String code =  m.group(1);
        assertEquals(code, "123");
    }
}