Skip to content
Snippets Groups Projects
Commit 166b5afd authored by ribeaudc's avatar ribeaudc
Browse files

[LMS-531] change: - Complete 'DataStructureV1_1Test'.

SVN: 7823
parent 646aa3a7
No related merge requests found
......@@ -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)
......
......@@ -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,
......
......@@ -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();
}
}
......@@ -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()
......
......@@ -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...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment