/******************************************************************************* * Copyright (c) 2010, 2012 EclipseSource and others. * 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 * * Contributors: * EclipseSource - initial API and implementation ******************************************************************************/ package org.eclipse.swt.dnd; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.junit.Test; public class ByteArrayTransfer_Test { @Test public void testJavaToNative() { ByteArrayTransfer transfer = new ByteArrayTransfer() { @Override protected String[] getTypeNames() { return new String[] { "test-byte-transfer" }; } @Override protected int[] getTypeIds() { return new int[] { Transfer.registerType( getTypeNames()[ 0 ] ) }; } }; byte[] object = { 1, 2, 3 }; TransferData transferData = new TransferData(); transferData.type = transfer.getTypeIds()[ 0 ]; transfer.javaToNative( object, transferData ); byte[] nativeToJava = ( byte[] )transfer.nativeToJava( transferData ); assertEquals( 1, nativeToJava[ 0 ] ); assertEquals( 2, nativeToJava[ 1 ] ); assertEquals( 3, nativeToJava[ 2 ] ); } @Test public void testNativeToJavaWithIllegalTransferData() { ByteArrayTransfer transfer = new ByteArrayTransfer() { @Override protected String[] getTypeNames() { return new String[] { "test-byte-transfer" }; } @Override protected int[] getTypeIds() { return new int[] { Transfer.registerType( getTypeNames()[ 0 ] ) }; } }; TransferData transferData = new TransferData(); assertNull( transfer.nativeToJava( transferData ) ); transferData.type = transfer.getTypeIds()[ 0 ]; assertNull( transfer.nativeToJava( transferData ) ); } @Test public void testIsSupportedType() { ByteArrayTransfer transfer = new ByteArrayTransfer() { @Override protected String[] getTypeNames() { return new String[] { "test-byte-transfer" }; } @Override protected int[] getTypeIds() { return new int[] { Transfer.registerType( getTypeNames()[ 0 ] ) }; } }; assertFalse( transfer.isSupportedType( null ) ); assertFalse( transfer.isSupportedType( new TransferData() ) ); TransferData transferData = new TransferData(); transferData.type = transfer.getTypeIds()[ 0 ]; assertTrue( transfer.isSupportedType( transferData ) ); } }