Package mireka.transmission.queue

Source Code of mireka.transmission.queue.FileDirStoreTest

package mireka.transmission.queue;

import static org.junit.Assert.*;

import java.io.File;

import mireka.ExampleAddress;
import mireka.ExampleMail;
import mireka.TempDirectory;
import mireka.transmission.Mail;

import org.junit.Test;

public class FileDirStoreTest extends TempDirectory {
    @Test
    public void testSave() throws Exception {
        FileDirStore store = new FileDirStore(directory, 10);
        store.initializeAndQueryMailNamesOrderedBySchedule();

        Mail mail = ExampleMail.simple();
        store.save(mail);

        FileDirStore restartedStore = new FileDirStore(directory, 10);
        MailName[] mailNames =
                restartedStore.initializeAndQueryMailNamesOrderedBySchedule();
        assertEquals(1, mailNames.length);
    }

    @Test
    public void testSaveWithSameDate() throws Exception {
        FileDirStore store = new FileDirStore(directory, 10);
        store.initializeAndQueryMailNamesOrderedBySchedule();

        Mail mail = ExampleMail.simple();
        mail.from = ExampleAddress.JOHN_AS_REVERSE_PATH;
        store.save(mail);
        mail.from = ExampleAddress.JANE_AS_REVERSE_PATH;
        store.save(mail);

        FileDirStore restartedStore = new FileDirStore(directory, 10);
        MailName[] mailNames =
                restartedStore.initializeAndQueryMailNamesOrderedBySchedule();
        assertEquals(2, mailNames.length);
    }

    @Test
    public void testRead() throws Exception {
        FileDirStore store = new FileDirStore(directory, 10);
        store.initializeAndQueryMailNamesOrderedBySchedule();

        Mail mailStored = ExampleMail.simple();
        MailName mailName = store.save(mailStored);

        Mail mailRead = store.read(mailName);
        assertEquals(mailStored.from.getSmtpText(), mailRead.from.getSmtpText());
    }

    @Test
    public void testDelete() throws Exception {
        FileDirStore store = new FileDirStore(directory, 10);
        store.initializeAndQueryMailNamesOrderedBySchedule();

        Mail mailStored = ExampleMail.simple();
        MailName mailName = store.save(mailStored);
        store.delete(mailName);

        FileDirStore restartedStore = new FileDirStore(directory, 10);
        MailName[] mailNames =
                restartedStore.initializeAndQueryMailNamesOrderedBySchedule();
        assertEquals(0, mailNames.length);
    }

    @Test
    public void testMoveToErrorDir() throws Exception {
        FileDirStore store = new FileDirStore(directory, 10);
        store.initializeAndQueryMailNamesOrderedBySchedule();

        Mail mailStored = ExampleMail.simple();
        MailName mailName = store.save(mailStored);
        store.moveToErrorDir(mailName);

        FileDirStore restartedStore = new FileDirStore(directory, 10);
        MailName[] mailNames =
                restartedStore.initializeAndQueryMailNamesOrderedBySchedule();
        assertEquals(0, mailNames.length);
        File errorDir = new File(directory, "error");
        assertTrue(errorDir.isDirectory());
        assertEquals(2, errorDir.list().length);
    }

    @Test(expected = QueueStorageException.class)
    public void testFull() throws Exception {
        FileDirStore store = new FileDirStore(directory, 1);
        store.initializeAndQueryMailNamesOrderedBySchedule();

        Mail mail = ExampleMail.simple();
        store.save(mail);
        store.save(mail);
    }

    /**
     * This test checks a previous bug.
     */
    @Test
    public void testSizeMaintained() throws Exception {
        FileDirStore store = new FileDirStore(directory, 1);
        store.initializeAndQueryMailNamesOrderedBySchedule();
        Mail mail = ExampleMail.simple();

        MailName lastName = store.save(mail);
        store.delete(lastName);

        // this must not throw an exception, because the first mail was deleted,
        // so there is still place for a new mail
        store.save(mail);
    }
}
TOP

Related Classes of mireka.transmission.queue.FileDirStoreTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.