blob: 0f31be9324679eb8e6880c472783bf1f2403899b [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.camel.impl;
import junit.framework.TestCase;
import org.apache.camel.Message;
/**
* @version
*/
public class DefaultMessageHeaderTest extends TestCase {
public void testLookupCaseAgnostic() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("foo", "cheese");
assertEquals("cheese", msg.getHeader("foo"));
assertEquals("cheese", msg.getHeader("Foo"));
assertEquals("cheese", msg.getHeader("FOO"));
}
public void testLookupCaseAgnosticAddHeader() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("foo", "cheese");
assertEquals("cheese", msg.getHeader("foo"));
assertEquals("cheese", msg.getHeader("Foo"));
assertEquals("cheese", msg.getHeader("FOO"));
assertNull(msg.getHeader("unknown"));
msg.setHeader("bar", "beer");
assertEquals("beer", msg.getHeader("bar"));
assertEquals("beer", msg.getHeader("Bar"));
assertEquals("beer", msg.getHeader("BAR"));
assertNull(msg.getHeader("unknown"));
}
public void testLookupCaseAgnosticAddHeader2() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("foo", "cheese");
assertEquals("cheese", msg.getHeader("FOO"));
assertEquals("cheese", msg.getHeader("foo"));
assertEquals("cheese", msg.getHeader("Foo"));
assertNull(msg.getHeader("unknown"));
msg.setHeader("bar", "beer");
assertEquals("beer", msg.getHeader("BAR"));
assertEquals("beer", msg.getHeader("bar"));
assertEquals("beer", msg.getHeader("Bar"));
assertNull(msg.getHeader("unknown"));
}
public void testLookupCaseAgnosticAddHeaderRemoveHeader() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("foo", "cheese");
assertEquals("cheese", msg.getHeader("foo"));
assertEquals("cheese", msg.getHeader("Foo"));
assertEquals("cheese", msg.getHeader("FOO"));
assertNull(msg.getHeader("unknown"));
msg.setHeader("bar", "beer");
assertEquals("beer", msg.getHeader("bar"));
assertEquals("beer", msg.getHeader("Bar"));
assertEquals("beer", msg.getHeader("BAR"));
assertNull(msg.getHeader("unknown"));
msg.removeHeader("bar");
assertNull(msg.getHeader("bar"));
assertNull(msg.getHeader("unknown"));
}
public void testSetWithDifferentCase() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("foo", "cheese");
msg.setHeader("Foo", "bar");
assertEquals("bar", msg.getHeader("FOO"));
assertEquals("bar", msg.getHeader("foo"));
assertEquals("bar", msg.getHeader("Foo"));
}
public void testRemoveWithDifferentCase() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("foo", "cheese");
msg.setHeader("Foo", "bar");
assertEquals("bar", msg.getHeader("FOO"));
assertEquals("bar", msg.getHeader("foo"));
assertEquals("bar", msg.getHeader("Foo"));
msg.removeHeader("FOO");
assertEquals(null, msg.getHeader("foo"));
assertEquals(null, msg.getHeader("Foo"));
assertEquals(null, msg.getHeader("FOO"));
assertTrue(msg.getHeaders().isEmpty());
}
public void testRemoveHeaderWithNullArg() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("tick", "bla");
msg.setHeader("tack", "blaa");
msg.setHeader("tock", "blaaa");
assertEquals("bla", msg.getHeader("tick"));
assertEquals("blaa", msg.getHeader("tack"));
assertEquals("blaaa", msg.getHeader("tock"));
msg.removeHeader(null);
assertFalse(msg.getHeaders().isEmpty());
}
public void testRemoveHeaderWithNullValue() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("tick", null);
msg.removeHeader("tick");
assertTrue(msg.getHeaders().isEmpty());
}
public void testRemoveHeadersWithWildcard() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("tick", "bla");
msg.setHeader("tack", "blaa");
msg.setHeader("tock", "blaaa");
assertEquals("bla", msg.getHeader("tick"));
assertEquals("blaa", msg.getHeader("tack"));
assertEquals("blaaa", msg.getHeader("tock"));
msg.removeHeaders("t*");
assertTrue(msg.getHeaders().isEmpty());
}
public void testRemoveHeadersAllWithWildcard() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("tick", "bla");
msg.setHeader("tack", "blaa");
msg.setHeader("tock", "blaaa");
assertEquals("bla", msg.getHeader("tick"));
assertEquals("blaa", msg.getHeader("tack"));
assertEquals("blaaa", msg.getHeader("tock"));
msg.removeHeaders("*");
assertTrue(msg.getHeaders().isEmpty());
}
public void testRemoveHeadersWithExclude() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("tick", "bla");
msg.setHeader("tiack", "blaa");
msg.setHeader("tiock", "blaaa");
msg.setHeader("tiuck", "blaaaa");
msg.removeHeaders("ti*", "tiuck", "tiack");
assertEquals(2, msg.getHeaders().size());
assertEquals("blaa", msg.getHeader("tiack"));
assertEquals("blaaaa", msg.getHeader("tiuck"));
}
public void testRemoveHeadersAllWithExclude() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("tick", "bla");
msg.setHeader("tack", "blaa");
msg.setHeader("tock", "blaaa");
assertEquals("bla", msg.getHeader("tick"));
assertEquals("blaa", msg.getHeader("tack"));
assertEquals("blaaa", msg.getHeader("tock"));
msg.removeHeaders("*", "tick", "tock", "toe");
// new message headers
assertEquals("bla", msg.getHeader("tick"));
assertEquals(null, msg.getHeader("tack"));
assertEquals("blaaa", msg.getHeader("tock"));
}
public void testRemoveHeadersWithWildcardInExclude() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("tick", "bla");
msg.setHeader("tack", "blaa");
msg.setHeader("taick", "blaa");
msg.setHeader("tock", "blaaa");
msg.removeHeaders("*", "ta*");
assertEquals(2, msg.getHeaders().size());
assertEquals("blaa", msg.getHeader("tack"));
assertEquals("blaa", msg.getHeader("taick"));
}
public void testRemoveHeadersWithNulls() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("tick", "bla");
msg.setHeader("tack", "blaa");
msg.setHeader("tock", "blaaa");
msg.setHeader("taack", "blaaaa");
assertEquals("bla", msg.getHeader("tick"));
assertEquals("blaa", msg.getHeader("tack"));
assertEquals("blaaa", msg.getHeader("tock"));
assertEquals("blaaaa", msg.getHeader("taack"));
msg.removeHeaders(null, null, null, null);
assertFalse(msg.getHeaders().isEmpty());
}
public void testRemoveHeadersWithNonExcludeHeaders() {
Message msg = new DefaultMessage();
assertNull(msg.getHeader("foo"));
msg.setHeader("tick", "bla");
msg.setHeader("tack", "blaa");
msg.setHeader("tock", "blaaa");
msg.removeHeaders("*", "camels", "are", "fun");
assertTrue(msg.getHeaders().isEmpty());
}
public void testWithDefaults() {
DefaultMessage msg = new DefaultMessage();
// must have exchange so to leverage the type converters
msg.setExchange(new DefaultExchange(new DefaultCamelContext()));
assertNull(msg.getHeader("foo"));
msg.setHeader("foo", "cheese");
assertEquals("cheese", msg.getHeader("foo"));
assertEquals("cheese", msg.getHeader("foo", "foo"));
assertEquals("cheese", msg.getHeader("foo", "foo", String.class));
assertEquals(null, msg.getHeader("beer"));
assertEquals("foo", msg.getHeader("beer", "foo"));
assertEquals(Integer.valueOf(123), msg.getHeader("beer", "123", Integer.class));
}
}