/******************************************************************************* * Copyright (c) 2012-2016 Codenvy, S.A. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * <p/> * Contributors: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.everrest.core.impl.method; import com.tngtech.java.junit.dataprovider.DataProvider; import com.tngtech.java.junit.dataprovider.DataProviderRunner; import com.tngtech.java.junit.dataprovider.UseDataProvider; import org.everrest.core.impl.MultivaluedMapImpl; import org.junit.Test; import org.junit.runner.RunWith; import javax.ws.rs.core.MultivaluedMap; import static org.junit.Assert.assertEquals; @RunWith(DataProviderRunner.class) public class PrimitiveTypeProducerTest { @DataProvider public static Object[][] testData() { return new Object[][]{ {Boolean.TYPE, singletonMultiValuedMap("true", "false"), null, true}, {Boolean.TYPE, singletonMultiValuedMap("foo", "false"), null, false}, {Boolean.TYPE, singletonMultiValuedMap("true"), null, true}, {Boolean.TYPE, singletonMultiValuedMap(), "true", true}, {Boolean.TYPE, singletonMultiValuedMap(), null, false}, {Byte.TYPE, singletonMultiValuedMap("55", "33"), null, (byte)55}, {Byte.TYPE, singletonMultiValuedMap("33"), null, (byte)33}, {Byte.TYPE, singletonMultiValuedMap(), "55", (byte)55}, {Byte.TYPE, singletonMultiValuedMap(), null, (byte)0}, {Short.TYPE, singletonMultiValuedMap("555", "333"), null, (short)555}, {Short.TYPE, singletonMultiValuedMap("333"), null, (short)333}, {Short.TYPE, singletonMultiValuedMap(), "555", (short)555}, {Short.TYPE, singletonMultiValuedMap(), null, (short)0}, {Integer.TYPE, singletonMultiValuedMap("55555", "33333"), null, 55555}, {Integer.TYPE, singletonMultiValuedMap("33333"), null, 33333}, {Integer.TYPE, singletonMultiValuedMap(), "55555", 55555}, {Integer.TYPE, singletonMultiValuedMap(), null, 0}, {Long.TYPE, singletonMultiValuedMap("55555555555", "33333333333"), null, 55555555555L}, {Long.TYPE, singletonMultiValuedMap("33333333333"), null, 33333333333L}, {Long.TYPE, singletonMultiValuedMap(), "33333333333", 33333333333L}, {Long.TYPE, singletonMultiValuedMap(), null, 0L}, {Float.TYPE, singletonMultiValuedMap("5.5", "3.3"), null, 5.5F}, {Float.TYPE, singletonMultiValuedMap("3.3"), null, 3.3F}, {Float.TYPE, singletonMultiValuedMap(), "5.5", 5.5F}, {Float.TYPE, singletonMultiValuedMap(), null, 0.0F}, {Double.TYPE, singletonMultiValuedMap("5.5", "3.3"), null, 5.5D}, {Double.TYPE, singletonMultiValuedMap("3.3"), null, 3.3D}, {Double.TYPE, singletonMultiValuedMap(), "5.5", 5.5D}, {Double.TYPE, singletonMultiValuedMap(), null, 0.0D} }; } @UseDataProvider("testData") @Test public void createsPrimitiveValue(Class<?> primitiveTypeWrapper, MultivaluedMap<String, String> values, String defaultValue, Object expected) throws Exception { PrimitiveTypeProducer producer = new PrimitiveTypeProducer(primitiveTypeWrapper); Object result = producer.createValue("value", values, defaultValue); assertEquals(expected, result); } private static MultivaluedMap<String, String> singletonMultiValuedMap(String... values) { MultivaluedMap<String, String> map = new MultivaluedMapImpl(); map.addAll("value", values); return map; } }