From 1bb91bcd36918b25025ac6d69efea0b5df14cdae Mon Sep 17 00:00:00 2001
From: ribeaudc <ribeaudc>
Date: Wed, 13 Aug 2008 09:52:41 +0000
Subject: [PATCH] [LMS-531] change: - 'database_instance_code' to
 'database_instance' (same as experiment identifier). - 'SampleWithOwner'
 should override 'equals' and 'hashCode' methods. add: -
 'instance_global_code'.

SVN: 7855
---
 .../cisd/bds/AbstractDataStructure.java       |   6 +-
 .../systemsx/cisd/bds/DataStructureV1_0.java  |   2 +-
 .../systemsx/cisd/bds/DataStructureV1_1.java  |  35 +++++-
 .../cisd/bds/ExperimentIdentifier.java        |   2 +
 .../java/ch/systemsx/cisd/bds/Sample.java     |   4 +-
 .../ch/systemsx/cisd/bds/SampleWithOwner.java | 116 ++++++++++++++----
 .../cisd/bds/DataStructureV1_0Test.java       |  11 --
 .../cisd/bds/DataStructureV1_1Test.java       |  54 +++++++-
 .../cisd/bds/SampleWithOwnerTest.java         |  35 ++++--
 integration-tests/run.sh                      |   3 +-
 10 files changed, 206 insertions(+), 62 deletions(-)

diff --git a/bds/source/java/ch/systemsx/cisd/bds/AbstractDataStructure.java b/bds/source/java/ch/systemsx/cisd/bds/AbstractDataStructure.java
index ea17fb02c90..fdeaa6fe616 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/AbstractDataStructure.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/AbstractDataStructure.java
@@ -121,7 +121,7 @@ abstract class AbstractDataStructure implements IDataStructure, IDataStructureHa
         mountStorage();
         performOpening();
         Version loadedVersion = Version.loadFrom(root);
-        if (loadedVersion.isBackwardsCompatibleWith(getVersion()) == false)
+        if (getVersion().isBackwardsCompatibleWith(loadedVersion) == false)
         {
             throw new DataStructureException("Version of loaded data structure is " + loadedVersion
                     + " which is not backward compatible with " + getVersion());
@@ -134,8 +134,8 @@ abstract class AbstractDataStructure implements IDataStructure, IDataStructureHa
         assertOpenOrCreated();
         getVersion().saveTo(root);
         performClosing();
-        //TODO 2008-07-03, Bernd Rinn: make this optional
-        //assertValid();
+        // TODO 2008-07-03, Bernd Rinn: make this optional
+        // assertValid();
         storage.unmount();
     }
 }
diff --git a/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_0.java b/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_0.java
index 654d46bbe80..5fb136cd34f 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_0.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_0.java
@@ -335,7 +335,7 @@ public class DataStructureV1_0 extends AbstractDataStructure implements IDataStr
     }
 
     @Override
-    public final void performClosing()
+    public void performClosing()
     {
         super.performClosing();
         final IDirectory metaDataDirectory = getMetaDataDirectory();
diff --git a/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_1.java b/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_1.java
index 97944863da5..89e62b5df89 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_1.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_1.java
@@ -34,6 +34,26 @@ public final class DataStructureV1_1 extends DataStructureV1_0
         super(storage);
     }
 
+    /**
+     * Returns the sample with its owner (a group or a database instance).
+     * <p>
+     * This is only available in version 1.1. Using this method with data structure version 1.0
+     * throws an exception.
+     * </p>
+     * 
+     * @throws DataStructureException if trying to use this method with data structure of version
+     *             1.0.
+     */
+    public final SampleWithOwner getSampleWithOwner()
+    {
+        final Sample sample = getSample();
+        if (sample instanceof SampleWithOwner == false)
+        {
+            throw new DataStructureException("Can not be used in data structure v1.0.");
+        }
+        return (SampleWithOwner) sample;
+    }
+
     //
     // DataStructureV1_0
     //
