/* * 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.axis2.jaxws.misc; import junit.framework.TestCase; import org.apache.axis2.jaxws.utility.ConvertUtils; import javax.xml.ws.WebServiceException; import java.util.ArrayList; /** * Unit Test for the ConvertUtils utility */ public class ConvertUtilsTest extends TestCase { public void testByteArraytobyteArray() throws Exception { Byte[] input = new Byte[3]; input[0] = new Byte((byte) 0); input[1] = new Byte((byte) 1); input[2] = new Byte((byte) 2); byte[] output = new byte[3]; if (ConvertUtils.isConvertable(input, output.getClass())) { output = (byte[]) ConvertUtils.convert(input, output.getClass()); } assertTrue(output.length == 3); assertTrue(output[0] == (byte) 0); assertTrue(output[1] == (byte) 1); assertTrue(output[2] == (byte) 2); } public void testBListtoBArray() throws Exception { ArrayList<B> input = new ArrayList<B>(); B b = new B(); b.setData(0); input.add(b); b = new B(); b.setData(1); input.add(b); b = new B(); b.setData(2); input.add(b); B[] output = new B[0]; if (ConvertUtils.isConvertable(input, output.getClass())) { output = (B[]) ConvertUtils.convert(input, output.getClass()); } assertTrue(output.length == 3); assertTrue(output[0].getData() == 0); assertTrue(output[1].getData() == 1); assertTrue(output[2].getData() == 2); } public void testBArraytoBList() throws Exception { B[] input = new B[3]; input[0] = new B(); input[0].setData(0); input[1] = new B(); input[1].setData(1); input[2] = new B(); input[2].setData(2); ArrayList<B> output = new ArrayList<B>(); if (ConvertUtils.isConvertable(input, output.getClass())) { output = (ArrayList<B>) ConvertUtils.convert(input, output.getClass()); } assertTrue(output.size() == 3); assertTrue(output.get(0).getData() == 0); assertTrue(output.get(1).getData() == 1); assertTrue(output.get(2).getData() == 2); } /** * Negative test...can't convert List of B into C[] * @throws Exception */ public void testBListtoCArray() throws Exception { ArrayList<B> input = new ArrayList<B>(); B b = new B(); b.setData(0); input.add(b); b = new B(); b.setData(1); input.add(b); b = new B(); b.setData(2); input.add(b); C[] output = new C[0]; boolean success = false; try { output = (C[]) ConvertUtils.convert(input, output.getClass()); } catch (WebServiceException e) { assertTrue(e.getMessage().contains("Cannot convert")); success = true; } assertTrue(success); } class B { private int data = 0; public int getData() { return data; } public void setData(int data) { this.data = data; } } class C { private int data = 0; public int getData() { return data; } public void setData(int data) { this.data = data; } } }