Skip to content
Snippets Groups Projects
Commit 7d2e214e authored by felmer's avatar felmer
Browse files

LMS-1485 more unit tests

SVN: 15474
parent 77124944
No related branches found
No related tags found
No related merge requests found
......@@ -34,6 +34,8 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.NewProperty;
class LcaMicDataSetPropertiesExtractor extends TimeSeriesDataSetPropertiesExtractor
{
static final String GROWTH_RATE = "GROWTH_RATE";
LcaMicDataSetPropertiesExtractor(Properties properties)
{
super(properties);
......@@ -49,7 +51,7 @@ class LcaMicDataSetPropertiesExtractor extends TimeSeriesDataSetPropertiesExtrac
throw new UserFailureException("Empty file: " + file);
}
String[] items = StringUtils.split(lines.get(0), " \t");
NewProperty growthRate = new NewProperty("GROWTH_RATE", items[items.length - 1]);
NewProperty growthRate = new NewProperty(GROWTH_RATE, items[items.length - 1]);
List<NewProperty> properties =
HeaderUtils.extractHeaderProperties(incomingDataSetPath, ignoreEmptyLines, true, true);
properties.add(growthRate);
......
......@@ -66,7 +66,7 @@ class LcaMicDataSetUploader extends AbstractDataSetUploader
super(dataSource, service, parameters);
}
public LcaMicDataSetUploader(ITimeSeriesDAO dao, IEncapsulatedOpenBISService service,
LcaMicDataSetUploader(ITimeSeriesDAO dao, IEncapsulatedOpenBISService service,
TimeSeriesDataSetUploaderParameters parameters)
{
super(dao, service, parameters);
......
/*
* Copyright 2010 ETH Zuerich, CISD
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package eu.basysbio.cisd.dss;
import static eu.basysbio.cisd.dss.HeaderUtils.TIME_SERIES_HEADER_PROPERTIES;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.testng.annotations.Test;
import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
import ch.systemsx.cisd.common.filesystem.FileUtilities;
import ch.systemsx.cisd.openbis.generic.shared.dto.NewProperty;
/**
*
*
* @author Franz-Josef Elmer
*/
public class LcaMicDataSetPropertiesExtractorTest extends AbstractFileSystemTestCase
{
static final String EXAMPLE =
"# Ma::MS::B1::NT::EX::T1::NC::GrowthRate::Value[h^(-1)]::LIN::BBA9001#A_S20090325-2::NC\t0.68\n"
+ "Time (s)\t"
+ "Ma::MS::B1::NT::EX::T1::NC::LcaMicCfd::Value[um]::LIN::BBA9001#A_S20090325-2::NC\t"
+ "Ma::MS::B1::NT::EX::T1::NC::LcaMicAbsFl::Mean[Au]::LIN::BBA9001#A_S20090325-2::NC\t"
+ "Ma::MS::B1::NT::EX::T1::NC::LcaMicAbsFl::Std[Au]::LIN::BBA9001#A_S20090325-2::NC\n";
@Test
public void test() throws IOException
{
File ds = new File(workingDirectory, "ds");
ds.mkdirs();
File file = new File(ds, "t.txt");
FileUtilities.writeToFile(file, EXAMPLE);
IDataSetPropertiesExtractor extractor =
new LcaMicDataSetPropertiesExtractor(new Properties());
List<NewProperty> props = extractor.extractDataSetProperties(ds);
assertEquals(TIME_SERIES_HEADER_PROPERTIES.length + 1, props.size());
Map<String, String> map = new HashMap<String, String>();
for (NewProperty property : props)
{
map.put(property.getPropertyCode(), property.getValue());
}
assertEquals("BBA9001#A_S20090325-2", map.get(TimeSeriesPropertyType.BI_ID.toString()));
assertEquals("B1", map.get(TimeSeriesPropertyType.BIOLOGICAL_REPLICATE_CODE.toString()));
assertEquals("NC", map.get(TimeSeriesPropertyType.CEL_LOC.toString()));
assertEquals("NC", map.get(TimeSeriesPropertyType.CG_LIST.toString()));
assertEquals("MS", map.get(TimeSeriesPropertyType.CULTIVATION_METHOD_EXPERIMENT_CODE.toString()));
assertEquals("Ma", map.get(TimeSeriesPropertyType.EXPERIMENT_CODE.toString()));
assertEquals("LIN", map.get(TimeSeriesPropertyType.SCALE_LIST.toString()));
assertEquals("T1", map.get(TimeSeriesPropertyType.TECHNICAL_REPLICATE_CODE_LIST.toString()));
assertEquals("0", map.get(TimeSeriesPropertyType.TIME_POINT_LIST.toString()));
assertEquals("LcaMicAbsFl, LcaMicCfd", map.get(TimeSeriesPropertyType.TIME_SERIES_DATA_SET_TYPE.toString()));
assertEquals(null, map.get(TimeSeriesPropertyType.UPLOADER_EMAIL.toString()));
assertEquals("Mean[Au], Std[Au], Value[um]", map.get(TimeSeriesPropertyType.VALUE_TYPE_LIST.toString()));
assertEquals("0.68", map.get(LcaMicDataSetPropertiesExtractor.GROWTH_RATE));
}
}
/*
* Copyright 2010 ETH Zuerich, CISD
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package eu.basysbio.cisd.dss;
import java.io.File;
import java.io.FilenameFilter;
import java.util.List;
import java.util.Properties;
import org.jmock.Mockery;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
import ch.systemsx.cisd.common.filesystem.FileUtilities;
import ch.systemsx.cisd.etlserver.cifex.CifexExtractorHelper;
import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
/**
*
*
* @author Franz-Josef Elmer
*/
public class LcaMicDataSetUploaderTest extends AbstractFileSystemTestCase
{
private static FilenameFilter TXT_FILTER = new FilenameFilter()
{
public boolean accept(File dir, String name)
{
return name.endsWith(".txt");
}
};
private static FilenameFilter PROPERTIES_FILTER = new FilenameFilter()
{
public boolean accept(File dir, String name)
{
return name.equals(CifexExtractorHelper.REQUEST_PROPERTIES_FILE);
}
};
private Mockery context;
private ITimeSeriesDAO dao;
private IEncapsulatedOpenBISService service;
private LcaMicDataSetUploader uploader;
private IDropBoxFeeder feeder;
private File dropBox;
@BeforeMethod
public void beforeMethod()
{
context = new Mockery();
dao = context.mock(ITimeSeriesDAO.class);
service = context.mock(IEncapsulatedOpenBISService.class);
feeder = context.mock(IDropBoxFeeder.class);
dropBox = new File(workingDirectory, "drop-box");
dropBox.mkdirs();
Properties properties = new Properties();
properties.setProperty(
TimeSeriesDataSetUploaderParameters.TIME_SERIES_DATA_SET_DROP_BOX_PATH, dropBox
.toString());
uploader =
new LcaMicDataSetUploader(dao, service, new TimeSeriesDataSetUploaderParameters(
properties, true));
}
@AfterMethod
public void tearDown()
{
// To following line of code should also be called at the end of each test method.
// Otherwise one does not known which test failed.
context.assertIsSatisfied();
}
@Test
public void test()
{
File tsvFile = new File(workingDirectory, "data.tsv");
FileUtilities.writeToFile(tsvFile, LcaMicDataSetPropertiesExtractorTest.EXAMPLE
+ "12\t2.5\t5.5\tN/A\n42\t42.5\t45.5\t3.25\n");
DataSetInformation dataSetInformation = new DataSetInformation();
dataSetInformation.setExperimentIdentifier(new ExperimentIdentifier("p1", "e1"));
dataSetInformation.setDataSetCode("abc-1");
dataSetInformation.setUploadingUserEmail("ab@c.de");
uploader.handleTSVFile(tsvFile, dataSetInformation, feeder);
List<String> data = getData(1);
assertEquals("BBA ID\t" +
"Ma::MS::B1::12::EX::T1::NC::LcaMicCfd::Value[um]::LIN::NB::NC\t" +
"Ma::MS::B1::42::EX::T1::NC::LcaMicCfd::Value[um]::LIN::NB::NC", data.get(0));
assertEquals("BBA9001#A_S20090325-2\t2.5\t42.5", data.get(1));
checkProperties(1);
data = getData(2);
assertEquals("BBA ID\t" +
"Ma::MS::B1::12::EX::T1::NC::LcaMicAbsFl::Mean[Au]::LIN::NB::NC\t" +
"Ma::MS::B1::42::EX::T1::NC::LcaMicAbsFl::Mean[Au]::LIN::NB::NC", data.get(0));
assertEquals("BBA9001#A_S20090325-2\t5.5\t45.5", data.get(1));
checkProperties(2);
data = getData(3);
assertEquals("BBA ID\t" +
"Ma::MS::B1::12::EX::T1::NC::LcaMicAbsFl::Std[Au]::LIN::NB::NC\t" +
"Ma::MS::B1::42::EX::T1::NC::LcaMicAbsFl::Std[Au]::LIN::NB::NC", data.get(0));
assertEquals("BBA9001#A_S20090325-2\tN/A\t3.25", data.get(1));
checkProperties(3);
context.assertIsSatisfied();
}
private List<String> getData(int number)
{
File ds = new File(dropBox, DataSetHandler.LCA_MIC_TIME_SERIES + number);
List<String> data = FileUtilities.loadToStringList(ds.listFiles(TXT_FILTER)[0]);
assertEquals(2, data.size());
return data;
}
private void checkProperties(int number)
{
File ds = new File(dropBox, DataSetHandler.LCA_MIC_TIME_SERIES + number);
List<String> data = FileUtilities.loadToStringList(ds.listFiles(PROPERTIES_FILTER)[0]);
assertEquals(2, data.size());
assertEquals("comment=null,p1/e1,abc-1,LCA_MIC_TIME_SERIES,PROPRIETARY", data.get(0));
assertEquals("user-email=ab@c.de", data.get(1));
}
}
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