@@ -53,6 +73,7 @@ public final class DataStructureV1_1 extends DataStructureV1_0
      * 
      * @throws DataStructureException if the sample hasn't be loaded nor hasn't be set by
      *             {@link #setSample(Sample)}.
+     * @return a {@link Sample} or {@link SampleWithOwner} (if v1.1).
      */
     @Override
     public final Sample getSample()
@@ -78,7 +99,19 @@ public final class DataStructureV1_1 extends DataStructureV1_0
         assert sample != null : "Unspecified sample.";
         assert sample instanceof SampleWithOwner : "Must be an instance of SampleWithOwner.";
         assertOpenOrCreated();
-        ((SampleWithOwner) sample).saveTo(getMetaDataDirectory());
+        sample.saveTo(getMetaDataDirectory());
     }
 
+    @Override
+    public final void performClosing()
+    {
+        if (getSample() instanceof SampleWithOwner)
+        {
+            super.performClosing();
+        } else
+        {
+            throw new DataStructureException(
+                    "The owner (group or database instance) has not been set.");
+        }
+    }
 }
diff --git a/bds/source/java/ch/systemsx/cisd/bds/ExperimentIdentifier.java b/bds/source/java/ch/systemsx/cisd/bds/ExperimentIdentifier.java
index 6494ed7ba4d..b927c633825 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/ExperimentIdentifier.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/ExperimentIdentifier.java
@@ -31,6 +31,8 @@ public class ExperimentIdentifier implements IStorable
 
     static final String INSTANCE_CODE = "instance_code";
 
+    static final String INSTANCE_GLOBAL_CODE = "instance_global_code";
+
     static final String GROUP_CODE = "group_code";
 
     static final String PROJECT_CODE = "project_code";
diff --git a/bds/source/java/ch/systemsx/cisd/bds/Sample.java b/bds/source/java/ch/systemsx/cisd/bds/Sample.java
index 3c149fbb7e8..a6c4c35e4a7 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/Sample.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/Sample.java
@@ -129,7 +129,7 @@ public class Sample implements IStorable
     //
 
     @Override
