/* * 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.catalina.tribes.io; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class TestXByteBuffer { // In Tomcat 6 the testEmptyArray() test fails with a java.io.EOFException. // // Backporting r1143022 (support for 0-length array in deserialize()) // to Tomcat 6 is probably a bad idea, as // // 1. All valid use cases already check for (length == 0) case before // calling deserialize(), so adding a second check there is redundant // // 2. It will change behaviour of GroupChannel.messageReceived(), // as deserialize() call there will no longer fail with an exception. // // The change will be that instead of logging an error and returning // doing nothing, the messageReceived() method will go on and will notify // a channelListener. I do not know whether the listener is able to handle // a null argument. // // @Test // public void testEmptyArray() throws Exception { // Object obj = XByteBuffer.deserialize(new byte[0]); // assertNull(obj); // } @Test public void testSerializationString() throws Exception { String test = "This is as test."; byte[] msg = XByteBuffer.serialize(test); Object obj = XByteBuffer.deserialize(msg); assertTrue(obj instanceof String); assertEquals(test, obj); } }