blob: 0f0095b738cbe59d2f7919d634b5e8a96d3f7421 [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.activemq.util;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Properties;
import junit.framework.TestCase;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTopic;
public class ReflectionSupportTest extends TestCase {
List<ActiveMQDestination> favorites = new ArrayList<ActiveMQDestination>();
String favoritesString = "[queue://test, topic://test]";
List<ActiveMQDestination> nonFavorites = new ArrayList<ActiveMQDestination>();
String nonFavoritesString = "[topic://test1]";
public void setUp() {
favorites.add(new ActiveMQQueue("test"));
favorites.add(new ActiveMQTopic("test"));
nonFavorites.add(new ActiveMQTopic("test1"));
}
public void testSetProperties() throws URISyntaxException {
SimplePojo pojo = new SimplePojo();
HashMap<String, String> map = new HashMap<String, String>();
map.put("age", "27");
map.put("name", "Hiram");
map.put("enabled", "true");
map.put("uri", "test://value");
map.put("favorites", favoritesString);
map.put("nonFavorites", nonFavoritesString);
map.put("others", null);
IntrospectionSupport.setProperties(pojo, map);
assertEquals(27, pojo.getAge());
assertEquals("Hiram", pojo.getName());
assertEquals(true, pojo.isEnabled());
assertEquals(new URI("test://value"), pojo.getUri());
assertEquals(favorites, pojo.getFavorites());
assertEquals(nonFavorites, pojo.getNonFavorites());
assertNull(pojo.getOthers());
}
public void testGetProperties() {
SimplePojo pojo = new SimplePojo();
pojo.setAge(31);
pojo.setName("Dejan");
pojo.setEnabled(true);
pojo.setFavorites(favorites);
pojo.setNonFavorites(nonFavorites);
pojo.setOthers(null);
Properties props = new Properties();
IntrospectionSupport.getProperties(pojo, props, null);
assertEquals("Dejan", props.get("name"));
assertEquals("31", props.get("age"));
assertEquals("True", props.get("enabled"));
assertEquals(favoritesString, props.get("favorites"));
assertEquals(nonFavoritesString, props.get("nonFavorites"));
assertNull(props.get("others"));
}
public void testSetBoolean() {
TestWitBoolean target = new TestWitBoolean();
assertTrue(!target.getKeepAlive());
IntrospectionSupport.setProperty(target, "keepAlive", "TRUE");
assertTrue(target.getKeepAlive());
IntrospectionSupport.setProperty(target, "keepAlive", "false");
assertTrue(!target.getKeepAlive());
}
public static class TestWitBoolean {
private Boolean keepAlive = new Boolean(false);
public Boolean getKeepAlive() {
return keepAlive;
}
public void setKeepAlive(Boolean keepAlive) {
this.keepAlive = keepAlive;
}
}
}