package agilprotests; import java.io.IOException; import java.util.Collections; import java.util.Properties; import model.application.ApplicationPackage; import model.core.CorePackage; import model.core.impl.PackageImpl; import model.data.DataPackage; import model.events.EventsPackage; import model.functions.FunctionsPackage; import model.organisations.OrganisationsPackage; import model.primitiveTypes.PrimitiveTypesPackage; import model.processes.ProcessesPackage; import model.processes.impl.ActionImpl; import model.processes.impl.ActivityImpl; import model.processes.impl.ReferenceImpl; import model.view.Point; import model.view.ViewPackage; import model.view.impl.PointImpl; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; import org.eclipse.emf.teneo.hibernate.HbDataStore; import org.eclipse.emf.teneo.hibernate.HbHelper; import org.eclipse.emf.teneo.hibernate.resource.HibernateResourceFactory; import org.hibernate.cfg.Environment; import junit.framework.TestCase; public class AgilProTests extends TestCase { private HbDataStore hbds=null; @Override protected void setUp() throws Exception { if(hbds==null) initHibernateStore(); } private void initHibernateStore() { System.out.println("setup!"); // Initialize the HbDataStore hbds = HbHelper.INSTANCE.createRegisterDataStore("agilprodb"); hbds.setEPackages(new EPackage[]{CorePackage.eINSTANCE, ApplicationPackage.eINSTANCE, DataPackage.eINSTANCE, EventsPackage.eINSTANCE, FunctionsPackage.eINSTANCE, OrganisationsPackage.eINSTANCE, PrimitiveTypesPackage.eINSTANCE, ProcessesPackage.eINSTANCE, ViewPackage.eINSTANCE}); hbds.setHibernateProperties(getDatabaseProperties()); hbds.initialize(); } private Properties getDatabaseProperties() { // generate properties Properties props = new Properties(); props.setProperty(Environment.DRIVER, "com.mysql.jdbc.Driver"); props.setProperty(Environment.USER, "root"); props.setProperty(Environment.URL, "jdbc:mysql://127.0.0.1:3306/teneotestbase"); props.setProperty(Environment.PASS, "root"); props.setProperty(Environment.DIALECT, org.hibernate.dialect.MySQLInnoDBDialect.class.getName()); props.setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS,"thread"); // return result return props; } public void testClear() { try { // load standardpalette from filesystem ResourceSet resourceSet2 = createXMIResourceSet(); URI fileURI = URI.createURI("test.agilpro"); Resource fileResource = resourceSet2.createResource(fileURI); fileResource.load(Collections.EMPTY_MAP); // save somemodel in database ResourceSet resourceSet = createHibernateResourceSet(); URI databaseURI = URI.createURI("hibernate://?dsname=agilprodb&query1=from Package where name='test'"); Resource databaseResource = resourceSet.createResource(databaseURI); databaseResource.load(Collections.EMPTY_MAP); databaseResource.getContents().add(fileResource.getAllContents().next()); // set rootname and save resource ((PackageImpl)databaseResource.getContents().get(0)).setName("test"); databaseResource.save(Collections.EMPTY_MAP); // load again databaseResource.load(Collections.EMPTY_MAP); // pick an item PackageImpl root = (PackageImpl)databaseResource.getContents().get(0); ActivityImpl act = (ActivityImpl)root.getElements().get(0); ActionImpl action = (ActionImpl)act.getNodes().get(0); PointImpl point = (PointImpl)action.getLocation(); point.setX(50); point.setY(100); action.setLocation(point); databaseResource.save(Collections.EMPTY_MAP); } catch(Exception ex) { ex.printStackTrace(); assertTrue(false); } } private ResourceSet createXMIResourceSet() { // create resourceset ResourceSet resourceSet = new ResourceSetImpl(); // register extension for XMI and database resources resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap() .put("agilpro", new XMIResourceFactoryImpl()); // register epackages resourceSet.getPackageRegistry().put(CorePackage.eNS_URI, CorePackage.eINSTANCE); resourceSet.getPackageRegistry().put(ProcessesPackage.eNS_URI, ProcessesPackage.eINSTANCE); resourceSet.getPackageRegistry().put(ApplicationPackage.eNS_URI, ApplicationPackage.eINSTANCE); resourceSet.getPackageRegistry().put(DataPackage.eNS_URI, DataPackage.eINSTANCE); resourceSet.getPackageRegistry().put(EventsPackage.eNS_URI, EventsPackage.eINSTANCE); resourceSet.getPackageRegistry().put(FunctionsPackage.eNS_URI, FunctionsPackage.eINSTANCE); resourceSet.getPackageRegistry().put(OrganisationsPackage.eNS_URI, OrganisationsPackage.eINSTANCE); resourceSet.getPackageRegistry().put(PrimitiveTypesPackage.eNS_URI, PrimitiveTypesPackage.eINSTANCE); resourceSet.getPackageRegistry().put(ProcessesPackage.eNS_URI, ProcessesPackage.eINSTANCE); resourceSet.getPackageRegistry().put(ViewPackage.eNS_URI, ViewPackage.eINSTANCE); return resourceSet; } private ResourceSet createHibernateResourceSet() { // create resourceset ResourceSet resourceSet = new ResourceSetImpl(); // register extension for XMI and database resources resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap() .put("agilprodb", new HibernateResourceFactory()); // register epackages resourceSet.getPackageRegistry().put(CorePackage.eNS_URI, CorePackage.eINSTANCE); resourceSet.getPackageRegistry().put(ProcessesPackage.eNS_URI, ProcessesPackage.eINSTANCE); resourceSet.getPackageRegistry().put(ApplicationPackage.eNS_URI, ApplicationPackage.eINSTANCE); resourceSet.getPackageRegistry().put(DataPackage.eNS_URI, DataPackage.eINSTANCE); resourceSet.getPackageRegistry().put(EventsPackage.eNS_URI, EventsPackage.eINSTANCE); resourceSet.getPackageRegistry().put(FunctionsPackage.eNS_URI, FunctionsPackage.eINSTANCE); resourceSet.getPackageRegistry().put(OrganisationsPackage.eNS_URI, OrganisationsPackage.eINSTANCE); resourceSet.getPackageRegistry().put(PrimitiveTypesPackage.eNS_URI, PrimitiveTypesPackage.eINSTANCE); resourceSet.getPackageRegistry().put(ProcessesPackage.eNS_URI, ProcessesPackage.eINSTANCE); resourceSet.getPackageRegistry().put(ViewPackage.eNS_URI, ViewPackage.eINSTANCE); return resourceSet; } }