diff options
author | Eike Stepper | 2019-02-03 08:37:04 +0000 |
---|---|---|
committer | Eike Stepper | 2019-02-03 08:37:04 +0000 |
commit | 9b86d2e358a5d6785be4cf1c4502fcde0f5406c0 (patch) | |
tree | 757c7a05c79ea03dbcba7cd7de92ee32ff023d8d /plugins/org.eclipse.emf.cdo.tests/src/org | |
parent | 5a214bcbdf877c8f9bcca90ad5d1d09ede54fc05 (diff) | |
download | cdo-9b86d2e358a5d6785be4cf1c4502fcde0f5406c0.tar.gz cdo-9b86d2e358a5d6785be4cf1c4502fcde0f5406c0.tar.xz cdo-9b86d2e358a5d6785be4cf1c4502fcde0f5406c0.zip |
[544075] Add setBasename() and setExtension() methods to CDOResourceNode
https://bugs.eclipse.org/bugs/show_bug.cgi?id=544075
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org')
2 files changed, 125 insertions, 23 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ResourceTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ResourceTest.java index 6e3e3630b5..ffe071c98a 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ResourceTest.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ResourceTest.java @@ -2218,6 +2218,88 @@ public class ResourceTest extends AbstractCDOTest } } + public void testNameChecks() + { + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(); + CDOResource resource1 = transaction.createResource(getResourcePath("/my/resource1")); + + assertEquals("resource1", resource1.getName()); + assertEquals("resource1", resource1.getBasename()); + assertEquals("", resource1.getExtension()); + + try + { + resource1.setName("/resource1"); + fail("IllegalArgumentException expected"); + } + catch (IllegalArgumentException expected) + { + // SUCCESS + } + + resource1.setExtension("tar.gz"); + assertEquals("resource1.tar.gz", resource1.getName()); + assertEquals("resource1", resource1.getBasename()); + assertEquals("tar.gz", resource1.getExtension()); + + resource1.setBasename("model"); + assertEquals("model.tar.gz", resource1.getName()); + assertEquals("model", resource1.getBasename()); + assertEquals("tar.gz", resource1.getExtension()); + + try + { + resource1.setBasename("model.xyz"); + fail("IllegalArgumentException expected"); + } + catch (IllegalArgumentException expected) + { + // SUCCESS + } + + resource1.setExtension(""); + assertEquals("model", resource1.getName()); + assertEquals("model", resource1.getBasename()); + assertEquals("", resource1.getExtension()); + + resource1.setExtension("ecore"); + resource1.setBasename(""); + assertEquals(".ecore", resource1.getName()); + assertEquals("", resource1.getBasename()); + assertEquals("ecore", resource1.getExtension()); + + try + { + resource1.setName(null); + fail("IllegalArgumentException expected"); + } + catch (IllegalArgumentException expected) + { + // SUCCESS + } + + try + { + resource1.setName(""); + fail("IllegalArgumentException expected"); + } + catch (IllegalArgumentException expected) + { + // SUCCESS + } + + try + { + resource1.setName("."); + fail("IllegalArgumentException expected"); + } + catch (IllegalArgumentException expected) + { + // SUCCESS + } + } + /** * @author Eike Stepper */ diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_334995_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_334995_Test.java index 79ea70ff09..873eddf9d4 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_334995_Test.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_334995_Test.java @@ -18,6 +18,8 @@ import org.eclipse.emf.cdo.tests.AbstractCDOTest; import org.eclipse.emf.cdo.transaction.CDOTransaction; import org.eclipse.emf.cdo.util.CommitException; +import org.eclipse.emf.ecore.resource.Resource; + import java.util.Map.Entry; /** @@ -30,37 +32,55 @@ public class Bugzilla_334995_Test extends AbstractCDOTest /** * The following test seems obsolete because (as of bug xxxxxx) no local changes can create resource duplicates. */ - public void _test() throws CommitException + public void testURIClash() throws CommitException { - CDOID resourceID = persistResources("/res1")[0]; + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(); + CDOResource resourceA = transaction.createResource(getResourcePath("/resA")); + resourceA.getContents().add(getModel1Factory().createCustomer()); + transaction.commit(); + System.out.println("Persisted resource: " + resourceA); - { - CDOSession session = openSession(); - CDOTransaction transaction = session.openTransaction(); + CDOSession session2 = openSession(); + CDOTransaction transaction2 = session2.openTransaction(); + CDOResource resourceB2 = transaction2.createResource(getResourcePath("/resB")); + resourceB2.getContents().add(getModel1Factory().createSupplier()); - CDOResource resource = transaction.createResource(getResourcePath("/res1")); - msg("New resource: " + resource); - msg("newObjects:"); + resourceA.setName("resB"); + commitAndSync(transaction, transaction2); - for (Entry<CDOID, CDOObject> entry : transaction.getNewObjects().entrySet()) - { - msg(" " + entry + ", state: " + entry.getValue().cdoState()); - assertNew(entry.getValue(), transaction); - } + System.out.println("newObjects:"); + for (Entry<CDOID, CDOObject> entry : transaction2.getNewObjects().entrySet()) + { + System.out.println(" " + entry + ", state: " + entry.getValue().cdoState()); + assertNew(entry.getValue(), transaction2); + } - // Fetch the persisted resource that has the same URI - CDOResource resource1 = (CDOResource)transaction.getObject(resourceID); - msg("Persisted resource: " + resource1); + System.out.println("resources:"); + for (Resource resource : transaction2.getResourceSet().getResources()) + { + System.out.println(" " + resource); + } - msg("newObjects:"); - for (Entry<CDOID, CDOObject> entry : transaction.getNewObjects().entrySet()) - { - msg(" " + entry + ", state: " + entry.getValue().cdoState()); - assertNew(entry.getValue(), transaction); - } + // Fetch the persisted resource that has the same URI + CDOResource resourceA2 = (CDOResource)transaction2.getObject(resourceA.cdoID()); + System.out.println("Remote resource: " + resourceA2); + System.out.println("Local resource: " + resourceB2); - transaction.commit(); + System.out.println("newObjects:"); + for (Entry<CDOID, CDOObject> entry : transaction2.getNewObjects().entrySet()) + { + System.out.println(" " + entry + ", state: " + entry.getValue().cdoState()); + assertNew(entry.getValue(), transaction2); } + + System.out.println("resources:"); + for (Resource resource : transaction2.getResourceSet().getResources()) + { + System.out.println(" " + resource); + } + + transaction2.commit(); } public void testRename() throws CommitException |