From 166b5afd0625ace5d17b0d4af4b1d20f782c2730 Mon Sep 17 00:00:00 2001 From: ribeaudc <ribeaudc> Date: Tue, 12 Aug 2008 12:58:23 +0000 Subject: [PATCH] [LMS-531] change: - Complete 'DataStructureV1_1Test'. SVN: 7823 --- .../systemsx/cisd/bds/DataStructureV1_1.java | 7 ++- .../cisd/bds/DataStructureV1_0Test.java | 9 ++-- .../cisd/bds/DataStructureV1_1Test.java | 54 +++++++++++++++++++ .../cisd/bds/SampleWithOwnerTest.java | 4 +- .../bds/hcs/HCSDataStructureTestV1_0.java | 5 +- 5 files changed, 69 insertions(+), 10 deletions(-) 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 2c55cacc25b..97944863da5 100644 --- a/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_1.java +++ b/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_1.java @@ -48,7 +48,7 @@ public final class DataStructureV1_1 extends DataStructureV1_0 * Returns the sample. * <p> * For backward compatibility, loads a {@link Sample} when no - * <code>SampleWithOwner.GROUP_CODE</code> node could be found in meta data directory. + * <code>SampleWithOwner.GROUP_CODE</code> node could be found in sample directory. * </p> * * @throws DataStructureException if the sample hasn't be loaded nor hasn't be set by @@ -59,7 +59,8 @@ public final class DataStructureV1_1 extends DataStructureV1_0 { assertOpenOrCreated(); final IDirectory metaDataDirectory = getMetaDataDirectory(); - if (metaDataDirectory.tryGetNode(SampleWithOwner.GROUP_CODE) == null) + final IDirectory sampleDir = metaDataDirectory.tryGetNode(Sample.FOLDER).tryAsDirectory(); + if (sampleDir.tryGetNode(SampleWithOwner.GROUP_CODE) == null) { return Sample.loadFrom(metaDataDirectory); } @@ -68,6 +69,8 @@ public final class DataStructureV1_1 extends DataStructureV1_0 /** * Sets the sample. Overwrites an already set or loaded value. + * + * @param sample Must be an instance of {@link SampleWithOwner}. */ @Override public final void setSample(final Sample sample) 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 2536d71c10e..243514abb9e 100644 --- a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_0Test.java +++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_0Test.java @@ -482,14 +482,15 @@ public final class DataStructureV1_0Test extends AbstractFileSystemTestCase private final void createExampleDataStructure() { - createExampleDataStructure(storage); + createExampleDataStructure(storage, new Version(1, 0)); } - public final static void createExampleDataStructure(final IStorage storage) + public final static void createExampleDataStructure(final IStorage storage, + final Version version) { storage.mount(); final IDirectory root = storage.getRoot(); - new Version(1, 0).saveTo(root); + version.saveTo(root); final IDirectory data = root.makeDirectory(DataStructureV1_0.DIR_DATA); final IDirectory originalDataDir = data.makeDirectory(DataStructureV1_0.DIR_ORIGINAL); originalDataDir.addKeyValuePair("file1", "This is my first file."); @@ -506,7 +507,7 @@ public final class DataStructureV1_0Test extends AbstractFileSystemTestCase storage.unmount(); } - private final static void createExampleChecksum(final IDirectory metaData) + final static void createExampleChecksum(final IDirectory metaData) { final IDirectory checksumDir = metaData.makeDirectory(ChecksumHandler.CHECKSUM_DIRECTORY); checksumDir.addKeyValuePair(DataStructureV1_0.DIR_ORIGINAL, 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 990d87867f8..b56bf8b4fa9 100644 --- a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_1Test.java +++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_1Test.java @@ -16,9 +16,14 @@ package ch.systemsx.cisd.bds; +import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertFalse; +import static org.testng.AssertJUnit.assertTrue; + import java.io.IOException; import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; import ch.systemsx.cisd.bds.storage.filesystem.FileStorage; import ch.systemsx.cisd.common.utilities.AbstractFileSystemTestCase; @@ -30,6 +35,8 @@ import ch.systemsx.cisd.common.utilities.AbstractFileSystemTestCase; */ public final class DataStructureV1_1Test extends AbstractFileSystemTestCase { + private static final Sample SAMPLE = new Sample("a", "CELL_PLATE", "b"); + private FileStorage storage; private DataStructureV1_1 dataStructure; @@ -47,4 +54,51 @@ public final class DataStructureV1_1Test extends AbstractFileSystemTestCase dataStructure = new DataStructureV1_1(storage); } + @Test + public void testGetVersion() + { + dataStructure.create(); + assertEquals(new Version(1, 1), dataStructure.getVersion()); + } + + @Test + public void testSetSample() + { + dataStructure.create(); + boolean fail = true; + try + { + dataStructure.setSample(SAMPLE); + } catch (final AssertionError ex) + { + fail = false; + } + assertFalse(fail); + dataStructure.setSample(new SampleWithOwner(SAMPLE, "", + SampleWithOwnerTest.DATABASE_INSTANCE_CODE)); + } + + @Test + public final void testGetSample() + { + dataStructure.create(); + final SampleWithOwner sampleWithOwner = + new SampleWithOwner(SAMPLE, "", SampleWithOwnerTest.DATABASE_INSTANCE_CODE); + dataStructure.setSample(sampleWithOwner); + final Sample sample = dataStructure.getSample(); + assertTrue(sample instanceof SampleWithOwner); + final String databaseInstanceCode = sampleWithOwner.getDatabaseInstanceCode(); + assertTrue(databaseInstanceCode.length() > 0); + assertEquals(databaseInstanceCode, ((SampleWithOwner) sample).getDatabaseInstanceCode()); + } + + @Test + public final void testBackwardCompatible() + { + DataStructureV1_0Test.createExampleDataStructure(storage, new Version(1, 1)); + dataStructure.open(); + final Sample sample = dataStructure.getSample(); + assertFalse(sample instanceof 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 b25608185bd..086b59dd8d4 100644 --- a/bds/sourceTest/java/ch/systemsx/cisd/bds/SampleWithOwnerTest.java +++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/SampleWithOwnerTest.java @@ -40,9 +40,9 @@ public final class SampleWithOwnerTest extends AbstractFileSystemTestCase private static final String CODE = "code"; - private static final String DATABASE_INSTANCE_CODE = "DB1"; + static final String DATABASE_INSTANCE_CODE = "DB1"; - private static final String GROUP_CODE = "G1"; + static final String GROUP_CODE = "G1"; @Test public final void testConstructor() diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/HCSDataStructureTestV1_0.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/HCSDataStructureTestV1_0.java index edc1f4e28fb..9d3de5dc12f 100644 --- a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/HCSDataStructureTestV1_0.java +++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/HCSDataStructureTestV1_0.java @@ -27,13 +27,14 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import ch.systemsx.cisd.bds.DataStructureLoader; -import ch.systemsx.cisd.bds.DataStructureV1_0Test; import ch.systemsx.cisd.bds.DataStructureV1_0; +import ch.systemsx.cisd.bds.DataStructureV1_0Test; import ch.systemsx.cisd.bds.Format; import ch.systemsx.cisd.bds.FormatParameter; import ch.systemsx.cisd.bds.IDataStructure; import ch.systemsx.cisd.bds.IFormattedData; import ch.systemsx.cisd.bds.Utilities; +import ch.systemsx.cisd.bds.Version; import ch.systemsx.cisd.bds.exception.DataStructureException; import ch.systemsx.cisd.bds.storage.filesystem.FileStorage; import ch.systemsx.cisd.common.utilities.AbstractFileSystemTestCase; @@ -100,7 +101,7 @@ public final class HCSDataStructureTestV1_0 extends AbstractFileSystemTestCase { // Creating... dataStructure.create(); - DataStructureV1_0Test.createExampleDataStructure(storage); + DataStructureV1_0Test.createExampleDataStructure(storage, new Version(1, 0)); setFormatAndFormatParameters(); dataStructure.close(); // And loading... -- GitLab