// $HeadURL$
// $Id$
//
// Copyright © 2010 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.libraries;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import edu.harvard.med.screensaver.ScreensaverConstants;
import edu.harvard.med.screensaver.model.activities.AdministrativeActivityType;
import edu.harvard.med.screensaver.model.libraries.Library;
import edu.harvard.med.screensaver.model.libraries.LibraryScreeningStatus;
import edu.harvard.med.screensaver.model.libraries.LibraryType;
import edu.harvard.med.screensaver.model.libraries.Solvent;
import edu.harvard.med.screensaver.model.screens.ScreenType;
import edu.harvard.med.screensaver.ui.arch.view.AbstractBackingBeanTest;
public class LibraryDetailViewerTest extends AbstractBackingBeanTest
{
private static Logger log = Logger.getLogger(LibraryDetailViewerTest.class);
@Autowired
protected LibraryDetailViewer libraryDetailViewer;
private Library _library;
@Override
public void setUp() throws Exception
{
super.setUp();
_library = new Library(_admin);
_library.setScreenType(ScreenType.RNAI);
libraryDetailViewer.editNewEntity(_library);
_library.setLibraryName("y");
_library.setShortName("y");
_library.setStartPlate(2);
_library.setEndPlate(2);
_library.setLibraryType(LibraryType.COMMERCIAL);
_library.setSolvent(Solvent.RNAI_BUFFER);
_library.setScreeningStatus(LibraryScreeningStatus.ALLOWED);
libraryDetailViewer.save();
_library = libraryDetailViewer.getEntity();
}
public void testSolventType()
{
assertEquals(Solvent.RNAI_BUFFER, _library.getSolvent());
libraryDetailViewer.viewEntity(_library);
libraryDetailViewer.edit();
libraryDetailViewer.getEntity().setSolvent(Solvent.DMSO);
assertEquals(ScreensaverConstants.REDISPLAY_PAGE_ACTION_RESULT, libraryDetailViewer.save());
// TODO: assert validation message
//assertTrue(libraryDetailViewer.isEditMode());
assertEquals(Solvent.RNAI_BUFFER, _library.getSolvent());
}
public void testEntityUpdateHistory()
{
libraryDetailViewer.viewEntity(_library);
assertEquals(ScreensaverConstants.BROWSE_ENTITY_UPDATE_HISTORY, libraryDetailViewer.viewUpdateHistory());
assertEquals(1, libraryDetailViewer.getEntityUpdateSearchResults().getRowCount());
assertEquals(Solvent.RNAI_BUFFER, _library.getSolvent());
}
public void testComments()
{
_library = genericEntityDao.reloadEntity(_library, true, Library.updateActivities.castToSubtype(Library.class));
assertEquals(0, _library.getUpdateActivitiesOfType(AdministrativeActivityType.COMMENT).size());
libraryDetailViewer.viewEntity(_library);
libraryDetailViewer.edit();
libraryDetailViewer.getComments().setNewComment("new comment 1");
libraryDetailViewer.getComments().addNewComment();
libraryDetailViewer.save();
assertEquals(1, libraryDetailViewer.getComments().getCommentsDataModel().getRowCount());
assertEquals(1, libraryDetailViewer.getEntity().getUpdateActivitiesOfType(AdministrativeActivityType.COMMENT).size());
libraryDetailViewer.viewEntity(_library);
libraryDetailViewer.edit();
libraryDetailViewer.getComments().setNewComment("new comment 2");
libraryDetailViewer.getComments().addNewComment();
libraryDetailViewer.save();
assertEquals(2, libraryDetailViewer.getComments().getCommentsDataModel().getRowCount());
assertEquals(2, libraryDetailViewer.getEntity().getUpdateActivitiesOfType(AdministrativeActivityType.COMMENT).size());
}
}