PolicyNotificationMail { public void sendMail(PolicyVersion entityItem, String policyName, String mode, CommonClassDao policyNotificationDao) { String subject = ""; String message = ""; DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = new Date(); if ("EditPolicy".equalsIgnoreCase(mode)) { subject = "Policy has been Updated : " + entityItem.getPolicyName(); message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Updated" + '\n' + '\n' + '\n' + SCOPE_POLICY_NAME + policyName + '\n' + ACTIVE_VERSION + entityItem.getActiveVersion() + '\n' + '\n' + "Modified By : " + entityItem.getModifiedBy() + '\n' + "Modified Time : " + dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT; } if ("Rename".equalsIgnoreCase(mode)) { subject = "Policy has been Renamed : " + entityItem.getPolicyName(); message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Renamed" + '\n' + '\n' + '\n' + SCOPE_POLICY_NAME + policyName + '\n' + ACTIVE_VERSION + entityItem.getActiveVersion() + '\n' + '\n' + "Renamed By : " + entityItem.getModifiedBy() + '\n' + "Renamed Time : " + dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT; } if ("DeleteAll".equalsIgnoreCase(mode)) { subject = "Policy has been Deleted : " + entityItem.getPolicyName(); message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Deleted with All Versions" + '\n' + '\n' + '\n' + SCOPE_POLICY_NAME + policyName + '\n' + '\n' + '\n' + DELETED_BY + entityItem.getModifiedBy() + '\n' + DELETED_TIME + dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT; } if ("DeleteOne".equalsIgnoreCase(mode)) { subject = "Policy has been Deleted : " + entityItem.getPolicyName(); message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Deleted" + '\n' + '\n' + '\n' + SCOPE_POLICY_NAME + policyName + '\n' + "Policy Version : " + entityItem.getActiveVersion() + '\n' + '\n' + DELETED_BY + entityItem.getModifiedBy() + '\n' + DELETED_TIME + dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT; } if ("DeleteScope".equalsIgnoreCase(mode)) { subject = "Scope has been Deleted : " + entityItem.getPolicyName(); message = "The Scope Which you are watching in " + PolicyController.getSmtpApplicationName() + " has been Deleted" + '\n' + '\n' + '\n' + "Scope + Scope Name : " + policyName + '\n' + '\n' + '\n' + DELETED_BY + entityItem.getModifiedBy() + '\n' + DELETED_TIME + dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT; } if ("SwitchVersion".equalsIgnoreCase(mode)) { subject = "Policy has been SwitchedVersion : " + entityItem.getPolicyName(); message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been SwitchedVersion" + '\n' + '\n' + '\n' + SCOPE_POLICY_NAME + policyName + '\n' + ACTIVE_VERSION + entityItem.getActiveVersion() + '\n' + '\n' + "Switched By : " + entityItem.getModifiedBy() + '\n' + "Switched Time : " + dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT; } if ("Move".equalsIgnoreCase(mode)) { subject = "Policy has been Moved to Other Scope : " + entityItem.getPolicyName(); message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Moved to Other Scope" + '\n' + '\n' + '\n' + SCOPE_POLICY_NAME + policyName + '\n' + ACTIVE_VERSION + entityItem.getActiveVersion() + '\n' + '\n' + "Moved By : " + entityItem.getModifiedBy() + '\n' + "Moved Time : " + dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT; } String checkPolicyName = findCheckPolicyName(policyName); String policyFileName = findPolicyFileName(entityItem); String query = "from WatchPolicyNotificationTable where policyName like:policyFileName"; List<Object> watchList = findWatchList(policyNotificationDao, policyFileName, query); if (!watchList.isEmpty()) { composeAndSendMail(mode, policyNotificationDao, subject, message, checkPolicyName, watchList); } }  @Bean JavaMailSenderImpl javaMailSenderImpl(); void sendMail(PolicyVersion entityItem, String policyName, String mode,
            CommonClassDao policyNotificationDao);  }
@Test public final void testSendMail() { PolicyNotificationMail notificationMail = new PolicyNotificationMail(); try { notificationMail.sendMail(version, policyName, "EditPolicy", commonClassDao); notificationMail.sendMail(version, policyName, "Rename", commonClassDao); notificationMail.sendMail(version, policyName, "DeleteAll", commonClassDao); notificationMail.sendMail(version, policyName, "DeleteOne", commonClassDao); notificationMail.sendMail(version, policyName, "DeleteScope", commonClassDao); notificationMail.sendMail(version, policyName, "SwitchVersion", commonClassDao); notificationMail.sendMail(version, policyName, "Move", commonClassDao); } catch (Exception e) { fail(); } }