/** * Copyright 2007-2010 非也 * All rights reserved. * * This library is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License v3 as published by the Free Software * Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along * with this library; if not, see http://www.gnu.org/licenses/lgpl.html. * */ package org.fireflow.model.io.resource; import static org.junit.Assert.fail; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.fireflow.model.io.DeserializerException; import org.fireflow.model.io.SerializerException; import org.fireflow.model.resourcedef.ResourceDef; import org.fireflow.model.resourcedef.ResourceType; import org.fireflow.model.resourcedef.impl.ResourceDefImpl; import org.junit.Assert; import org.junit.Test; /** * * @author 非也 nychen2000@163.com * Fire Workflow 官方网站:www.firesoa.com 或者 www.fireflow.org * */ public class ResourceSerializerTest { /** * Test method for {@link org.fireflow.model.io.resource.ResourceSerializer#serialize(java.util.List, java.io.OutputStream)}. */ @Test public void testSerialize() { List<ResourceDef> resourceList = new ArrayList<ResourceDef>(); ResourceDef resourceDef = new ResourceDefImpl(); resourceDef.setName("ProcessCreator"); resourceDef.setDisplayName("流程创建者"); resourceDef.setResourceType(ResourceType.PROCESS_INSTANCE_CREATOR); resourceList.add(resourceDef); resourceDef = new ResourceDefImpl(); resourceDef.setName("Applicant"); resourceDef.setDisplayName("申报人"); resourceDef.setResourceType(ResourceType.PROCESS_INSTANCE_CREATOR); resourceDef.setValue("process1.main_flow.activity1"); resourceList.add(resourceDef); resourceDef = new ResourceDefImpl(); resourceDef.setName("var_implement"); resourceDef.setDisplayName("流程变量"); resourceDef.setResourceType(ResourceType.VARIABLE_IMPLICATION); resourceDef.setValue( "var1"); resourceList.add(resourceDef); resourceDef = new ResourceDefImpl(); resourceDef.setName("TempGroup1"); resourceDef.setDisplayName("临时工作组1"); resourceDef.setResourceType(ResourceType.CUSTOM); resourceDef.setResolverBeanName("resolver_bean_1"); resourceList.add(resourceDef); resourceDef = new ResourceDefImpl(); resourceDef.setName("TempGroup2"); resourceDef.setDisplayName("临时工作组2"); resourceDef.setResourceType(ResourceType.CUSTOM); resourceDef.setResolverClassName("com.fireflow.demo.TheResourceResolver"); resourceList.add(resourceDef); java.io.ByteArrayOutputStream out = new java.io.ByteArrayOutputStream(); try { ResourceSerializer.serialize(resourceList, out); byte[] bytes = out.toByteArray(); java.io.ByteArrayInputStream in = new java.io.ByteArrayInputStream(bytes); List<ResourceDef> resourceList2 = ResourceDeserializer.deserialize(in); Assert.assertNotNull(resourceList2); Assert.assertEquals(resourceList.size(), resourceList2.size()); ResourceDef tmpResourceDef = findResource(resourceList2,"var_implement"); Assert.assertNotNull(tmpResourceDef); Assert.assertEquals(ResourceType.VARIABLE_IMPLICATION, tmpResourceDef.getResourceType()); Assert.assertEquals(1,tmpResourceDef.getExtendedAttributes().size()); Assert.assertEquals("var1", tmpResourceDef.getValue()); } catch (SerializerException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (DeserializerException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private ResourceDef findResource(List<ResourceDef> resourceList,String resourceName){ if (resourceList==null){ return null; } for (ResourceDef resourceDef: resourceList){ if (resourceDef.getName().equals(resourceName)){ return resourceDef; } } return null; } }