Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2019-09-13 04:47:28 +0000
committerEike Stepper2019-09-13 05:57:29 +0000
commit2810fad121cd67e87a0d7c39abdac9ba52e4e654 (patch)
tree5d5414b45b8f1231b8d92f2d6224f07f84344db7 /plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo
parentbb3f3014e66f0c5abf5edef30a4fba503650387c (diff)
downloadcdo-2810fad121cd67e87a0d7c39abdac9ba52e4e654.tar.gz
cdo-2810fad121cd67e87a0d7c39abdac9ba52e4e654.tar.xz
cdo-2810fad121cd67e87a0d7c39abdac9ba52e4e654.zip
[544575] CDOServerExporter should consider "null" as value for lists
https://bugs.eclipse.org/bugs/show_bug.cgi?id=544575
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BackupTest.java294
1 files changed, 49 insertions, 245 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BackupTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BackupTest.java
index e8fbd12396..7d2ff5ffe1 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BackupTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/BackupTest.java
@@ -31,8 +31,7 @@ import org.eclipse.emf.cdo.tests.model3.File;
import org.eclipse.emf.cdo.tests.model3.Image;
import org.eclipse.emf.cdo.tests.model3.Point;
import org.eclipse.emf.cdo.tests.model3.Polygon;
-import org.eclipse.emf.cdo.tests.model5.Doctor;
-import org.eclipse.emf.cdo.tests.model5.TestFeatureMap;
+import org.eclipse.emf.cdo.tests.model3.PolygonWithDuplicates;
import org.eclipse.emf.cdo.tests.model6.UnsettableAttributes;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
import org.eclipse.emf.cdo.util.CDOUtil;
@@ -75,197 +74,40 @@ public class BackupTest extends AbstractCDOTest
super.doTearDown();
}
- public void testExport() throws Exception
+ private Customer initExtResource(ResourceSet resourceSet)
{
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/res1"));
- resource.getContents().add(createCustomer("Eike"));
- transaction.commit();
- session.close();
-
- InternalRepository repo1 = getRepository();
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xmi", new XMIResourceFactoryImpl());
+ Resource extResource = resourceSet.createResource(URI.createURI("ext.xmi"));
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- CDOServerExporter.XML exporter = new CDOServerExporter.XML(repo1);
- exporter.exportRepository(baos);
+ Customer customer = getModel1Factory().createCustomer();
+ extResource.getContents().add(customer);
+ return customer;
}
- public void testExportDate() throws Exception
+ private Customer createCustomer(String name)
{
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/res1"));
- PurchaseOrder purchaseOrder = getModel1Factory().createPurchaseOrder();
- purchaseOrder.setDate(new Date(1234567));
- resource.getContents().add(purchaseOrder);
- transaction.commit();
- session.close();
-
- InternalRepository repo1 = getRepository();
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- CDOServerExporter.XML exporter = new CDOServerExporter.XML(repo1);
- exporter.exportRepository(baos);
+ Customer customer = getModel1Factory().createCustomer();
+ customer.setName(name);
+ return customer;
}
- public void testExportBlob() throws Exception
+ private SalesOrder createSalesOrder(Customer customer)
{
- InputStream blobStream = null;
-
- try
- {
- blobStream = OM.BUNDLE.getInputStream("uml2/Ecore.uml");
- CDOBlob blob = new CDOBlob(blobStream);
-
- Image image = getModel3Factory().createImage();
- image.setWidth(320);
- image.setHeight(200);
- image.setData(blob);
-
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/res1"));
- resource.getContents().add(image);
- transaction.commit();
- }
- finally
- {
- IOUtil.close(blobStream);
- }
-
- InternalRepository repo1 = getRepository();
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- CDOServerExporter.XML exporter = new CDOServerExporter.XML(repo1);
- exporter.exportRepository(baos);
+ SalesOrder salesOrder = getModel1Factory().createSalesOrder();
+ salesOrder.setId(4711);
+ salesOrder.setCustomer(customer);
+ return salesOrder;
}
- public void testExportClob() throws Exception
+ private Polygon createPoligon(Point... points)
{
- InputStream clobStream = null;
-
- try
- {
- clobStream = OM.BUNDLE.getInputStream("uml2/Ecore.uml");
- CDOClob clob = new CDOClob(new InputStreamReader(clobStream));
-
- File file = getModel3Factory().createFile();
- file.setName("Ecore.uml");
- file.setData(clob);
-
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/res1"));
- resource.getContents().add(file);
- transaction.commit();
- }
- finally
+ Polygon polygon = getModel3Factory().createPolygon();
+ for (Point point : points)
{
- IOUtil.close(clobStream);
+ polygon.getPoints().add(point);
}
- InternalRepository repo1 = getRepository();
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- CDOServerExporter.XML exporter = new CDOServerExporter.XML(repo1);
- exporter.exportRepository(baos);
- }
-
- public void testExportByteArray() throws Exception
- {
- UnsettableAttributes object = getModel6Factory().createUnsettableAttributes();
- object.setAttrByteArray(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -2, -3, -128, 127 });
-
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/res1"));
- resource.getContents().add(object);
- transaction.commit();
-
- InternalRepository repo1 = getRepository();
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- CDOServerExporter.XML exporter = new CDOServerExporter.XML(repo1);
- exporter.exportRepository(baos);
- }
-
- public void testExportNIL() throws Exception
- {
- Unsettable1 object = getModel2Factory().createUnsettable1();
- object.setUnsettableString(null);
-
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/res1"));
- resource.getContents().add(object);
- transaction.commit();
-
- assertEquals(CDORevisionData.NIL, CDOUtil.getCDOObject(object).cdoRevision().data().get(getModel2Package().getUnsettable1_UnsettableString(), 0));
-
- InternalRepository repo1 = getRepository();
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- CDOServerExporter.XML exporter = new CDOServerExporter.XML(repo1);
- exporter.exportRepository(baos);
- }
-
- public void testExportCustomDataType() throws Exception
- {
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/res1"));
- resource.getContents().add(createPoligon(new Point(1, 2), new Point(3, 1), new Point(4, 5)));
- transaction.commit();
- session.close();
-
- InternalRepository repo1 = getRepository();
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- CDOServerExporter.XML exporter = new CDOServerExporter.XML(repo1);
- exporter.exportRepository(baos);
- }
-
- @Deprecated
- public void _testExportFeatureMap() throws Exception
- {
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/res1"));
-
- addFeatureMap(resource);
-
- transaction.commit();
- session.close();
-
- InternalRepository repo1 = getRepository();
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- CDOServerExporter.XML exporter = new CDOServerExporter.XML(repo1);
- exporter.exportRepository(baos);
- }
-
- public void testExportExternalReference() throws Exception
- {
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/res1"));
-
- ResourceSet resourceSet = transaction.getResourceSet();
- Customer customer = initExtResource(resourceSet);
-
- SalesOrder salesOrder = getModel1Factory().createSalesOrder();
- salesOrder.setCustomer(customer);
- resource.getContents().add(salesOrder);
-
- transaction.commit();
- session.close();
-
- InternalRepository repo1 = getRepository();
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- CDOServerExporter.XML exporter = new CDOServerExporter.XML(repo1);
- exporter.exportRepository(baos);
+ return polygon;
}
private void useAfterImport(String repoName) throws CommitException
@@ -507,32 +349,6 @@ public class BackupTest extends AbstractCDOTest
}
@CleanRepositoriesBefore(reason = "Inactive repository required")
- @Deprecated
- public void _testImportFeatureMap() throws Exception
- {
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/res1"));
-
- addFeatureMap(resource);
-
- transaction.commit();
- session.close();
-
- InternalRepository repo1 = getRepository();
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- CDOServerExporter.XML exporter = new CDOServerExporter.XML(repo1);
- exporter.exportRepository(baos);
-
- InternalRepository repo2 = getRepository("repo2", false);
-
- ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
- CDOServerImporter.XML importer = new CDOServerImporter.XML(repo2);
- importer.importRepository(bais);
- }
-
- @CleanRepositoriesBefore(reason = "Inactive repository required")
public void testImportExternalReference() throws Exception
{
CDOSession session = openSession();
@@ -613,54 +429,42 @@ public class BackupTest extends AbstractCDOTest
});
}
- private Customer initExtResource(ResourceSet resourceSet)
+ @CleanRepositoriesBefore(reason = "Inactive repository required")
+ public void testImportNullListElement() throws Exception
{
- resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xmi", new XMIResourceFactoryImpl());
- Resource extResource = resourceSet.createResource(URI.createURI("ext.xmi"));
-
- Customer customer = getModel1Factory().createCustomer();
- extResource.getContents().add(customer);
- return customer;
- }
+ CDOSession session = openSession();
+ CDOTransaction transaction = session.openTransaction();
+ CDOResource resource = transaction.createResource(getResourcePath("/res1"));
- private Customer createCustomer(String name)
- {
- Customer customer = getModel1Factory().createCustomer();
- customer.setName(name);
- return customer;
- }
+ PolygonWithDuplicates polygon = getModel3Factory().createPolygonWithDuplicates();
+ polygon.getPoints().add(new Point(1, 2));
+ polygon.getPoints().add(null);
+ polygon.getPoints().add(new Point(3, 4));
+ resource.getContents().add(polygon);
- private SalesOrder createSalesOrder(Customer customer)
- {
- SalesOrder salesOrder = getModel1Factory().createSalesOrder();
- salesOrder.setId(4711);
- salesOrder.setCustomer(customer);
- return salesOrder;
- }
+ transaction.commit();
+ session.close();
- private Polygon createPoligon(Point... points)
- {
- Polygon polygon = getModel3Factory().createPolygon();
- for (Point point : points)
- {
- polygon.getPoints().add(point);
- }
+ InternalRepository repo1 = getRepository();
- return polygon;
- }
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ CDOServerExporter.XML exporter = new CDOServerExporter.XML(repo1);
+ exporter.exportRepository(baos);
- private void addFeatureMap(CDOResource resource)
- {
- Doctor doctor1 = getModel5Factory().createDoctor();
- Doctor doctor2 = getModel5Factory().createDoctor();
+ InternalRepository repo2 = getRepository("repo2", false);
- resource.getContents().add(doctor1);
- resource.getContents().add(doctor2);
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+ CDOServerImporter.XML importer = new CDOServerImporter.XML(repo2);
+ importer.importRepository(bais);
- TestFeatureMap featureMap = getModel5Factory().createTestFeatureMap();
- featureMap.getPeople().add(getModel5Package().getTestFeatureMap_Doctors(), doctor1);
- featureMap.getPeople().add(getModel5Package().getTestFeatureMap_Doctors(), doctor2);
+ useAfterImport("repo2");
- resource.getContents().add(featureMap);
+ CDOSession session2 = openSession("repo2");
+ CDOView view2 = session2.openView();
+ CDOResource resource2 = view2.getResource(getResourcePath("/res1"));
+ PolygonWithDuplicates polygon2 = (PolygonWithDuplicates)resource2.getContents().get(0);
+ assertEquals(new Point(1, 2), polygon2.getPoints().get(0));
+ assertEquals(null, polygon2.getPoints().get(1));
+ assertEquals(new Point(3, 4), polygon2.getPoints().get(2));
}
}

Back to the top