package org.infinispan.util; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertSame; import java.io.ByteArrayInputStream; import java.io.ObjectInput; import java.io.ObjectInputStream; import java.io.ObjectOutput; import java.io.ObjectOutputStream; import org.infinispan.commons.io.ExposedByteArrayOutputStream; import org.infinispan.test.AbstractInfinispanTest; import org.testng.annotations.Test; /** * @author Dan Berindei * @since 9.0 */ @Test(groups = "unit", testName = "util.ByteStringTest") public class ByteStringTest extends AbstractInfinispanTest { public void testEmptyString() throws Exception { ByteString byteString = ByteString.fromString(""); assertSame(ByteString.emptyString(), byteString); ExposedByteArrayOutputStream outputStream = new ExposedByteArrayOutputStream(); try (ObjectOutput output = new ObjectOutputStream(outputStream)) { ByteString.writeObject(output, byteString); } ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.getRawBuffer()); try (ObjectInput input = new ObjectInputStream(inputStream)) { ByteString byteString2 = ByteString.readObject(input); assertSame(ByteString.emptyString(), byteString2); } } public void testShortString() throws Exception { ByteString byteString = ByteString.fromString("abc"); ExposedByteArrayOutputStream outputStream = new ExposedByteArrayOutputStream(); try (ObjectOutput output = new ObjectOutputStream(outputStream)) { ByteString.writeObject(output, byteString); } ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.getRawBuffer()); try (ObjectInput input = new ObjectInputStream(inputStream)) { ByteString byteString2 = ByteString.readObject(input); assertEquals(byteString, byteString2); } } @Test(expectedExceptions = IllegalArgumentException.class) public void testLargeString() throws Exception { StringBuilder sb = new StringBuilder(128); for (int i = 0; i < 128; i++) { sb.append("a"); } ByteString.fromString(sb.toString()); } }