blob: 4f4314567c18f81768ff59809f216cb5ab728afe [file] [log] [blame]
/*
* Copyright (c) 2008-2012 Eike Stepper (Berlin, Germany) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Andre Dietisheim - initial API and implementation
* Eike Stepper - maintenance
*/
package org.eclipse.emf.cdo.tests.defs;
import org.eclipse.emf.cdo.defs.CDOResourceDef;
import org.eclipse.emf.cdo.defs.CDOSessionDef;
import org.eclipse.emf.cdo.defs.ResourceMode;
import org.eclipse.emf.cdo.defs.util.CDODefsUtil;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.tests.AbstractCDOTest;
import org.eclipse.emf.cdo.tests.config.IRepositoryConfig;
import org.eclipse.emf.cdo.tests.config.impl.SessionConfig.Net4j;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
import org.eclipse.emf.cdo.util.InvalidURIException;
import org.eclipse.net4j.defs.util.Net4jDefsUtil;
import org.eclipse.emf.common.util.WrappedException;
/**
* @author Andre Dietisheim
*/
public class CDOResourceDefImplTest extends AbstractCDOTest
{
private static final String TEST_RESOURCE = "/test1";
public void testGetOrCreateResourceCreatesIfResourceDoesNotExist()
{
CDOSessionDef cdoSessionDef = //
CDODefsUtil.createSessionDef( //
IRepositoryConfig.REPOSITORY_NAME, //
CDODefsUtil.createEagerPackageRegistryDef(), //
Net4jDefsUtil.createTCPConnectorDef(Net4j.TCP.CONNECTOR_HOST));
CDOResourceDef resourceDef = CDODefsUtil.createCDOResourceDef(CDODefsUtil.createCDOTransactionDef(cdoSessionDef));
resourceDef.setResourceMode(ResourceMode.GET_OR_CREATE);
resourceDef.setPath(TEST_RESOURCE);
CDOResource cdoResource = (CDOResource)resourceDef.getInstance();
assertNotNull(cdoResource);
// clean up
CDOTransaction transaction = (CDOTransaction)resourceDef.getCdoTransaction().getInstance();
transaction.getSession().close();
}
public void testGetResourceFailsIfDoesExist()
{
CDOSessionDef cdoSessionDef = //
CDODefsUtil.createSessionDef( //
IRepositoryConfig.REPOSITORY_NAME, //
CDODefsUtil.createEagerPackageRegistryDef(), //
Net4jDefsUtil.createTCPConnectorDef(Net4j.TCP.CONNECTOR_HOST));
CDOResourceDef resourceDef = CDODefsUtil.createCDOResourceDef(//
CDODefsUtil.createCDOTransactionDef(cdoSessionDef));
resourceDef.setResourceMode(ResourceMode.GET);
resourceDef.setPath(TEST_RESOURCE);
try
{
resourceDef.getInstance();
fail("Exception expected!");
}
catch (WrappedException e)
{
assertEquals(true, e.getCause().getClass() == InvalidURIException.class);
}
finally
{
// clean up
CDOTransaction transaction = (CDOTransaction)resourceDef.getCdoTransaction().getInstance();
transaction.getSession().close();
}
}
}