Skip to content

Instantly share code, notes, and snippets.

@Ebazhanov
Created January 17, 2018 11:45

Revisions

  1. Ebazhanov created this gist Jan 17, 2018.
    137 changes: 137 additions & 0 deletions ReadGmailAccount.groovy
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,137 @@
    package de.base.utils.GmailReader

    import ru.yandex.qatools.allure.annotations.Step

    import javax.mail.*

    import static com.codeborne.selenide.Selenide.sleep
    import static de.base.utils.GmailReader.ConnectToEmailByImap.gmailProperties

    /**
    * Go to Gmail "Inbox" then read received letters
    *
    */

    class ReadGmailAccount {

    @Step
    static checkThatSubjectOfTheLetterIsPresent(String userEmail, String password, String subject) {
    Session emailSession = Session.getDefaultInstance(gmailProperties())
    Store store = emailSession.getStore("imaps")
    store.connect("imap.googlemail.com", userEmail, password)
    Folder emailFolder = store.getFolder("Inbox")
    emailFolder.open(Folder.READ_WRITE)
    sleep(3000)
    if (emailFolder.getMessageCount() != 0) {
    assert emailFolder.getMessage(1).getSubject() == subject
    } else if (emailFolder.getMessageCount() == 0) {
    sleep(8000)
    assert emailFolder.getMessage(1).getSubject() == subject
    }
    emailFolder.close(true)
    store.close()
    return this
    }

    @Step
    static checkThatSubjectOfTheLetterIsPresent(String folderName, String userEmail, String password, String subject) {
    Session emailSession = Session.getDefaultInstance(gmailProperties())
    Store store = emailSession.getStore("imaps")
    store.connect("imap.googlemail.com", userEmail, password)
    Folder emailFolder = store.getFolder(folderName)
    emailFolder.open(Folder.READ_WRITE)
    sleep(3000)
    if (emailFolder.getMessageCount() != 0) {
    assert emailFolder.getMessage(1).getSubject().contains(subject)
    } else if (emailFolder.getMessageCount() == 0) {
    sleep(8000)
    assert emailFolder.getMessage(1).getSubject().contains(subject)
    }
    emailFolder.close(true)
    store.close()
    return this
    }

    @Step
    static checkThatSubjectOfTheLetterIsPresentForMessageNumber(String userEmail, String password, String subject, int messageNumber) {
    Session emailSession = Session.getDefaultInstance(gmailProperties())
    Store store = emailSession.getStore("imaps")
    store.connect("imap.googlemail.com", userEmail, password)
    Folder emailFolder = store.getFolder("Inbox")
    emailFolder.open(Folder.READ_WRITE)
    sleep(10000)
    assert emailFolder.getMessage(messageNumber).getSubject() == subject
    emailFolder.close(true)
    store.close()
    return this
    }

    @Step
    static checkThatSubjectOfTheLetterIsNotPresent(String userEmail, String password, String subject) {
    Session emailSession = Session.getDefaultInstance(gmailProperties())
    Store store = emailSession.getStore("imaps")
    store.connect("imap.googlemail.com", userEmail, password)
    Folder emailFolder = store.getFolder("Inbox")
    emailFolder.open(Folder.READ_WRITE)
    def messages = emailFolder.getMessages()
    messages.reverse(true)
    sleep(8000)
    for (Message m in messages) {
    assert m.getSubject() != subject
    }
    emailFolder.close(true)
    store.close()
    return this
    }

    @Step
    static checkThatSubjectOfTheLetterIsNotPresent(String folderName, String userEmail, String password, String subject) {
    Session emailSession = Session.getDefaultInstance(gmailProperties())
    Store store = emailSession.getStore("imaps")
    store.connect("imap.googlemail.com", userEmail, password)
    Folder emailFolder = store.getFolder(folderName)
    emailFolder.open(Folder.READ_WRITE)
    def messages = emailFolder.getMessages()
    messages.reverse(true)
    sleep(8000)
    for (Message m in messages) {
    assert m.getSubject() != subject
    }
    emailFolder.close(true)
    store.close()
    return this
    }

    @Step
    static deleteLettersUnderEmailAccount(String userEmail, String password) {
    Session emailSession = Session.getDefaultInstance(gmailProperties())
    Store store = emailSession.getStore("imaps")
    store.connect("imap.googlemail.com", userEmail, password)
    Folder emailFolder = store.getFolder("Inbox")
    emailFolder.open(Folder.READ_WRITE)
    def messages = emailFolder.getMessages().reverse(true)
    for (Message m in messages) {
    m.setFlag(Flags.Flag.DELETED, true)
    }
    emailFolder.close(true)
    store.close()
    return this
    }

    @Step
    static deleteLettersUnderEmailAccount(String folderName, String userEmail, String password) {
    Session emailSession = Session.getDefaultInstance(gmailProperties())
    Store store = emailSession.getStore("imaps")
    store.connect("imap.googlemail.com", userEmail, password)
    Folder emailFolder = store.getFolder(folderName)
    emailFolder.open(Folder.READ_WRITE)
    def messages = emailFolder.getMessages().reverse(true)
    for (Message m in messages) {
    m.setFlag(Flags.Flag.DELETED, true)
    }
    emailFolder.close(true)
    store.close()
    return this
    }

    }