package org.jacorb.test.orb; /* * JacORB - a free Java ORB * * Copyright (C) 1997-2014 Gerald Brose / The JacORB Team. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import org.jacorb.test.ArrayServer; import org.jacorb.test.ArrayServerHelper; import org.jacorb.test.any_sequenceHolder; import org.jacorb.test.boolean_sequenceHolder; import org.jacorb.test.char_sequenceHolder; import org.jacorb.test.color_enum; import org.jacorb.test.long_sequenceHolder; import org.jacorb.test.harness.ClientServerSetup; import org.jacorb.test.harness.ClientServerTestCase; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.omg.CORBA.Any; /** * Tests array/sequence parameters. For the time being, only those types * of sequences are covered that are not already covered by other tests. * * @author Andre Spiegel spiegel@gnu.org */ public class ArrayTest extends ClientServerTestCase { private ArrayServer server; @Before public void setUp() throws Exception { server = ArrayServerHelper.narrow (setup.getServerObject()); } @BeforeClass public static void beforeClassSetUp() throws Exception { setup = new ClientServerSetup("org.jacorb.test.orb.ArrayServerImpl" ); } @Test public void test_reduce_boolean_sequence() { boolean[] a = new boolean[] { true, false, true, true }; boolean result = server.reduce_boolean_sequence(a); assertEquals (true, result); } @Test public void test_reduce_empty_boolean_sequence() { boolean[] a = new boolean[] { }; boolean result = server.reduce_boolean_sequence(a); assertEquals (false, result); } @Test public void test_sum_octet_sequence() { byte[] a = new byte[] { 1, 2, 3, 4, 5 }; int result = server.sum_octet_sequence (a); assertEquals (15, result); } @Test public void test_sum_empty_octet_sequence() { byte[] a = new byte[] { }; int result = server.sum_octet_sequence (a); assertEquals (0, result); } @Test public void test_sum_short_sequence() { short[] a = new short[] { 1, 2, 3, 4, 5 }; int result = server.sum_short_sequence (a); assertEquals (15, result); } @Test public void test_sum_empty_short_sequence() { short[] a = new short[] { }; int result = server.sum_short_sequence (a); assertEquals (0, result); } @Test public void test_sum_ushort_sequence() { short[] a = new short[] { 1, 2, 3, 4, 5 }; int result = server.sum_ushort_sequence (a); assertEquals (15, result); } @Test public void test_sum_empty_ushort_sequence() { short[] a = new short[] { }; int result = server.sum_ushort_sequence (a); assertEquals (0, result); } @Test public void test_sum_long_sequence() { int[] a = new int[] { 1, 2, 3, 4, 5 }; int result = server.sum_long_sequence (a); assertEquals (15, result); } @Test public void test_sum_empty_long_sequence() { int[] a = new int[] { }; int result = server.sum_long_sequence (a); assertEquals (0, result); } @Test public void test_sum_ulong_sequence() { int[] a = new int[] { 1, 2, 3, 4, 5 }; int result = server.sum_ulong_sequence (a); assertEquals (15, result); } @Test public void test_sum_empty_ulong_sequence() { int[] a = new int[] { }; int result = server.sum_ulong_sequence (a); assertEquals (0, result); } @Test public void test_sum_ulonglong_sequence() { long[] a = new long[] { 1, 2, 3, 4, 5 }; int result = server.sum_ulonglong_sequence (a); assertEquals (15, result); } @Test public void test_sum_empty_ulonglong_sequence() { long[] a = new long[] { }; int result = server.sum_ulonglong_sequence (a); assertEquals (0, result); } @Test public void test_sum_float_sequence() { float[] a = new float[] { 1.0F, 2.0F, 3.0F, 4.0F, 5.0F }; float result = server.sum_float_sequence (a); assertEquals (15.0F, result, 0.0001F); } @Test public void test_sum_empty_float_sequence() { float[] a = new float[] { }; float result = server.sum_float_sequence (a); assertEquals (0.0F, result, 0.0001F); } @Test public void test_sum_double_sequence() { double[] a = new double[] { 1.0F, 2.0F, 3.0F, 4.0F, 5.0F }; double result = server.sum_double_sequence (a); assertEquals (15.0, result, 0.0001); } @Test public void test_sum_empty_double_sequence() { double[] a = new double[] { }; double result = server.sum_double_sequence (a); assertEquals (0.0, result, 0.0001); } @Test public void test_reduce_enum_sequence() { color_enum[] a = new color_enum[] { color_enum.color_red, color_enum.color_green, color_enum.color_blue }; int result = server.reduce_enum_sequence (a); assertEquals (3, result); } @Test public void test_reduce_empty_enum_sequence() { color_enum[] a = new color_enum[] { }; int result = server.reduce_enum_sequence (a); assertEquals (0, result); } @Test public void test_reduce_char_sequence() { char[] a = new char[] { 'a', 'b', 'c' }; int result = server.reduce_char_sequence (a); assertEquals (3, result); } @Test public void test_illegal_char_sequence() { char[] a = new char[] { 'a', CharTest.EURO_SIGN, 'c' }; try { server.reduce_char_sequence (a); fail(); } catch (org.omg.CORBA.DATA_CONVERSION ex) { // ok } } @Test public void test_reduce_empty_char_sequence() { char[] a = new char[] { }; int result = server.reduce_char_sequence (a); assertEquals (0, result); } @Test public void test_return_illegal_char_sequence() { char_sequenceHolder c = new char_sequenceHolder(); try { server.return_illegal_char_sequence(c); fail(); } catch (org.omg.CORBA.DATA_CONVERSION ex) { // ok } } @Test public void test_reduce_wchar_sequence() { char[] a = new char[] { 'a', CharTest.EURO_SIGN, 'c' }; int result = server.reduce_wchar_sequence (a); assertEquals (3, result); } @Test public void test_reduce_empty_wchar_sequence() { char[] a = new char[] { }; int result = server.reduce_wchar_sequence (a); assertEquals (0, result); } @Test public void test_reduce_any_sequence() { Any a1 = setup.getClientOrb().create_any(); a1.insert_long(1); Any a2 = setup.getClientOrb().create_any(); a2.insert_long(2); Any a3 = setup.getClientOrb().create_any(); a3.insert_long(3); Any[] a = new Any[] { a1, a2, a3 }; int result = server.reduce_any_sequence(a); assertEquals (3, result); } @Test public void test_reduce_empty_any_sequence() { Any[] a = new Any[] { }; int result = server.reduce_any_sequence(a); assertEquals (0, result); } @Test public void test_bounce_boolean_sequence() { boolean[] a = new boolean[] { true, false, true, true }; boolean_sequenceHolder b = new boolean_sequenceHolder(); server.bounce_boolean_sequence (a, b); assertTrue (java.util.Arrays.equals(a, b.value)); } @Test public void test_bounce_long_sequence() { int[] a = new int[] { 1, 2, 3, 4, 5 }; long_sequenceHolder b = new long_sequenceHolder(); server.bounce_long_sequence (a, b); assertTrue (java.util.Arrays.equals(a, b.value)); } @Test public void test_bounce_any_sequence() { Any a1 = setup.getClientOrb().create_any(); a1.insert_long(1); Any a2 = setup.getClientOrb().create_any(); a2.insert_long(2); Any a3 = setup.getClientOrb().create_any(); a3.insert_long(3); Any[] a = new Any[] { a1, a2, a3 }; any_sequenceHolder b = new any_sequenceHolder(); server.bounce_any_sequence(a, b); assertEquals (3, b.value.length); for (int i=0; i<a.length; i++) { assertTrue (a[i].equal(b.value[i])); } } }