Package org.activiti.editor.language

Source Code of org.activiti.editor.language.ValuedDataObjectConverterTest

package org.activiti.editor.language;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import org.activiti.bpmn.model.BooleanDataObject;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.bpmn.model.DateDataObject;
import org.activiti.bpmn.model.DoubleDataObject;
import org.activiti.bpmn.model.FlowElement;
import org.activiti.bpmn.model.IntegerDataObject;
import org.activiti.bpmn.model.LongDataObject;
import org.activiti.bpmn.model.StartEvent;
import org.activiti.bpmn.model.StringDataObject;
import org.activiti.bpmn.model.SubProcess;
import org.activiti.bpmn.model.ValuedDataObject;
import org.junit.Test;

public class ValuedDataObjectConverterTest extends AbstractConverterTest {

  @Test
  public void convertJsonToModel() throws Exception {
    BpmnModel bpmnModel = readJsonFile();
    validateModel(bpmnModel);
  }
 
  @Test
  public void doubleConversionValidation() throws Exception {
    BpmnModel bpmnModel = readJsonFile();
    bpmnModel = convertToJsonAndBack(bpmnModel);
    validateModel(bpmnModel);
  }
 
  protected String getResource() {
    return "test.valueddataobjectmodel.json";
  }
 
  private void validateModel(BpmnModel model) {
    FlowElement flowElement = model.getMainProcess().getFlowElement("start1");
    assertNotNull(flowElement);
    assertTrue(flowElement instanceof StartEvent);
    assertEquals("start1", flowElement.getId());
   
    // verify main process data objects
    List<ValuedDataObject> dataObjects = model.getMainProcess().getDataObjects();
    assertEquals(6, dataObjects.size());
    for (ValuedDataObject dObj : dataObjects) {
      if ("dObj1".equals(dObj.getId())) {
        assertEquals(StringDataObject.class, dObj.getClass());
        assertEquals("StringTest", dObj.getName());
        assertTrue(dObj.getValue() instanceof String);
        assertEquals("xsd:string", dObj.getItemSubjectRef().getStructureRef());
        assertEquals("Testing123", dObj.getValue());
      } else if ("dObj2".equals(dObj.getId())) {
        assertEquals(BooleanDataObject.class, dObj.getClass());
        assertEquals("BooleanTest", dObj.getName());
        assertEquals("xsd:boolean", dObj.getItemSubjectRef().getStructureRef());
        assertTrue(dObj.getValue() instanceof Boolean);
        assertEquals(new Boolean(true), dObj.getValue());
      } else if ("dObj3".equals(dObj.getId())) {
        assertEquals(DateDataObject.class, dObj.getClass());
        assertEquals("DateTest", dObj.getName());
        assertEquals("xsd:datetime", dObj.getItemSubjectRef().getStructureRef());
        assertTrue(dObj.getValue() instanceof Date);
        GregorianCalendar dateCal = new GregorianCalendar();
        dateCal.setTime((Date) dObj.getValue());
        assertEquals(2013, dateCal.get(Calendar.YEAR));
        assertEquals(8, dateCal.get(Calendar.MONTH));
        assertEquals(16, dateCal.get(Calendar.DAY_OF_MONTH));
        assertEquals(11, dateCal.get(Calendar.HOUR_OF_DAY));
        assertEquals(23, dateCal.get(Calendar.MINUTE));
      } else if ("dObj4".equals(dObj.getId())) {
        assertEquals(DoubleDataObject.class, dObj.getClass());
        assertEquals("DoubleTest", dObj.getName());
        assertEquals("xsd:double", dObj.getItemSubjectRef().getStructureRef());
        assertTrue(dObj.getValue() instanceof Double);
        assertEquals(new Double(123456789), dObj.getValue());
      } else if ("dObj5".equals(dObj.getId())) {
        assertEquals(IntegerDataObject.class, dObj.getClass());
        assertEquals("IntegerTest", dObj.getName());
        assertEquals("xsd:int", dObj.getItemSubjectRef().getStructureRef());
        assertTrue(dObj.getValue() instanceof Integer);
        assertEquals(new Integer(123), dObj.getValue());
      } else if ("dObj6".equals(dObj.getId())) {
        assertEquals(LongDataObject.class, dObj.getClass());
        assertEquals("LongTest", dObj.getName());
        assertEquals("xsd:long", dObj.getItemSubjectRef().getStructureRef());
        assertTrue(dObj.getValue() instanceof Long);
        assertEquals(new Long(-123456), dObj.getValue());
      }
    }
   
    flowElement = model.getMainProcess().getFlowElement("subprocess1");
    assertNotNull(flowElement);
    assertTrue(flowElement instanceof SubProcess);
    assertEquals("subprocess1", flowElement.getId());
    SubProcess subProcess = (SubProcess) flowElement;
    assertEquals(11, subProcess.getFlowElements().size());

    // verify subprocess data objects
    dataObjects = ((SubProcess)flowElement).getDataObjects();
    assertEquals(6, dataObjects.size());
    for (ValuedDataObject dObj : dataObjects) {
      if ("dObj1".equals(dObj.getId())) {
        assertEquals(StringDataObject.class, dObj.getClass());
        assertEquals("SubStringTest", dObj.getName());
        assertTrue(dObj.getValue() instanceof String);
        assertEquals("xsd:string", dObj.getItemSubjectRef().getStructureRef());
        assertEquals("Testing456", dObj.getValue());
      } else if ("dObj2".equals(dObj.getId())) {
        assertEquals(BooleanDataObject.class, dObj.getClass());
        assertEquals("SubBooleanTest", dObj.getName());
        assertEquals("xsd:boolean", dObj.getItemSubjectRef().getStructureRef());
        assertTrue(dObj.getValue() instanceof Boolean);
        assertEquals(new Boolean(false), dObj.getValue());
      } else if ("dObj3".equals(dObj.getId())) {
        assertEquals(DateDataObject.class, dObj.getClass());
        assertEquals("SubDateTest", dObj.getName());
        assertEquals("xsd:datetime", dObj.getItemSubjectRef().getStructureRef());
        assertTrue(dObj.getValue() instanceof Date);
        GregorianCalendar dateCal = new GregorianCalendar();
        dateCal.setTime((Date) dObj.getValue());
        assertEquals(2013, dateCal.get(Calendar.YEAR));
        assertEquals(10, dateCal.get(Calendar.MONTH));
        assertEquals(11, dateCal.get(Calendar.DAY_OF_MONTH));
      } else if ("dObj4".equals(dObj.getId())) {
        assertEquals(DoubleDataObject.class, dObj.getClass());
        assertEquals("SubDoubleTest", dObj.getName());
        assertEquals("xsd:double", dObj.getItemSubjectRef().getStructureRef());
        assertTrue(dObj.getValue() instanceof Double);
        assertEquals(new Double(678912345), dObj.getValue());
      } else if ("dObj5".equals(dObj.getId())) {
        assertEquals(IntegerDataObject.class, dObj.getClass());
        assertEquals("SubIntegerTest", dObj.getName());
        assertEquals("xsd:int", dObj.getItemSubjectRef().getStructureRef());
        assertTrue(dObj.getValue() instanceof Integer);
        assertEquals(new Integer(45), dObj.getValue());
      } else if ("dObj6".equals(dObj.getId())) {
        assertEquals(LongDataObject.class, dObj.getClass());
        assertEquals("SubLongTest", dObj.getName());
        assertEquals("xsd:long", dObj.getItemSubjectRef().getStructureRef());
        assertTrue(dObj.getValue() instanceof Long);
        assertEquals(new Long(456123), dObj.getValue());
        assertEquals(1, dObj.getExtensionElements().size());
      }
    }
  }
}
TOP

Related Classes of org.activiti.editor.language.ValuedDataObjectConverterTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.