/* * JBoss, Home of Professional Open Source * Copyright 2011 Red Hat Inc. and/or its affiliates and other contributors * as indicated by the @authors tag. All rights reserved. * See the copyright.txt in the distribution for a * full listing of individual contributors. * * Licensed 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.jboss.arquillian.container.impl; import java.util.HashMap; import junit.framework.Assert; import org.jboss.arquillian.config.descriptor.api.Multiline; import org.junit.Test; /** * MapObjectTestCase * * @author <a href="mailto:aslak@redhat.com">Aslak Knutsen</a> * @version $Revision: $ */ public class MapObjectTestCase { private static final String VAL_STRING = "test123"; private static final String VAL_MULTILINE_STRING = "\n\n\n\n\r\n\t\t\ttest123 \r\n\t\t\t\ttest123" + System.getProperty("line.separator"); private static final Integer VAL_INTEGER = 123; private static final Boolean VAL_BOOLEAN = true; private static final Double VAL_DOUBLE = 3.4; @Test public void shouldBeAbleToSetString() throws Exception { TestObject test = new TestObject(); MapObject.populate(test, map("s", VAL_STRING)); Assert.assertEquals(VAL_STRING, test.s); } @Test public void shouldBeAbleToSetInteger() throws Exception { TestObject test = new TestObject(); MapObject.populate(test, map("i", VAL_INTEGER)); Assert.assertEquals(VAL_INTEGER, test.i); } @Test public void shouldBeAbleToSetDouble() throws Exception { TestObject test = new TestObject(); MapObject.populate(test, map("d", VAL_DOUBLE)); Assert.assertEquals(VAL_DOUBLE, test.d); } @Test public void shouldBeAbleToSetBoolean() throws Exception { TestObject test = new TestObject(); MapObject.populate(test, map("b", VAL_BOOLEAN)); Assert.assertEquals(VAL_BOOLEAN, test.b); } @Test // log.warning is produced, Manual test? public void shouldNotFailOnUnusedOptions() throws Exception { TestObject test = new TestObject(); MapObject.populate(test, map("a", VAL_BOOLEAN)); } @Test public void shouldKeepMultiline() throws Exception { TestObject test = new TestObject(); MapObject.populate(test, map("m", VAL_MULTILINE_STRING)); Assert.assertEquals(VAL_MULTILINE_STRING, test.m); } @Test public void shouldTrimIfNotAnnotatedWithMultiline() throws Exception { TestObject test = new TestObject(); MapObject.populate(test, map("s", VAL_MULTILINE_STRING)); Assert.assertEquals(VAL_STRING + " " + VAL_STRING, test.s); } private ChainedMap map(String name, Object value) { return new ChainedMap().map(name, value); } public static class TestObject { private String s; private Integer i; private Double d; private Boolean b; private String m; public void setS(String s) { this.s = s; } public void setI(Integer i) { this.i = i; } public void setD(Double d) { this.d = d; } public void setB(Boolean b) { this.b = b; } @Multiline public void setM(String m) { this.m = m; } } private class ChainedMap extends HashMap<String, String> { private static final long serialVersionUID = 8237042898515778650L; public ChainedMap map(String name, Object value) { put(name, String.valueOf(value)); return this; } } }