View Javadoc

1   /*
2    * $Id: CompressionTestCase.java 22387 2011-07-12 03:53:36Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.util.compression;
12  
13  import org.mule.tck.junit4.AbstractMuleTestCase;
14  
15  import java.util.Arrays;
16  
17  import org.junit.Test;
18  
19  import static org.junit.Assert.assertEquals;
20  import static org.junit.Assert.assertFalse;
21  import static org.junit.Assert.assertNull;
22  import static org.junit.Assert.assertTrue;
23  
24  public class CompressionTestCase extends AbstractMuleTestCase
25  {
26  
27      @Test
28      public void testCompressDefaultGZip() throws Exception
29      {
30          String temp = "This is a compressed string";
31          CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy();
32          byte[] compressed = strategy.compressByteArray(temp.getBytes());
33  
34          // For small test data the compressed data will be bigger than the real data
35          assertTrue(compressed.length > temp.getBytes().length);
36  
37          byte[] uncompressed = strategy.uncompressByteArray(compressed);
38          assertTrue(uncompressed.length == temp.getBytes().length);
39  
40          assertEquals(temp, new String(uncompressed));
41  
42          String tempLarge = temp;
43          for (int i = 0; i < 100; i++)
44          {
45              tempLarge += temp;
46          }
47  
48          compressed = strategy.compressByteArray(tempLarge.getBytes());
49  
50          assertTrue(compressed.length < tempLarge.getBytes().length);
51  
52          uncompressed = strategy.uncompressByteArray(compressed);
53          assertTrue(uncompressed.length == tempLarge.getBytes().length);
54  
55          assertEquals(tempLarge, new String(uncompressed));
56  
57      }
58  
59      @Test
60      public void testNullIsCompressed() throws Exception
61      {
62          CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy();
63          assertFalse(strategy.isCompressed(null));
64      }
65  
66      @Test
67      public void testEmptyIsCompressed() throws Exception
68      {
69          CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy();
70          assertFalse(strategy.isCompressed(new byte[0]));
71      }
72  
73      @Test
74      public void testCompressNullBytes() throws Exception
75      {
76          CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy();
77          assertNull(strategy.compressByteArray(null));
78      }
79  
80      @Test
81      public void testCompressEmptyBytes() throws Exception
82      {
83          CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy();
84          byte[] bytes = new byte[0];
85          byte[] result = strategy.compressByteArray(bytes);
86  
87          assertTrue(strategy.isCompressed(result));
88      }
89  
90      @Test
91      public void testUncompressNullBytes() throws Exception
92      {
93          CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy();
94          assertNull(strategy.uncompressByteArray(null));
95      }
96  
97      @Test
98      public void testUncompressEmptyBytes() throws Exception
99      {
100         CompressionStrategy strategy = CompressionHelper.getDefaultCompressionStrategy();
101         byte[] bytes = new byte[0];
102 
103         byte[] cmpbytes = strategy.compressByteArray(bytes);
104         assertTrue(strategy.isCompressed(cmpbytes));
105 
106         byte[] result = strategy.uncompressByteArray(cmpbytes);
107         assertTrue(Arrays.equals(bytes, result));
108     }
109 
110 }