/** * The contents of this file are subject to the OpenMRS Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://license.openmrs.org * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * * Copyright (C) OpenMRS, LLC. All Rights Reserved. */ package org.openmrs.notification; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Test; import org.openmrs.test.Verifies; /** * Unit testing for the Message class */ public class MessageTest { /** * Convenience method to create a reusable/retestable message object with an attachment. * * @return a testable {@link Message} object */ private Message createTestMessage1() { int id = 1; String recipients = "recipient1@example.com,recipient2@example.com"; String sender = "foo@bar.com"; String subject = "tres important"; String content = "message"; String attachment = "attachment"; String attachmentContentType = "text/plain"; String attachmentFileName = "moo.txt"; return new Message(id, recipients, sender, subject, content, attachment, attachmentContentType, attachmentFileName); } /** * Convenience method to create a reusable/retestable message object with only the basic * to/form/subject/content filled in. * * @return a testable {@link Message} object */ private Message createTestMessage2() { int id = 1; String recipients = "recipient1@example.com"; String sender = "foo@bar.com"; String subject = "moo"; String content = "message"; return new Message(id, recipients, sender, subject, content); } /** * @see {@link Message#Message(Integer,String,String,String,String,String,String,String)} */ @Test @Verifies(value = "should fill in all parameters", method = "Message(Integer,String,String,String,String,String,String,String)") public void Message_shouldFillInAllParameters() throws Exception { int id = 1; String recipients = "recipient1@example.com,recipient2@example.com"; String sender = "foo@bar.com"; String subject = "tres important"; String content = "message"; String attachment = "attachment"; String attachmentContentType = "text/plain"; String attachmentFileName = "moo.txt"; Message toTest = new Message(id, recipients, sender, subject, content, attachment, attachmentContentType, attachmentFileName); assertEquals((int) toTest.getId(), 1); assertEquals(recipients, toTest.getRecipients()); assertEquals(sender, toTest.getSender()); assertEquals(subject, toTest.getSubject()); assertEquals(content, toTest.getContent()); } /** * @see {@link Message#setRecipients(String)} */ @Test @Verifies(value = "should set multiple recipients", method = "setRecipients(String)") public void setRecipients_shouldSetMultipleRecipients() throws Exception { Message testMessage = createTestMessage1(); String recipients = "recipient1@example.com,recipient2@example.com"; testMessage.setRecipients(recipients); assertEquals(testMessage.getRecipients(), recipients); } /** * @see {@link Message#addRecipient(String)} */ @Test @Verifies(value = "should add new recipient", method = "addRecipient(String)") public void addRecipient_shouldAddNewRecipient() throws Exception { Message testMessage = createTestMessage1(); String oldRecipients = testMessage.getRecipients(); String newRecipient = "bob@example.com"; testMessage.addRecipient(newRecipient); assertEquals(testMessage.getRecipients(), oldRecipients + "," + newRecipient); } /** * @see {@link Message#hasAttachment()} */ @Test @Verifies(value = "should r return true if this message has an attachment", method = "hasAttachment()") public void hasAttachment_shouldRReturnTrueIfThisMessageHasAnAttachment() throws Exception { Message testMessage1 = createTestMessage1(); Message testMessage2 = createTestMessage2(); assertTrue(testMessage1.hasAttachment()); assertFalse(testMessage2.hasAttachment()); } }