protected void checkStoreForTestConnection(final Store store) {
    if (!store.isConnected()) {
      IMAPUtils.close(store);
      throw new RuntimeException("Store not connected");
    }

    if (!store.getURLName().getUsername().toLowerCase().startsWith("es_imapriver_unittest")) {
      IMAPUtils.close(store);
      throw new RuntimeException(
          "User "
              + store.getURLName().getUsername()
              + " belongs not to a valid test mail connection");
    }
  }
  protected void createInitialIMAPTestdata(
      final Properties props,
      final String user,
      final String password,
      final int count,
      final boolean deleteall)
      throws MessagingException {
    final Session session = Session.getInstance(props);
    final Store store = session.getStore();
    store.connect(user, password);
    checkStoreForTestConnection(store);
    final Folder root = store.getDefaultFolder();
    final Folder testroot = root.getFolder("ES-IMAP-RIVER-TESTS");
    final Folder testrootl2 = testroot.getFolder("Level(2!");

    if (deleteall) {

      deleteMailsFromUserMailbox(props, "INBOX", 0, -1, user, password);

      if (testroot.exists()) {
        testroot.delete(true);
      }

      final Folder testrootenamed = root.getFolder("renamed_from_ES-IMAP-RIVER-TESTS");
      if (testrootenamed.exists()) {
        testrootenamed.delete(true);
      }
    }

    if (!testroot.exists()) {

      testroot.create(Folder.HOLDS_FOLDERS & Folder.HOLDS_MESSAGES);
      testroot.open(Folder.READ_WRITE);

      testrootl2.create(Folder.HOLDS_FOLDERS & Folder.HOLDS_MESSAGES);
      testrootl2.open(Folder.READ_WRITE);
    }

    final Folder inbox = root.getFolder("INBOX");
    inbox.open(Folder.READ_WRITE);

    final Message[] msgs = new Message[count];

    for (int i = 0; i < count; i++) {
      final MimeMessage message = new MimeMessage(session);
      message.setFrom(new InternetAddress(EMAIL_TO));
      message.addRecipient(Message.RecipientType.TO, new InternetAddress(EMAIL_USER_ADDRESS));
      message.setSubject(EMAIL_SUBJECT + "::" + i);
      message.setText(EMAIL_TEXT + "::" + SID++);
      message.setSentDate(new Date());
      msgs[i] = message;
    }

    inbox.appendMessages(msgs);
    testroot.appendMessages(msgs);
    testrootl2.appendMessages(msgs);

    IMAPUtils.close(inbox);
    IMAPUtils.close(testrootl2);
    IMAPUtils.close(testroot);
    IMAPUtils.close(store);
  }