/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.portal.rendering.tracing; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import org.junit.Test; import static org.junit.Assert.*; public class RenderTraceHistoryTest { @Test public void testSerialize() throws Exception { final RenderTraceHistory history = new RenderTraceHistory(); assertNotNull( history.getHistory() ); assertEquals( 0, history.getHistory().size() ); RenderTraceInfo trace = new RenderTraceInfo(); history.getHistory().add( trace ); assertEquals( 1, history.getHistory().size() ); final byte[] data = serialize( history ); final Object newObject = deSerialize( data ); assertNotNull( newObject ); assertTrue( newObject instanceof RenderTraceHistory ); final RenderTraceHistory newHistory = (RenderTraceHistory) newObject; assertNotNull( newHistory.getHistory() ); assertEquals( 0, newHistory.getHistory().size() ); } private byte[] serialize( final Object obj ) throws Exception { final ByteArrayOutputStream out = new ByteArrayOutputStream(); final ObjectOutputStream objectOut = new ObjectOutputStream( out ); objectOut.writeObject( obj ); objectOut.close(); return out.toByteArray(); } private Object deSerialize( final byte[] data ) throws Exception { final ByteArrayInputStream in = new ByteArrayInputStream( data ); final ObjectInputStream objectIn = new ObjectInputStream( in ); final Object obj = objectIn.readObject(); objectIn.close(); return obj; } }