/** * This file is protected by Copyright. * Please refer to the COPYRIGHT file distributed with this source distribution. * * This file is part of REDHAWK IDE. * * 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. */ package gov.redhawk.bulkio.util.tests.internal; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.instanceOf; import static org.junit.Assert.assertThat; import gov.redhawk.bulkio.util.AbstractBulkIOPort; import gov.redhawk.bulkio.util.BulkIOType; import org.junit.Test; import org.omg.PortableServer.Servant; import BULKIO.PrecisionUTCTime; import BULKIO.dataCharOperations; import BULKIO.dataCharPOATie; import BULKIO.dataDoubleOperations; import BULKIO.dataDoublePOATie; import BULKIO.dataFloatOperations; import BULKIO.dataFloatPOATie; import BULKIO.dataLongLongOperations; import BULKIO.dataLongLongPOATie; import BULKIO.dataLongOperations; import BULKIO.dataLongPOATie; import BULKIO.dataOctetOperations; import BULKIO.dataOctetPOATie; import BULKIO.dataShortOperations; import BULKIO.dataShortPOATie; import BULKIO.dataUlongLongOperations; import BULKIO.dataUlongLongPOATie; import BULKIO.dataUlongOperations; import BULKIO.dataUlongPOATie; import BULKIO.dataUshortOperations; import BULKIO.dataUshortPOATie; public class BulkIOTypeTest { @Test public void testCreateServant() { BulkIOType[] bulkioTypes = new BulkIOType[] { BulkIOType.LONG, BulkIOType.ULONG, BulkIOType.LONG_LONG, BulkIOType.ULONG_LONG, BulkIOType.SHORT, BulkIOType.USHORT, BulkIOType.FLOAT, BulkIOType.DOUBLE, BulkIOType.OCTET, BulkIOType.CHAR, }; Object[] handlers = new Object[] { new TestDataLongPort(), new TestDataUlongPort(), new TestDataLongLongPort(), new TestDataUlongLongPort(), new TestDataShortPort(), new TestDataUshortPort(), new TestDataFloatPort(), new TestDataDoublePort(), new TestDataOctetPort(), new TestDataCharPort(), }; Class<?>[] expServantClasses = new Class<?>[] { dataLongPOATie.class, dataUlongPOATie.class, dataLongLongPOATie.class, dataUlongLongPOATie.class, dataShortPOATie.class, dataUshortPOATie.class, dataFloatPOATie.class, dataDoublePOATie.class, dataOctetPOATie.class, dataCharPOATie.class, }; assertThat(expServantClasses.length, is(equalTo(bulkioTypes.length))); assertThat(expServantClasses.length, is(equalTo(handlers.length))); for (int ii = 0; ii < bulkioTypes.length; ii++) { BulkIOType bulkioType = bulkioTypes[ii]; Object handler = handlers[ii]; Class<?> expClass = expServantClasses[ii]; Servant servant = bulkioType.createServant(handler); assertThat(bulkioType + ".createServant(" + handler.getClass().getSimpleName() + ")", servant, is(instanceOf(expClass))); } } private static class TestDataLongPort extends AbstractBulkIOPort implements dataLongOperations { @Override public void pushPacket(int[] data, PrecisionUTCTime T, boolean EOS, String streamID) { } } private static class TestDataUlongPort extends AbstractBulkIOPort implements dataUlongOperations { @Override public void pushPacket(int[] data, PrecisionUTCTime T, boolean EOS, String streamID) { } } private static class TestDataLongLongPort extends AbstractBulkIOPort implements dataLongLongOperations { @Override public void pushPacket(long[] data, PrecisionUTCTime T, boolean EOS, String streamID) { } } private static class TestDataUlongLongPort extends AbstractBulkIOPort implements dataUlongLongOperations { @Override public void pushPacket(long[] data, PrecisionUTCTime T, boolean EOS, String streamID) { } } private static class TestDataShortPort extends AbstractBulkIOPort implements dataShortOperations { @Override public void pushPacket(short[] data, PrecisionUTCTime T, boolean EOS, String streamID) { } } private static class TestDataUshortPort extends AbstractBulkIOPort implements dataUshortOperations { @Override public void pushPacket(short[] data, PrecisionUTCTime T, boolean EOS, String streamID) { } } private static class TestDataFloatPort extends AbstractBulkIOPort implements dataFloatOperations { @Override public void pushPacket(float[] data, PrecisionUTCTime T, boolean EOS, String streamID) { } } private static class TestDataDoublePort extends AbstractBulkIOPort implements dataDoubleOperations { @Override public void pushPacket(double[] data, PrecisionUTCTime T, boolean EOS, String streamID) { } } private static class TestDataOctetPort extends AbstractBulkIOPort implements dataOctetOperations { @Override public void pushPacket(byte[] data, PrecisionUTCTime T, boolean EOS, String streamID) { } } private static class TestDataCharPort extends AbstractBulkIOPort implements dataCharOperations { @Override public void pushPacket(char[] data, PrecisionUTCTime T, boolean EOS, String streamID) { } } }