/** * 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.activemq.tool.properties; import junit.framework.TestCase; import java.util.Set; public class JmsProducerPropertiesTest extends TestCase { /** * Tests the correct parsing of message headers. * @See JmsProducerProperties.setHeader(String encodedHeader) * */ public void testMessageHeaders() { // first test correct header values String header = "a=b"; JmsProducerProperties props = new JmsProducerProperties(); props.setHeader(header); assertEquals(1, props.headerMap.size()); Set<String> keys = props.getHeaderKeys(); assertEquals(1, keys.size()); assertTrue(keys.contains("a")); assertEquals("b", props.getHeaderValue("a")); props.clearHeaders(); header = "a=b:c=d"; props.setHeader(header); assertEquals(2, props.headerMap.size()); keys = props.getHeaderKeys(); assertEquals(2, keys.size()); assertTrue(keys.contains("a")); assertTrue(keys.contains("c")); assertEquals("b", props.getHeaderValue("a")); assertEquals("d", props.getHeaderValue("c")); props.clearHeaders(); header = "a=b:c=d:e=f"; props.setHeader(header); assertEquals(3, props.headerMap.size()); keys = props.getHeaderKeys(); assertEquals(3, keys.size()); assertTrue(keys.contains("a")); assertTrue(keys.contains("c")); assertTrue(keys.contains("e")); assertEquals("b", props.getHeaderValue("a")); assertEquals("d", props.getHeaderValue("c")); assertEquals("f", props.getHeaderValue("e")); props.clearHeaders(); header = "a=b:c=d:e=f:"; props.setHeader(header); assertEquals(3, props.headerMap.size()); keys = props.getHeaderKeys(); assertEquals(3, keys.size()); assertTrue(keys.contains("a")); assertTrue(keys.contains("c")); assertTrue(keys.contains("e")); assertEquals("b", props.getHeaderValue("a")); assertEquals("d", props.getHeaderValue("c")); assertEquals("f", props.getHeaderValue("e")); props.clearHeaders(); // test incorrect header values header = "a:="; props.setHeader(header); assertEquals(0, props.headerMap.size()); props.clearHeaders(); header = "a:=b"; props.setHeader(header); assertEquals(0, props.headerMap.size()); props.clearHeaders(); header = "a=:"; props.setHeader(header); assertEquals(0, props.headerMap.size()); props.clearHeaders(); header = "a=b::"; props.setHeader(header); assertEquals(1, props.headerMap.size()); keys = props.getHeaderKeys(); assertEquals(1, keys.size()); assertTrue(keys.contains("a")); assertEquals("b", props.getHeaderValue("a")); props.clearHeaders(); header = "a=b:\":"; props.setHeader(header); assertEquals(1, props.headerMap.size()); keys = props.getHeaderKeys(); assertEquals(1, keys.size()); assertTrue(keys.contains("a")); assertEquals("b", props.getHeaderValue("a")); props.clearHeaders(); header = " : "; props.setHeader(header); assertEquals(0, props.headerMap.size()); props.clearHeaders(); } }