Package org.apache.ode.dao.jpa.test

Source Code of org.apache.ode.dao.jpa.test.SelectObjectTest

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*    http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.apache.ode.dao.jpa.test;

import junit.framework.TestCase;
import org.apache.ode.bpel.common.CorrelationKey;
import org.apache.ode.bpel.dao.ActivityRecoveryDAO;
import org.apache.ode.bpel.dao.BpelDAOConnection;
import org.apache.ode.bpel.dao.CorrelationSetDAO;
import org.apache.ode.bpel.dao.CorrelatorDAO;
import org.apache.ode.bpel.dao.FaultDAO;
import org.apache.ode.bpel.dao.MessageDAO;
import org.apache.ode.bpel.dao.MessageExchangeDAO;
import org.apache.ode.bpel.dao.MessageRouteDAO;
import org.apache.ode.bpel.dao.PartnerLinkDAO;
import org.apache.ode.bpel.dao.ProcessDAO;
import org.apache.ode.bpel.dao.ProcessInstanceDAO;
import org.apache.ode.bpel.dao.ScopeDAO;
import org.apache.ode.bpel.dao.ScopeStateEnum;
import org.apache.ode.bpel.dao.XmlDataDAO;
import org.apache.ode.dao.jpa.BPELDAOConnectionFactoryImpl;
import org.apache.ode.il.EmbeddedGeronimoFactory;
import org.apache.ode.utils.GUID;
import org.hsqldb.jdbc.jdbcDataSource;

import javax.persistence.EntityManager;
import javax.sql.DataSource;
import javax.transaction.TransactionManager;
import javax.xml.namespace.QName;
import java.util.Collection;
import java.util.Properties;

public class SelectObjectTest extends TestCase {
 
  private EntityManager em;
  private static final String TEST_NS = "http://org.apache.ode.jpa.test";
  private String[] correlationKeys = { "key1", "key2" };
  private String[] actions = { "action1","action2" };
  private CorrelationKey key1 = new CorrelationKey(1,correlationKeys);
  private static final String CORRELATOR_ID1 = "testCorrelator1";
  private static final String CORRELATOR_ID2 = "testCorrelator2";

    TransactionManager _txm;
    DataSource _ds;
    BPELDAOConnectionFactoryImpl factory;

    @Override
  protected void setUp() throws Exception {
        jdbcDataSource hsqlds = new jdbcDataSource();
        hsqlds.setDatabase("jdbc:hsqldb:mem:" + new GUID().toString());
        hsqlds.setUser("sa");
        hsqlds.setPassword("");
        _ds = hsqlds;

        _txm = new EmbeddedGeronimoFactory().getTransactionManager();

        factory = new BPELDAOConnectionFactoryImpl();
        factory.setDataSource(_ds);
        factory.setTransactionManager(_txm);
        Properties props = new Properties();
        props.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=false)");
        factory.init(props);

