package org.distributeme.agents; import net.anotheria.util.IdCodeGenerator; import org.junit.Test; import java.util.List; import static org.junit.Assert.*; public class PackAndUnpackTest { @Test public void testPlainAgent(){ PlainAgent agent = new PlainAgent(); System.out.println("Created agent "+agent); String code = IdCodeGenerator.generateCode(20); agent.setCode(code); System.out.println("Agent "+agent+" will be packed now."); AgentPackage pack = AgentPackageUtility.pack(agent); System.out.println("PACK: "+pack); System.out.println("=================="); System.out.println("UNPACKING"); //.... Agent agent2 = AgentPackageUtility.unpack(pack); System.out.println("Unpacked agent2: "+agent2); assertEquals(agent.getCode(), ((TestAgent)agent2).getCode()); assertFalse("Same class ", agent.getId()==((TestAgent)agent2).getId()); assertFalse("Same class ", agent.getSubId()==((TestAgent)agent2).getSubId()); System.out.println("=================="); } @Test public void testComplexAgent(){ ComplexAgent agent = new ComplexAgent(); System.out.println("Created agent "+agent); String code = IdCodeGenerator.generateCode(20); agent.setCode(code); System.out.println("Agent "+agent+" will be packed now."); AgentPackage pack = AgentPackageUtility.pack(agent); System.out.println("PACK: "+pack); System.out.println("=================="); System.out.println("UNPACKING"); //.... Agent agent2 = AgentPackageUtility.unpack(pack); System.out.println("Unpacked agent2: "+agent2); assertEquals(agent.getCode(), ((TestAgent)agent2).getCode()); assertFalse("Same class ", agent.getId()==((TestAgent)agent2).getId()); assertFalse("Same sub class ", agent.getSubId()==((TestAgent)agent2).getSubId()); } @Test public void testScanClasses(){ PlainAgent agent1 = new PlainAgent(); List<Class<?>> list1 = AgentPackageUtility.scanForCustomClasses(agent1); assertNotNull("The class list shouldn't be null", list1); assertTrue("The class list shouldn't be empty", list1.size()>0); assertEquals(agent1.getClass(), list1.get(0)); //System.out.println(list1); ComplexAgent agent2 = new ComplexAgent(); List<Class<?>> list2 = AgentPackageUtility.scanForCustomClasses(agent2); assertNotNull("The class list shouldn't be null", list2); assertTrue("The class list shouldn't be empty", list2.size()>0); assertEquals(agent2.getClass(), list2.get(0)); assertEquals(ComplexAgentComponent.class, list2.get(1)); //System.out.println(list2); ClassScanAgent agent3 = new ClassScanAgent(); List<Class<?>> list3 = AgentPackageUtility.scanForCustomClasses(agent3); assertNotNull("The class list shouldn't be null", list3); assertTrue("The class list shouldn't be empty", list3.size()>0); assertEquals(agent3.getClass(), list3.get(0)); assertEquals(ClassScanAgentComponent.class, list3.get(1)); assertEquals(PlainAgent.class, list3.get(2)); assertEquals(ComplexAgent.class, list3.get(3)); assertEquals(ComplexAgentComponent.class, list3.get(4)); //System.out.println(list3); } }