/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.image.param;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import junit.framework.TestCase;
public abstract class AbstractParameterSerializerTest
extends TestCase
{
private final AbstractParameterSerializer serializer;
public AbstractParameterSerializerTest( AbstractParameterSerializer serializer )
{
this.serializer = serializer;
}
public void testEmpty()
{
assertEquals( "", this.serializer.serialize( "" ) );
}
public void testSimple()
{
String v1 = this.serializer.serialize( "test" );
String v2 = this.serializer.deserialize( v1 );
assertEquals( "test", v2 );
}
public void testList()
{
List<String> l1 = new ArrayList<String>();
l1.add( "value1" );
l1.add( "value2" );
String v1 = this.serializer.serializeList( l1 );
List<String> l2 = this.serializer.deserializeList( v1 );
assertEquals( l1, l2 );
}
private void assertEquals( List<String> l1, List<String> l2 )
{
assertEquals( l1.size(), l2.size() );
for ( int i = 0; i < l1.size(); i++ )
{
assertEquals( l1.get( i ), l2.get( i ) );
}
}
public void testMap()
{
Map<String, String> m1 = new HashMap<String, String>();
m1.put( "key1", "value1" );
m1.put( "key2", "value2" );
String v1 = this.serializer.serializeMap( m1 );
Map<String, String> m2 = this.serializer.deserializeMap( v1 );
assertEquals( m1, m2 );
}
private void assertEquals( Map<String, String> m1, Map<String, String> m2 )
{
assertEquals( m1.size(), m2.size() );
Iterator<Map.Entry<String, String>> i1 = m1.entrySet().iterator();
Iterator<Map.Entry<String, String>> i2 = m2.entrySet().iterator();
while ( i1.hasNext() && i2.hasNext() )
{
Map.Entry<String, String> e1 = i1.next();
Map.Entry<String, String> e2 = i2.next();
assertEquals( e1.getKey(), e2.getKey() );
assertEquals( e1.getValue(), e2.getValue() );
}
}
}