// $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.model.cherrypicks; import java.util.List; import junit.framework.TestSuite; import org.springframework.beans.factory.annotation.Autowired; import edu.harvard.med.screensaver.db.CherryPickRequestDAO; import edu.harvard.med.screensaver.db.LibrariesDAO; import edu.harvard.med.screensaver.model.AbstractEntityInstanceTest; import edu.harvard.med.screensaver.model.libraries.PlateType; import edu.harvard.med.screensaver.model.screens.Screen; import edu.harvard.med.screensaver.model.screens.ScreenType; import edu.harvard.med.screensaver.model.users.AdministratorUser; import edu.harvard.med.screensaver.test.MakeDummyEntities; public abstract class CherryPickRequestTest<CPR extends CherryPickRequest> extends AbstractEntityInstanceTest<CPR> { public static TestSuite suite() { return buildTestSuite(CherryPickRequestTest.class, CherryPickRequest.class); } @Autowired protected CherryPickRequestDAO cherryPickRequestDao; @Autowired protected LibrariesDAO librariesDao; public CherryPickRequestTest(Class<CPR> clazz) { super(clazz); } public void testGetActiveCherryPickAssayPlates() { schemaUtil.truncateTables(); Screen screen = MakeDummyEntities.makeDummyScreen(1, ScreenType.RNAI); CherryPickRequest cherryPickRequest = screen.createCherryPickRequest((AdministratorUser) screen.getCreatedBy()); for (int plateOrdinal = 0; plateOrdinal < 3; ++plateOrdinal) { for (int attempt = 0; attempt <= plateOrdinal; ++attempt) { cherryPickRequest.createCherryPickAssayPlate(plateOrdinal, attempt, PlateType.EPPENDORF_384); } } List<CherryPickAssayPlate> activeAssayPlates = cherryPickRequest.getActiveCherryPickAssayPlates(); assertEquals(3, activeAssayPlates.size()); int expectedAttemptOrdinal = 0; for (CherryPickAssayPlate activeAssayPlate : activeAssayPlates) { assertEquals("active assay plate is the last one attempted", expectedAttemptOrdinal++, activeAssayPlate.getAttemptOrdinal().intValue()); } } // public void testAssayPlateRequiringSourcePlateReload() // { // fail("not implemented"); // } }