-    public final boolean equals(final Object obj)
+    public boolean equals(final Object obj)
     {
         if (obj == this)
         {
@@ -146,7 +146,7 @@ public class Sample implements IStorable
     }
 
     @Override
-    public final int hashCode()
+    public int hashCode()
     {
         final HashCodeBuilder builder = new HashCodeBuilder();
         builder.append(code);
diff --git a/bds/source/java/ch/systemsx/cisd/bds/SampleWithOwner.java b/bds/source/java/ch/systemsx/cisd/bds/SampleWithOwner.java
index 118de2b1da8..6ad1f29f6f3 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/SampleWithOwner.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/SampleWithOwner.java
@@ -16,6 +16,9 @@
 
 package ch.systemsx.cisd.bds;
 
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
 import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 
@@ -27,27 +30,33 @@ import ch.systemsx.cisd.bds.storage.IDirectory;
  */
 public final class SampleWithOwner extends Sample
 {
-    static final String GROUP_CODE = "group_code";
+    static final String GROUP_CODE = ExperimentIdentifier.GROUP_CODE;
+
+    static final String INSTANCE_CODE = ExperimentIdentifier.INSTANCE_CODE;
 
-    static final String DATABASE_INSTANCE_CODE = "database_instance_code";
+    static final String INSTANCE_GLOBAL_CODE = ExperimentIdentifier.INSTANCE_GLOBAL_CODE;
 
     private final String groupCode;
 
-    private final String databaseInstanceCode;
+    private final String instanceCode;
+
+    private final String instanceGlobalCode;
 
     /**
      * Creates an instance for the specified {@link Sample}, group code and database instance code
      * of the sample.
      * 
      * @param groupCode A non-<code>null</code> string of the group code. Could be empty.
-     * @param databaseInstanceCode A non-<code>null</code> string of the database instance code.
-     *            Could be empty.
+     * @param instanceCode A non-<code>null</code> string of the database instance code. Could
+     *            not be empty.
+     * @param instanceGlobalCode A non-<code>null</code> string of the database instance global
+     *            code (aka <i>UUID</i>). Could not be empty.
      */
-    public SampleWithOwner(final Sample sample, final String groupCode,
-            final String databaseInstanceCode)
+    public SampleWithOwner(final Sample sample, final String instanceGlobalCode,
+            final String instanceCode, final String groupCode)
     {
-        this(sample.getCode(), sample.getTypeCode(), sample.getTypeDescription(), groupCode,
-                databaseInstanceCode);
+        this(sample.getCode(), sample.getTypeCode(), sample.getTypeDescription(),
+                instanceGlobalCode, instanceCode, groupCode);
     }
 
     /**
@@ -55,26 +64,35 @@ public final class SampleWithOwner extends Sample
      * database instance code of the sample.
      * 
      * @param groupCode A non-<code>null</code> string of the group code. Could be empty.
-     * @param databaseInstanceCode A non-<code>null</code> string of the database instance code.
-     *            Could be empty.
+     * @param instanceCode A non-<code>null</code> string of the database instance code. Could
+     *            not be empty.
+     * @param instanceGlobalCode A non-<code>null</code> string of the database instance global
+     *            code (aka <i>UUID</i>). Could not be empty.
      */
     public SampleWithOwner(final String code, final String typeCode, final String typeDescription,
-            final String groupCode, final String databaseInstanceCode)
+            final String instanceGlobalCode, final String instanceCode, final String groupCode)
     {
         super(code, typeCode, typeDescription);
         assert groupCode != null : "Undefined group code.";
-        assert databaseInstanceCode != null : "Undefined database instance code.";
-        assertNonEmptyDatabaseInstanceCode(databaseInstanceCode);
+        assert instanceCode != null : "Undefined database instance code.";
+        assert instanceGlobalCode != null : "Undefined database instance global code.";
+        assertNonEmptyInstanceCodes(instanceGlobalCode, instanceCode);
+        this.instanceGlobalCode = instanceGlobalCode;
+        this.instanceCode = instanceCode;
         this.groupCode = groupCode;
-        this.databaseInstanceCode = databaseInstanceCode;
     }
 
-    private final static void assertNonEmptyDatabaseInstanceCode(final String databaseInstanceCode)
+    private final static void assertNonEmptyInstanceCodes(final String instanceGlobalCode,
+            final String instanceCode)
     {
-        if (databaseInstanceCode.length() == 0)
+        if (instanceCode.length() == 0)
         {
             throw new DataStructureException("Empty database instance code.");
         }
+        if (instanceGlobalCode.length() == 0)
+        {
+            throw new DataStructureException("Empty database instance global code.");
+        }
     }
 
     public final String getGroupCode()
@@ -82,9 +100,14 @@ public final class SampleWithOwner extends Sample
         return groupCode;
     }
 
-    public final String getDatabaseInstanceCode()
+    public final String getInstanceCode()
+    {
+        return instanceCode;
+    }
+
+    public final String getInstanceGlobalCode()
     {
-        return databaseInstanceCode;
+        return instanceGlobalCode;
     }
 
     //
@@ -104,9 +127,10 @@ public final class SampleWithOwner extends Sample
         final String code = Utilities.getTrimmedString(folder, CODE);
         final String typeCode = Utilities.getTrimmedString(folder, TYPE_CODE);
         final String groupCode = Utilities.getTrimmedString(folder, GROUP_CODE);
-        final String databaseInstanceCode =
-                Utilities.getTrimmedString(folder, DATABASE_INSTANCE_CODE);
-        return new SampleWithOwner(code, typeCode, typeDescription, groupCode, databaseInstanceCode);
+        final String instanceCode = Utilities.getTrimmedString(folder, INSTANCE_CODE);
+        final String instanceGlobalCode = Utilities.getTrimmedString(folder, INSTANCE_GLOBAL_CODE);
+        return new SampleWithOwner(code, typeCode, typeDescription, instanceGlobalCode,
+                instanceCode, groupCode);
     }
 
     @Override
