001 package org.hackystat.sensor.xmldata.util; 002 003 import junit.framework.TestCase; 004 import java.util.ArrayList; 005 import java.util.List; 006 import java.util.Arrays; 007 008 /** 009 * Tests the StringListCodec implementation. 010 * 011 * @author Philip Johnson 012 * @version $Id: TestStringListCodec.java,v 1.1.1.1 2005/10/20 23:56:44 johnson Exp $ 013 */ 014 public class TestStringListCodec extends TestCase { 015 016 /** 017 * Tests the stringlistcodec method. 018 * 019 * @exception Exception if an error occurs 020 */ 021 public void testStringListCodec() throws Exception { 022 // Test simple. 023 String[] stringList1 = {"abc", "defg"}; 024 List<String> originalList = Arrays.asList(stringList1); 025 String encoded = StringListCodec.encode(originalList); 026 List<String> decodedList = StringListCodec.decode(encoded); 027 assertEquals("Testing simple list", originalList, decodedList); 028 029 String[] stringList2 = {"abc", "defg", "", "hijklmnop"}; 030 List<String> originalList2 = Arrays.asList(stringList2); 031 String encoded2 = StringListCodec.encode(Arrays.asList(stringList2)); 032 List<String> decodedList2 = StringListCodec.decode(encoded2); 033 assertEquals("Testing empty list item", originalList2, decodedList2); 034 035 List<String> emptyList = new ArrayList<String>(); 036 String encodedEmpty = StringListCodec.encode(emptyList); 037 List<String> decodedEmpty = StringListCodec.decode(encodedEmpty); 038 assertEquals("Testing degenerate list", emptyList, decodedEmpty); 039 } 040 041 /** 042 * Tests whether line breaks are coverted or not. 043 * 044 * @throws Exception If test fails. 045 */ 046 public void testLineBreak() throws Exception { 047 ArrayList<String> original = new ArrayList<String>(); 048 original.add("\r\n00\r\n00\r\n"); 049 original.add("\r11\r11\r"); 050 original.add("\n22\n22\n"); 051 String encodedString = StringListCodec.encode(original); 052 053 List<String> decoded = StringListCodec.decode(encodedString); 054 assertEquals("LineBreak Test 1", original.size(), decoded.size()); 055 assertEquals("LineBreak Test 2", "\n00\n00\n", decoded.get(0)); 056 assertEquals("LineBreak Test 3", "\n11\n11\n", decoded.get(1)); 057 assertEquals("LineBreak Test 4", "\n22\n22\n", decoded.get(2)); 058 } 059 }