Java tutorial
/* * Copyright 2013 The Netty Project * * The Netty Project 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 io.netty.handler.codec.compression; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.embedded.EmbeddedChannel; import io.netty.util.CharsetUtil; import io.netty.util.ReferenceCountUtil; import org.apache.commons.compress.utils.IOUtils; import org.junit.Test; import java.io.IOException; import java.util.Arrays; import java.util.Queue; import static org.junit.Assert.*; public class JdkZlibTest extends ZlibTest { @Override protected ZlibEncoder createEncoder(ZlibWrapper wrapper) { return new JdkZlibEncoder(wrapper); } @Override protected ZlibDecoder createDecoder(ZlibWrapper wrapper) { return new JdkZlibDecoder(wrapper); } @Test(expected = DecompressionException.class) @Override public void testZLIB_OR_NONE3() throws Exception { super.testZLIB_OR_NONE3(); } @Test // verifies backward compatibility public void testConcatenatedStreamsReadFirstOnly() throws IOException { EmbeddedChannel chDecoderGZip = new EmbeddedChannel(createDecoder(ZlibWrapper.GZIP)); try { byte[] bytes = IOUtils.toByteArray(getClass().getResourceAsStream("/multiple.gz")); assertTrue(chDecoderGZip.writeInbound(Unpooled.copiedBuffer(bytes))); Queue<Object> messages = chDecoderGZip.inboundMessages(); assertEquals(1, messages.size()); ByteBuf msg = (ByteBuf) messages.poll(); assertEquals("a", msg.toString(CharsetUtil.UTF_8)); ReferenceCountUtil.release(msg); } finally { assertFalse(chDecoderGZip.finish()); chDecoderGZip.close(); } } @Test public void testConcatenatedStreamsReadFully() throws IOException { EmbeddedChannel chDecoderGZip = new EmbeddedChannel(new JdkZlibDecoder(true)); try { byte[] bytes = IOUtils.toByteArray(getClass().getResourceAsStream("/multiple.gz")); assertTrue(chDecoderGZip.writeInbound(Unpooled.copiedBuffer(bytes))); Queue<Object> messages = chDecoderGZip.inboundMessages(); assertEquals(2, messages.size()); for (String s : Arrays.asList("a", "b")) { ByteBuf msg = (ByteBuf) messages.poll(); assertEquals(s, msg.toString(CharsetUtil.UTF_8)); ReferenceCountUtil.release(msg); } } finally { assertFalse(chDecoderGZip.finish()); chDecoderGZip.close(); } } }