@@ -115,20 +139,60 @@ public final class SampleWithOwner extends Sample
         super.saveTo(directory);
         final IDirectory folder = directory.makeDirectory(FOLDER);
         folder.addKeyValuePair(GROUP_CODE, groupCode);
-        folder.addKeyValuePair(DATABASE_INSTANCE_CODE, databaseInstanceCode);
+        folder.addKeyValuePair(INSTANCE_CODE, instanceCode);
+        folder.addKeyValuePair(INSTANCE_GLOBAL_CODE, instanceGlobalCode);
     }
 
     @Override
     public final String toString()
     {
         final ToStringBuilder builder = createToStringBuilder();
+        builder.append(INSTANCE_GLOBAL_CODE, instanceGlobalCode);
+        builder.append(INSTANCE_CODE, instanceCode);
         if (groupCode.length() > 0)
         {
             builder.append(GROUP_CODE, groupCode);
-        } else if (databaseInstanceCode.length() > 0)
-        {
-            builder.append(DATABASE_INSTANCE_CODE, databaseInstanceCode);
         }
         return builder.toString();
     }
+
+    @Override
+    public final boolean equals(final Object obj)
+    {
+        if (obj == this)
+        {
+            return true;
+        }
+        if (obj instanceof SampleWithOwner == false)
+        {
+            return false;
+        }
+        final SampleWithOwner that = (SampleWithOwner) obj;
+        final EqualsBuilder builder = new EqualsBuilder();
+        builder.append(that.getCode(), getCode());
+        if (groupCode.length() > 1)
+        {
+            builder.append(that.groupCode, groupCode);
+        } else
+        {
+            builder.append(that.instanceGlobalCode, instanceGlobalCode);
+        }
+        return builder.isEquals();
+    }
+
+    @Override
+    public final int hashCode()
+    {
+        final HashCodeBuilder builder = new HashCodeBuilder();
+        builder.append(getCode());
+        if (groupCode.length() > 1)
+        {
+            builder.append(groupCode);
+        } else
+        {
+            builder.append(instanceGlobalCode);
+        }
+        return builder.toHashCode();
+    }
+
 }
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_0Test.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_0Test.java
index 243514abb9e..2efb27119c9 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_0Test.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_0Test.java
@@ -401,17 +401,6 @@ public final class DataStructureV1_0Test extends AbstractFileSystemTestCase
         dataStructure.open();
     }
 
-    @Test
-    public void testOpenVersionV1_1()
-    {
-        createExampleDataStructure();
-        storage.mount();
-        final IDirectory root = storage.getRoot();
-        new Version(1, 1).saveTo(root);
-        storage.unmount();
-        dataStructure.open();
-    }
-
     @Test
     public void testOpenVersionV2_0()
     {
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_1Test.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_1Test.java
index b56bf8b4fa9..c1dbe11189c 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_1Test.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_1Test.java
@@ -19,12 +19,15 @@ package ch.systemsx.cisd.bds;
 import static org.testng.AssertJUnit.assertEquals;
 import static org.testng.AssertJUnit.assertFalse;
 import static org.testng.AssertJUnit.assertTrue;
+import static org.testng.AssertJUnit.fail;
 
 import java.io.IOException;
 
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
+import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.filesystem.FileStorage;
 import ch.systemsx.cisd.common.utilities.AbstractFileSystemTestCase;
 
@@ -74,8 +77,8 @@ public final class DataStructureV1_1Test extends AbstractFileSystemTestCase
             fail = false;
         }
         assertFalse(fail);
-        dataStructure.setSample(new SampleWithOwner(SAMPLE, "",
-                SampleWithOwnerTest.DATABASE_INSTANCE_CODE));
+        dataStructure.setSample(new SampleWithOwner(SAMPLE,
+                SampleWithOwnerTest.INSTANCE_GLOBAL_CODE, SampleWithOwnerTest.INSTANCE_CODE, ""));
     }
 
     @Test
