package org.dataone.cn.index; import static org.junit.Assert.*; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.dataone.cn.index.task.IndexTask; import org.dataone.cn.index.task.ResourceMapIndexTask; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class TestResourceMapIndexTask { @BeforeClass public static void setUpBeforeClass() throws Exception { } @Before public void setUp() throws Exception { } @Test public void testSerialization() throws IOException, ClassNotFoundException { IndexTask t = new IndexTask(); t.setDateSysMetaModified(System.currentTimeMillis()); t.setDeleted(false); t.setFormatId("text/xml"); t.setId(1234L); t.setPid("foooooo"); t.setStatus("theStatus"); t.setTryCount(45); t.setVersion(3); ResourceMapIndexTask rmit = new ResourceMapIndexTask(); rmit.copy(t); List referencedIds = new ArrayList<>(); referencedIds.add("urn:uuid:3c25e86d-2874-4323-b391-8e62bed2f368"); referencedIds.add("urn:uuid:78ca8324-f73f-433e-bea4-fe47bc3cb9cd"); referencedIds.add("urn:uuid:5e3b3f6c-b27d-47b2-a900-8f558bd54d3b"); referencedIds.add("urn:uuid:b673e37c-557c-4064-86e2-7f428cf21b0e"); rmit.setReferencedIds(referencedIds); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(baos); out.writeObject(rmit); out.flush(); out.close(); byte[] bytes = baos.toByteArray(); ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes)); ResourceMapIndexTask tt = (ResourceMapIndexTask) in.readObject(); in.close(); assertTrue(tt.getPid().equals("foooooo")); assertTrue(tt.getReferencedIds().size()==4); assertTrue(tt.getReferencedIds().get(2).equals("urn:uuid:5e3b3f6c-b27d-47b2-a900-8f558bd54d3b")); } }