001: /*
002: * BEGIN_HEADER - DO NOT EDIT
003: *
004: * The contents of this file are subject to the terms
005: * of the Common Development and Distribution License
006: * (the "License"). You may not use this file except
007: * in compliance with the License.
008: *
009: * You can obtain a copy of the license at
010: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
011: * See the License for the specific language governing
012: * permissions and limitations under the License.
013: *
014: * When distributing Covered Code, include this CDDL
015: * HEADER in each file and include the License file at
016: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
017: * If applicable add the following below this CDDL HEADER,
018: * with the fields enclosed by brackets "[]" replaced with
019: * your own identifying information: Portions Copyright
020: * [year] [name of copyright owner]
021: */
022:
023: /*
024: * @(#)TestMessageImpl.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package com.sun.jbi.messaging;
030:
031: import java.util.Set;
032: import javax.activation.DataHandler;
033: import javax.security.auth.Subject;
034: import javax.xml.transform.stream.StreamSource;
035: import javax.xml.transform.sax.SAXSource;
036: import javax.xml.transform.dom.DOMSource;
037:
038: /**
039: * Tests for the MessageImpl class
040: *
041: * @author Sun Microsystems, Inc.
042: */
043: public class TestMessageImpl extends junit.framework.TestCase {
044: /** Path to endpoint descriptor. */
045: public static final String XML_CONTENT_PATH = System
046: .getProperty("junit.srcroot")
047: + "/nms/regress/payload.xml";
048:
049: public static final String ATTACH_CONTENT = "my attachment content";
050:
051: /** Test instance message */
052: private MessageImpl mMessage;
053:
054: /**
055: * The constructor for this testcase, forwards the test name to
056: * the jUnit TestCase base class.
057: * @param aTestName String with the name of this test.
058: */
059: public TestMessageImpl(String aTestName) {
060: super (aTestName);
061: }
062:
063: /**
064: * Setup for the test. This creates the ComponentRegistry instance
065: * and other objects needed for the tests.
066: * @throws Exception when set up fails for any reason.
067: */
068: public void setUp() throws Exception {
069: super .setUp();
070:
071: mMessage = new MessageImpl();
072: }
073:
074: /**
075: * Cleanup for the test.
076: * @throws Exception when tearDown fails for any reason.
077: */
078: public void tearDown() throws Exception {
079: super .tearDown();
080:
081: }
082:
083: // ============================= test methods ================================
084:
085: /**
086: * testGetSetContent
087: * @throws Exception if an unexpected error occurs
088: */
089: public void testGetSetContent() throws Exception {
090: /* Test get/set for all content types */
091: mMessage.setContent(new StreamSource());
092: assertTrue(mMessage.getContent() instanceof StreamSource);
093:
094: mMessage.setContent(new SAXSource());
095: assertTrue(mMessage.getContent() instanceof SAXSource);
096:
097: mMessage.setContent(new DOMSource());
098: assertTrue(mMessage.getContent() instanceof DOMSource);
099:
100: /* Setting null is allowed right now. This test should start failing
101: */
102: mMessage.setContent(null);
103: }
104:
105: /**
106: * testGetSetProperty
107: * @throws Exception if an unexpected error occurs
108: */
109: public void testGetSetProperty() throws Exception {
110: final String PROP_KEY_1 = "foo";
111: final String PROP_VAL_1 = "fooval";
112: final String PROP_VAL_2 = "barval";
113:
114: mMessage.setProperty(PROP_KEY_1, PROP_VAL_1);
115: assertEquals(mMessage.getProperty(PROP_KEY_1), PROP_VAL_1);
116:
117: mMessage.setProperty(PROP_KEY_1, PROP_VAL_2);
118: assertEquals(mMessage.getProperty(PROP_KEY_1), PROP_VAL_2);
119: }
120:
121: /**
122: * testGetSetKnownProperties
123: * @throws Exception if an unexpected error occurs
124: */
125: public void testGetSetKnownProperties() throws Exception {
126: Subject PROP_VAL_1 = new Subject();
127: Subject PROP_VAL_2 = new Subject();
128:
129: mMessage.setProperty("javax.jbi.security.subject", PROP_VAL_1);
130: assertEquals(mMessage.getSecuritySubject(), PROP_VAL_1);
131:
132: mMessage.setSecuritySubject(PROP_VAL_2);
133: assertEquals(
134: mMessage.getProperty("javax.jbi.security.subject"),
135: PROP_VAL_2);
136: }
137:
138: /**
139: * testAddAtachment
140: * @throws Exception if an unexpected error occurs
141: */
142: public void testAddAtachment() throws Exception {
143: final String ID = "add";
144:
145: mMessage.addAttachment(ID, createTextAttachment());
146:
147: // check content equality against original object
148: assertEquals(mMessage.getAttachment(ID).getContent(),
149: ATTACH_CONTENT);
150: }
151:
152: /**
153: * testRemoveAtachment
154: * @throws Exception if an unexpected error occurs
155: */
156: public void testRemoveAtachment() throws Exception {
157: final String ID = "remove";
158:
159: mMessage.addAttachment(ID, createTextAttachment());
160: mMessage.removeAttachment(ID);
161:
162: // check content equality against original object
163: assertTrue(mMessage.getAttachment(ID) == null);
164: }
165:
166: /**
167: * testListAttachments
168: * @throws Exception if an unexpected error occurs
169: */
170: public void testListAttachments() throws Exception {
171: final String ID_1 = "list1";
172: final String ID_2 = "list2";
173:
174: int count = 0;
175: Set list;
176:
177: mMessage.addAttachment(ID_1, createTextAttachment());
178: mMessage.addAttachment(ID_2, createTextAttachment());
179:
180: list = mMessage.getAttachmentNames();
181:
182: assertTrue(list.size() == 2);
183: }
184:
185: /** Creates a simple text attachment. */
186: DataHandler createTextAttachment() {
187: return new DataHandler(ATTACH_CONTENT, "text/plain");
188: }
189: }
|