@@ -83,22 +86,61 @@ public final class DataStructureV1_1Test extends AbstractFileSystemTestCase
     {
         dataStructure.create();
         final SampleWithOwner sampleWithOwner =
-                new SampleWithOwner(SAMPLE, "", SampleWithOwnerTest.DATABASE_INSTANCE_CODE);
+                new SampleWithOwner(SAMPLE, SampleWithOwnerTest.INSTANCE_GLOBAL_CODE,
+                        SampleWithOwnerTest.INSTANCE_CODE, "");
         dataStructure.setSample(sampleWithOwner);
         final Sample sample = dataStructure.getSample();
         assertTrue(sample instanceof SampleWithOwner);
-        final String databaseInstanceCode = sampleWithOwner.getDatabaseInstanceCode();
+        final String databaseInstanceCode = sampleWithOwner.getInstanceCode();
         assertTrue(databaseInstanceCode.length() > 0);
-        assertEquals(databaseInstanceCode, ((SampleWithOwner) sample).getDatabaseInstanceCode());
+        assertEquals(databaseInstanceCode, dataStructure.getSampleWithOwner().getInstanceCode());
+    }
+
+    @Test
+    public void testOpenVersionV1_0()
+    {
+        DataStructureV1_0Test.createExampleDataStructure(storage, new Version(1, 0));
+        storage.mount();
+        final IDirectory root = storage.getRoot();
+        new Version(1, 1).saveTo(root);
+        storage.unmount();
+        dataStructure.open();
     }
 
     @Test
     public final void testBackwardCompatible()
     {
-        DataStructureV1_0Test.createExampleDataStructure(storage, new Version(1, 1));
+        DataStructureV1_0Test.createExampleDataStructure(storage, new Version(1, 0));
         dataStructure.open();
         final Sample sample = dataStructure.getSample();
         assertFalse(sample instanceof SampleWithOwner);
+        try
+        {
+            dataStructure.getSampleWithOwner();
+            fail();
+        } catch (final DataStructureException e)
+        {
+            // Nothing to do here.
+        }
+    }
+
+    @Test
+    public final void testClose()
+    {
+        DataStructureV1_0Test.createExampleDataStructure(storage, new Version(1, 0));
+        dataStructure.open();
+        try
+        {
+            dataStructure.close();
+            fail();
+        } catch (final DataStructureException ex)
+        {
+            // Nothing to do here.
+        }
+        final SampleWithOwner sampleWithOwner =
+                new SampleWithOwner(SAMPLE, SampleWithOwnerTest.INSTANCE_GLOBAL_CODE,
+                        SampleWithOwnerTest.INSTANCE_CODE, "");
+        dataStructure.setSample(sampleWithOwner);
         dataStructure.close();
     }
 }
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/SampleWithOwnerTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/SampleWithOwnerTest.java
index 2b913a5c1c2..d00dd2605e3 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/SampleWithOwnerTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/SampleWithOwnerTest.java
@@ -40,7 +40,9 @@ public final class SampleWithOwnerTest extends AbstractFileSystemTestCase
 
     private static final String CODE = "code";
 
-    static final String DATABASE_INSTANCE_CODE = "DB1";
+    static final String INSTANCE_CODE = "DB1";
+
+    static final String INSTANCE_GLOBAL_CODE = "111-222";
 
     static final String GROUP_CODE = "G1";
 
