/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.backend.jgroups.impl; import java.io.UnsupportedEncodingException; import java.util.Arrays; import org.hibernate.search.exception.SearchException; import org.junit.Test; import org.junit.Assert; /** * @author Sanne Grinovero (C) 2012 Red Hat Inc. */ public class SerializationHelperTest { @Test public void testIntEncoding() { for ( int i = 0; i < 256; i++ ) { byte byte1 = MessageSerializationHelper.fromIntToByte( i ); int int1 = MessageSerializationHelper.fromByteToInt( byte1 ); Assert.assertEquals( i, int1 ); } } @Test(expected = SearchException.class) public void testIntTooLargeEncoding() { MessageSerializationHelper.fromIntToByte( 256 ); } @Test public void exampleEncoding() throws UnsupportedEncodingException { byte[] someRandom = "Some random string to test payload".getBytes( "UTF-8" ); String indexName = "this is my favourite index"; byte[] buffer = MessageSerializationHelper.prependString( indexName, someRandom ); Assert.assertEquals( indexName, MessageSerializationHelper.extractIndexName( 0, buffer ) ); Assert.assertTrue( Arrays.equals( someRandom, MessageSerializationHelper.extractSerializedQueue( 0, buffer.length, buffer ) ) ); } @Test public void partialBufferEncoding() throws UnsupportedEncodingException { byte[] someRandom = "Some random string to test payload".getBytes( "UTF-8" ); String indexName = "this is my favourite index"; byte[] buffer = MessageSerializationHelper.prependString( indexName, someRandom ); byte[] mixed = new byte[ buffer.length + 7 ]; final int offset = 2; System.arraycopy( buffer, 0, mixed, offset, buffer.length ); Assert.assertEquals( indexName, MessageSerializationHelper.extractIndexName( offset, mixed ) ); Assert.assertTrue( Arrays.equals( someRandom, MessageSerializationHelper.extractSerializedQueue( offset, buffer.length, mixed ) ) ); } }