From 714090ce422b68bc15f13f76459d9cac7cacabd2 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Thu, 5 Oct 2017 07:50:44 +0000 Subject: [PATCH] SSDM-5639: TarBasedPathInfoProviderTest refactored. h5ar file added to example. tests added. SVN: 38793 --- .../ds1/data.h5ar | Bin 0 -> 16184 bytes .../ds1/data/hello.txt | 1 + .../ds1/data/sub/hello.txt | 1 + .../ds1/data/sub/some.txt | 1 + .../TarBasedPathInfoProviderTest.java | 47 +++++++++++++----- 5 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data.h5ar create mode 100644 datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data/hello.txt create mode 100644 datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data/sub/hello.txt create mode 100644 datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data/sub/some.txt diff --git a/datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data.h5ar b/datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data.h5ar new file mode 100644 index 0000000000000000000000000000000000000000..1622fd8035539495835ea8dd00033e1d589f3acd GIT binary patch literal 16184 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 literal 0 HcmV?d00001 diff --git a/datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data/hello.txt b/datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data/hello.txt new file mode 100644 index 00000000000..95d09f2b101 --- /dev/null +++ b/datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data/hello.txt @@ -0,0 +1 @@ +hello world \ No newline at end of file diff --git a/datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data/sub/hello.txt b/datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data/sub/hello.txt new file mode 100644 index 00000000000..329c63806dd --- /dev/null +++ b/datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data/sub/hello.txt @@ -0,0 +1 @@ +hello test \ No newline at end of file diff --git a/datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data/sub/some.txt b/datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data/sub/some.txt new file mode 100644 index 00000000000..629ad124027 --- /dev/null +++ b/datastore_server/resource/test-data/TarBasedPathInfoProviderTest/ds1/data/sub/some.txt @@ -0,0 +1 @@ +This is some text for testing purpose. \ No newline at end of file diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/TarBasedPathInfoProviderTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/TarBasedPathInfoProviderTest.java index ddbb5cfa93b..f6859576727 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/TarBasedPathInfoProviderTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/TarBasedPathInfoProviderTest.java @@ -26,11 +26,11 @@ import org.testng.annotations.Test; import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase; import ch.systemsx.cisd.common.collection.SimpleComparator; -import ch.systemsx.cisd.common.filesystem.FileUtilities; import ch.systemsx.cisd.common.filesystem.tar.Tar; import ch.systemsx.cisd.common.logging.ISimpleLogger; import ch.systemsx.cisd.common.logging.MockLogger; import ch.systemsx.cisd.common.test.AssertionUtil; +import ch.systemsx.cisd.openbis.common.io.hierarchical_content.H5FolderFlags; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetPathInfo; /** @@ -38,6 +38,9 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetPathInfo; */ public class TarBasedPathInfoProviderTest extends AbstractFileSystemTestCase { + private static final File TEST_DATA_FOLDER = new File("../datastore_server/resource/test-data/" + + TarBasedPathInfoProviderTest.class.getSimpleName()); + private static final SimpleComparator<DataSetPathInfo, String> COMPARATOR = new SimpleComparator<DataSetPathInfo, String>() { @Override @@ -51,23 +54,19 @@ public class TarBasedPathInfoProviderTest extends AbstractFileSystemTestCase private TarBasedPathInfoProvider pathInfoProvider; + private File tarFile; + @BeforeMethod public void prepareExample() throws Exception { logger = new MockLogger(); - File dataSet = new File(workingDirectory, "ds1"); - File data = new File(dataSet, "data"); - File subFolder = new File(data, "sub"); - subFolder.mkdirs(); - FileUtilities.writeToFile(new File(subFolder, "hello.txt"), "hello test"); - FileUtilities.writeToFile(new File(subFolder, "some.txt"), "This is some text for testing purpose."); - FileUtilities.writeToFile(new File(data, "hello.txt"), "hello world"); - File tarFile = new File(workingDirectory, "data.tar"); + tarFile = new File(workingDirectory, "data.tar"); Tar tar = null; try { tar = new Tar(tarFile); - tar.add(data, dataSet.getPath().length()); + File file = new File(TEST_DATA_FOLDER, "ds1"); + tar.add(file, file.getPath().length()); } finally { if (tar != null) @@ -104,9 +103,9 @@ public class TarBasedPathInfoProviderTest extends AbstractFileSystemTestCase assertPathInfo("data/sub/hello.txt[hello.txt, 10, 3d4448e7]", children.get(0)); assertPathInfo("data/sub/some.txt[some.txt, 38, 2f7b8cfb]", children.get(1)); - AssertionUtil.assertContains("INFO: Reading statistics for input stream: 59 bytes in 7 chunks took < 1sec.", + AssertionUtil.assertContains("INFO: Reading statistics for input stream: 15.86 KB in 1626 chunks took < 1sec.", logger.toString()); - AssertionUtil.assertContains("INFO: Writing statistics for output stream: 59 bytes in 7 chunks took < 1sec.", + AssertionUtil.assertContains("INFO: Writing statistics for output stream: 15.86 KB in 1626 chunks took < 1sec.", logger.toString()); assertEquals(2, children.size()); } @@ -131,6 +130,30 @@ public class TarBasedPathInfoProviderTest extends AbstractFileSystemTestCase assertPathInfo("data/sub/hello.txt[hello.txt, 10, 3d4448e7]", pathInfos.get(0)); assertEquals(1, pathInfos.size()); } + + @Test + public void testHdf5FileAsFile() + { + DataSetPathInfo pathInfo = pathInfoProvider.tryGetPathInfoByRelativePath("data.h5ar"); + + assertEquals(false, pathInfo.isDirectory()); + assertPathInfo("data.h5ar[data.h5ar, 16184, 83bcffb0]", pathInfo); + } + + @Test + public void testHdf5FileAsFolder() + { + List<H5FolderFlags> flags = Arrays.asList(new H5FolderFlags("", false, true)); + TarBasedPathInfoProvider provider = new TarBasedPathInfoProvider(tarFile, flags, 10, logger); + + DataSetPathInfo parent = provider.tryGetPathInfoByRelativePath("data.h5ar/data"); + List<DataSetPathInfo> children = provider.listChildrenPathInfos(parent); + + Collections.sort(children, COMPARATOR); + assertPathInfo("data.h5ar/data/hello.txt[hello.txt, 11, d4a1185]", children.get(0)); + assertPathInfo("data.h5ar/data/sub[sub, 0, 0]", children.get(1)); + assertEquals(2, children.size()); + } private void assertPathInfo(String expectedPathInfo, DataSetPathInfo pathInfo) { -- GitLab