// $HeadURL$ // $Id$ // // Copyright © 2006, 2010, 2011, 2012 by the President and Fellows of Harvard College. // // Screensaver is an open-source project developed by the ICCB-L and NSRB labs // at Harvard Medical School. This software is distributed under the terms of // the GNU General Public License. package edu.harvard.med.screensaver.ui.screenresults; import java.io.IOException; import java.util.List; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import org.apache.commons.fileupload.FileItem; import org.apache.log4j.Logger; import org.apache.myfaces.custom.fileupload.UploadedFileDefaultMemoryImpl; import org.springframework.beans.factory.annotation.Autowired; import edu.harvard.med.screensaver.model.libraries.PlateSize; import edu.harvard.med.screensaver.model.screens.AssayReadoutType; import edu.harvard.med.screensaver.ui.arch.view.AbstractBackingBeanTest; import edu.harvard.med.screensaver.ui.screenresults.PlateReaderRawDataTransformer.FormOne; import edu.harvard.med.screensaver.ui.screenresults.PlateReaderRawDataTransformer.InputFileParams; import edu.harvard.med.screensaver.ui.screenresults.PlateReaderRawDataTransformer.OutputFormat; public class PlateReaderRawDataTransformerTest extends AbstractBackingBeanTest { private static Logger log = Logger.getLogger(PlateReaderRawDataTransformerTest.class); @Autowired protected PlateReaderRawDataTransformer plateReaderRawDataTransformer; public void testForm1Serialization() throws IOException { PlateReaderRawDataTransformer.FormOne form1a = new PlateReaderRawDataTransformer.FormOne(); form1a.setAssayPlateSize(PlateSize.WELLS_96); form1a.setAssayNegativeControls("1 A1\n 1 A2"); form1a.setAssayPositiveControls("2 A1, 3 A1"); form1a.setAssayOtherControls("4 B1, 5 B2"); form1a.setLibraryControls("A4=plk1"); form1a.setPlates("1 2 3"); form1a.setOutputFormat(OutputFormat.AllPlatesInSingleWorksheet); String serialized = form1a.serialize(); PlateReaderRawDataTransformer.FormOne form1b = new PlateReaderRawDataTransformer.FormOne(serialized); assertEquals(form1a.getAssayPlateSize(), form1b.getAssayPlateSize()); assertEquals(form1a.getAssayNegativeControls(), form1b.getAssayNegativeControls()); assertEquals(form1a.getAssayPositiveControls(), form1b.getAssayPositiveControls()); assertEquals(form1a.getAssayOtherControls(), form1b.getAssayOtherControls()); assertEquals(form1a.getLibraryControls(), form1b.getLibraryControls()); assertEquals(form1a.getPlates(), form1b.getPlates()); assertEquals(form1a.getOutputFormat(), form1b.getOutputFormat()); } public void testForm2Serialization() throws IOException { PlateReaderRawDataTransformer.InputFileParams form2a = new PlateReaderRawDataTransformer.InputFileParams(); List<PlateOrderingGroup> list = Lists.newArrayList(PlateOrderingGroup.Conditions, PlateOrderingGroup.Replicates, PlateOrderingGroup.Readouts, PlateOrderingGroup.Plates); form2a.setCollationOrderOrdering(list); form2a.setConditions("x y z"); form2a.setReadouts("1 2 3"); form2a.setReplicates(7); form2a.setReadoutTypeSelection(AssayReadoutType.ABSORBANCE); String serialized = form2a.serialize(); PlateReaderRawDataTransformer.InputFileParams form2b = PlateReaderRawDataTransformer.InputFileParams.deserialize(serialized); assertEquals(form2a.getCollationOrderOrdering(), form2b.getCollationOrderOrdering()); assertEquals(form2a.getConditions(), form2b.getConditions()); assertEquals(form2a.getReadouts(), form2b.getReadouts()); assertEquals(form2a.getReplicates(), form2b.getReplicates()); assertEquals(form2a.getReadoutTypeSelection(), form2b.getReadoutTypeSelection()); } public void testParseConditions() throws IOException { PlateReaderRawDataTransformer.InputFileParams p = new PlateReaderRawDataTransformer.InputFileParams(); p.setConditions("x,y y, z"); assertEquals(ImmutableList.of("x", "y y", "z"), p.getParsedConditions()); p.setConditions("x,y y, z"); assertEquals(ImmutableList.of("x", "y y", "z"), p.getParsedConditions()); p.setConditions("x\r\ny y \n z"); assertEquals(ImmutableList.of("x", "y y", "z"), p.getParsedConditions()); } }