        _txm.begin();
  }
 
  public void testGetObject() throws Exception {
        new InsertObjectTest().createStuff(factory);

        _txm.commit();
        _txm.begin();       

        BpelDAOConnection conn = factory.getConnection();
   
    // Assert the ProcessDAO
    ProcessDAO p = conn.getProcess(new QName(TEST_NS,"testPID1"));
    assertNotNull( p );
    Collection<ProcessInstanceDAO> insts = p.findInstance(key1);
    assertNotNull( insts );
    assertTrue( insts.size() > 0 );
    assertNotNull(p.getType());
    assertNotNull(p.getProcessId());
    assertEquals( p.getVersion() , 1 );
    assertTrue( p.getNumInstances() > 0 );
   
    // Assert the CorrelatorDAO
    CorrelatorDAO corr = p.getCorrelator(CORRELATOR_ID1);
    assertNotNull( corr );
    assertEquals(corr.getCorrelatorId(),CORRELATOR_ID1);
   
    // Assert the MessageRouteDAO
    MessageRouteDAO route = corr.findRoute(key1);
    assertNotNull( route );
    assertEquals(route.getGroupId(),"testRoute" );
    assertEquals(route.getIndex() , 1 );
    assertNotNull(route.getTargetInstance() );

    // Assert the ProcessInstanceDAO
    for ( ProcessInstanceDAO inst : insts ) {
      Long id = inst.getInstanceId();
      assertNotNull( id );
     
      ProcessInstanceDAO inst2 = conn.getInstance(id);
      assertSame(inst2,inst);
     
      ProcessInstanceDAO inst3 = p.getInstance(id);
      assertSame( inst3 , inst );
     
      Long mon = inst.genMonotonic();
      assertEquals(inst.getActivityFailureCount() , 2);
      assertNotNull(inst.getActivityFailureDateTime() );
      assertNotNull(inst.getCreateTime() );
      assertTrue(inst.getExecutionState().length > 0 );
      assertNotNull(inst.getLastActiveTime() );
      assertSame(inst.getProcess() , p );
      assertEquals(inst.getPreviousState() , 0);
      assertEquals(inst.getState() , 1);
     
      // Assert the Root ScopeDAO
      ScopeDAO rs = inst.getRootScope();
      assertNotNull( rs );
      assertNotNull(rs.getChildScopes());
      ScopeDAO child1 = null;
      for ( ScopeDAO childItr : rs.getChildScopes()){
        child1 = childItr;
        break;
      }
      assertNotNull(child1);
      assertNotNull(rs.getCorrelationSets());
      assertEquals(rs.getCorrelationSets().size() , 0 );
      assertEquals(rs.getModelId(),1);
      assertEquals(rs.getName(),"Root");
      assertTrue(rs.getParentScope() == null);
      assertNotNull(rs.getPartnerLinks());
      assertEquals(rs.getPartnerLinks().size() ,0);
      assertSame(rs.getProcessInstance(),inst);
      assertNotNull(rs.getScopeInstanceId());
      assertEquals(rs.getState(),ScopeStateEnum.ACTIVE);
      assertNotNull(rs.getVariables());
      assertEquals(rs.getVariables().size(),0);
     
   
      // Assert the ActivityRecoveryDAO
      assertNotNull(inst.getActivityRecoveries());
      ActivityRecoveryDAO rec1 = null;
      for (ActivityRecoveryDAO recItr : inst.getActivityRecoveries()) {
        rec1 = recItr;
        break;
      }
      assertNotNull(rec1);
      String tmpAct = rec1.getActions();
//      assertEquals(rec1.getActionsList(),actions);
      assertEquals(rec1.getActivityId(),3);
      assertEquals(rec1.getChannel(),"testChannel1");
      assertNotNull(rec1.getDateTime());
//      assertNotNull(rec1.getDetails());
      assertEquals(rec1.getReason(),"testReason1");
      assertEquals(rec1.getRetries(),2);
     
      // Assert the CorrelationSetDAO
      //assertNotNull(inst.getCorrelationSets());
      //CorrelationSetDAO cs1 = null;
      //for ( CorrelationSetDAO csItr : inst.getCorrelationSets() ) {
      //  cs1 = csItr;
      //  break;
      //}
      //assertNotNull(cs1);
     
      // Assert the FaultDAO
      FaultDAO fault = inst.getFault();
      assertNotNull(fault);
      assertEquals(fault.getActivityId(),1);
      assertNotNull(fault.getData());
      assertEquals(fault.getExplanation(),"testExplanation");
      assertEquals(fault.getLineNo(),1);
      assertEquals(fault.getName(),new QName(TEST_NS,"testFault"));
     
      // Assert MessageExchangeDAO
      CorrelatorDAO ic = inst.getInstantiatingCorrelator();
      assertNotNull(ic);
      assertEquals(ic.getCorrelatorId(),CORRELATOR_ID1);
      // The message is dequeued but not persisted
      MessageExchangeDAO me = ic.dequeueMessage(key1);
      assertNotNull(me);
      assertEquals(me.getCallee(),new QName(TEST_NS,"testCallee"));
      assertEquals(me.getPropagateTransactionFlag(),false);
      assertEquals(me.getChannel(),"testChannel");
      assertEquals(me.getCorrelationId(),"testCorrelationId");
      //assertNotNull(me.getCreateTime());
      assertEquals(me.getDirection(),'0');
      assertNotNull(me.getEPR());
      assertEquals(me.getFault().toString(),"testFault");
      assertEquals(me.getFaultExplanation(),"testFaultExplanation");
      assertSame(me.getInstance(),inst);
      assertEquals(me.getOperation(),"testOperation");
      assertNotNull(me.getPartnerLink());
      assertEquals(me.getPartnerLinkModelId(),1);
      assertEquals(me.getPattern(),"testPattern");
      assertEquals(me.getPortType(),new QName(TEST_NS,"testPortType"));
      assertSame(me.getProcess(),p);
      assertEquals(me.getProperty("testProp1Key"),"testProp1");
      assertNotNull(me.getRequest());
      assertNotNull(me.getResponse());
      assertEquals(me.getStatus(),"testStatus");
     
      // Assert MessageDAO
      MessageDAO m = me.getRequest();
      assertNotNull(m.getData());
      assertSame(m.getMessageExchange(),me);
      assertEquals(m.getType(),new QName(TEST_NS,"testRequest"));
     
     
      //Assert Child ScopeDAO
      assertNotNull(inst.getScopes());
      assertTrue(inst.getScopes().size() > 0);
      assertNotNull(inst.getScopes("Child1"));
      assertTrue(inst.getScopes("Child1").size() == 1);
      ScopeDAO childS = inst.getScopes("Child1").iterator().next();
      assertSame(childS,child1);
      assertSame(childS.getParentScope(),rs);
      assertNotNull(childS.getChildScopes());
      assertEquals(childS.getChildScopes().size(), 0);
      assertNotNull(childS.getVariables());
      assertTrue(childS.getVariables().size() > 0);
      assertNotNull(childS.getVariable("var1"));
      XmlDataDAO chsVar = childS.getVariable("var1");
      assertNotNull(childS.getPartnerLinks());
      assertTrue(childS.getPartnerLinks().size() > 0);
      PartnerLinkDAO spl = childS.getPartnerLinks().iterator().next();
      assertSame(spl,me.getPartnerLink());
      assertSame(spl,childS.getPartnerLink(spl.getPartnerLinkModelId()));
      assertNotNull(childS.getCorrelationSets());
      assertTrue(childS.getCorrelationSets().size() > 0);
      assertNotNull(childS.getCorrelationSet("TestCorrelationSet1"));
     
      // Assert CorrelationSetDAO
      CorrelationSetDAO cs = childS.getCorrelationSet("TestCorrelationSet1");
      assertEquals(cs.getName(),"TestCorrelationSet1");
      assertNotNull(cs.getProperties());
      assertTrue(cs.getProperties().size() > 0);
      assertSame(cs.getScope(),childS);
      assertNotNull(cs.getValue());
      assertEquals(cs.getProperties().get(new QName(TEST_NS,"name1")),"key1");
     
     
      // Assert PartnerLinkDAO
      assertNotNull(spl.getMyEPR());
      assertEquals(spl.getMyRoleName(),"MyRole1");
      assertEquals(spl.getMyRoleServiceName(),new QName(TEST_NS,"testRoleService"));
      assertEquals(spl.getMySessionId(),"TestMySessionID");
      assertNotNull(spl.getPartnerEPR());
      assertEquals(spl.getPartnerLinkModelId(),1);
      assertEquals(spl.getPartnerLinkName(),"Test PartnerLink1");
      assertEquals(spl.getPartnerRoleName(),"PartnerRole1");
      assertEquals(spl.getPartnerSessionId(),"TestPartnerSessionID");
     
      // Assert Variables
      assertNotNull(inst.getVariables("var1", 2));
      assertEquals(inst.getVariables("var1", 2).length,1);
      XmlDataDAO[] vars = inst.getVariables("var1", 2);
      assertSame(chsVar,vars[0]);
      assertNotNull(vars[0].get());
      assertEquals(vars[0].getName(),"var1");
      assertEquals(vars[0].getProperty("key1"),"prop1");
      assertSame(vars[0].getScopeDAO(),childS);
     
    }
  }

  @Override
  protected void tearDown() throws Exception {
        _txm.commit();
    _txm = null;
        _ds = null;
    }
 
}
TOP

Related Classes of org.apache.ode.dao.jpa.test.SelectObjectTest

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.