@@ -50,7 +52,7 @@ public final class SampleWithOwnerTest extends AbstractFileSystemTestCase
         boolean fail = true;
         try
         {
-            new SampleWithOwner(CODE, TYPE_CODE, TYPE_DESCRIPTION, null, null);
+            new SampleWithOwner(CODE, TYPE_CODE, TYPE_DESCRIPTION, null, null, null);
         } catch (final AssertionError ex)
         {
             fail = false;
@@ -58,7 +60,15 @@ public final class SampleWithOwnerTest extends AbstractFileSystemTestCase
         assertEquals(false, fail);
         try
         {
-            new SampleWithOwner(CODE, TYPE_CODE, TYPE_DESCRIPTION, "", "");
+            new SampleWithOwner(CODE, TYPE_CODE, TYPE_DESCRIPTION, "", "", "");
+            fail();
+        } catch (final DataStructureException e)
+        {
+            // Nothing to do here.
+        }
+        try
+        {
+            new SampleWithOwner(CODE, TYPE_CODE, TYPE_DESCRIPTION, "", "", GROUP_CODE);
             fail();
         } catch (final DataStructureException e)
         {
@@ -66,7 +76,7 @@ public final class SampleWithOwnerTest extends AbstractFileSystemTestCase
         }
         try
         {
-            new SampleWithOwner(CODE, TYPE_CODE, TYPE_DESCRIPTION, GROUP_CODE, "");
+            new SampleWithOwner(CODE, TYPE_CODE, TYPE_DESCRIPTION, "", INSTANCE_CODE, GROUP_CODE);
             fail();
         } catch (final DataStructureException e)
         {
@@ -79,27 +89,30 @@ public final class SampleWithOwnerTest extends AbstractFileSystemTestCase
     {
         return new Object[][]
             {
-                { GROUP_CODE, DATABASE_INSTANCE_CODE },
-                { "", DATABASE_INSTANCE_CODE }, };
+                { INSTANCE_GLOBAL_CODE, INSTANCE_CODE, GROUP_CODE },
+                { INSTANCE_GLOBAL_CODE, INSTANCE_CODE, "" }, };
     }
 
     @Test(dataProvider = "getSampleData")
-    public final void testLoadFrom(final String groupCode, final String databaseInstanceCode)
+    public final void testLoadFrom(final String instanceGlobalCode, final String instanceCode,
+            final String groupCode)
     {
         final IDirectory directory = NodeFactory.createDirectoryNode(workingDirectory);
         final Sample sample =
-                new SampleWithOwner(CODE, TYPE_CODE, TYPE_DESCRIPTION, groupCode,
-                        databaseInstanceCode);
+                new SampleWithOwner(CODE, TYPE_CODE, TYPE_DESCRIPTION, instanceGlobalCode,
+                        instanceCode, groupCode);
         sample.saveTo(directory);
         final SampleWithOwner newSample = SampleWithOwner.loadFrom(directory);
         if (groupCode.length() > 0)
         {
             assertEquals(GROUP_CODE, newSample.getGroupCode());
-            assertEquals(DATABASE_INSTANCE_CODE, newSample.getDatabaseInstanceCode());
+            assertEquals(INSTANCE_CODE, newSample.getInstanceCode());
+            assertEquals(INSTANCE_GLOBAL_CODE, newSample.getInstanceGlobalCode());
         } else
         {
             assertEquals("", newSample.getGroupCode());
-            assertEquals(DATABASE_INSTANCE_CODE, newSample.getDatabaseInstanceCode());
+            assertEquals(INSTANCE_CODE, newSample.getInstanceCode());
+            assertEquals(INSTANCE_GLOBAL_CODE, newSample.getInstanceGlobalCode());
         }
     }
 }
diff --git a/integration-tests/run.sh b/integration-tests/run.sh
index c69db120496..dcaa9203085 100755
--- a/integration-tests/run.sh
+++ b/integration-tests/run.sh
@@ -654,7 +654,8 @@ function assert_correct_content_of_plate_3VCP1_in_store {
     assert_equals_as_in_file CELL_PLATE $metadata_dir/sample/type_code
     assert_equals_as_in_file 'Screening Plate' $metadata_dir/sample/type_description
     assert_equals_as_in_file CISD $metadata_dir/sample/group_code
-    assert_equals_as_in_file CISD $metadata_dir/sample/database_instance_code
+    assert_equals_as_in_file CISD $metadata_dir/sample/instance_code
+	assert_file_exists $metadata_dir/sample/instance_global_code
     # Experiment identifier
     assert_equals_as_in_file CISD $metadata_dir/experiment_identifier/instance_code
     assert_equals_as_in_file CISD $metadata_dir/experiment_identifier/group_code
-- 
GitLab