/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.runtime.core.util.compression; import org.mule.tck.junit4.AbstractMuleTestCase; import org.mule.tck.size.SmallTest; import java.util.Arrays; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @SmallTest public class CompressionTestCase extends AbstractMuleTestCase { @Test public void testCompressDefaultGZip() throws Exception { String temp = "This is a compressed string"; CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy(); byte[] compressed = strategy.compressByteArray(temp.getBytes()); // For small test data the compressed data will be bigger than the real data assertTrue(compressed.length > temp.getBytes().length); byte[] uncompressed = strategy.uncompressByteArray(compressed); assertTrue(uncompressed.length == temp.getBytes().length); assertEquals(temp, new String(uncompressed)); String tempLarge = temp; for (int i = 0; i < 100; i++) { tempLarge += temp; } compressed = strategy.compressByteArray(tempLarge.getBytes()); assertTrue(compressed.length < tempLarge.getBytes().length); uncompressed = strategy.uncompressByteArray(compressed); assertTrue(uncompressed.length == tempLarge.getBytes().length); assertEquals(tempLarge, new String(uncompressed)); } @Test public void testNullIsCompressed() throws Exception { CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy(); assertFalse(strategy.isCompressed(null)); } @Test public void testEmptyIsCompressed() throws Exception { CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy(); assertFalse(strategy.isCompressed(new byte[0])); } @Test public void testCompressNullBytes() throws Exception { CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy(); assertNull(strategy.compressByteArray(null)); } @Test public void testCompressEmptyBytes() throws Exception { CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy(); byte[] bytes = new byte[0]; byte[] result = strategy.compressByteArray(bytes); assertTrue(strategy.isCompressed(result)); } @Test public void testUncompressNullBytes() throws Exception { CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy(); assertNull(strategy.uncompressByteArray(null)); } @Test public void testUncompressEmptyBytes() throws Exception { CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy(); byte[] bytes = new byte[0]; byte[] cmpbytes = strategy.compressByteArray(bytes); assertTrue(strategy.isCompressed(cmpbytes)); byte[] result = strategy.uncompressByteArray(cmpbytes); assertTrue(Arrays.equals(bytes, result)); } }