package org.dcache.webadmin.controller.impl;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import java.util.Set;
import diskCacheV111.pools.PoolV2Mode;
import org.dcache.webadmin.controller.exceptions.PoolSpaceServiceException;
import org.dcache.webadmin.model.businessobjects.Pool;
import org.dcache.webadmin.model.dataaccess.DAOFactory;
import org.dcache.webadmin.model.dataaccess.impl.DAOFactoryImplHelper;
import org.dcache.webadmin.model.dataaccess.impl.PoolsDAOImplHelper;
import org.dcache.webadmin.model.dataaccess.impl.XMLDataGathererHelper;
import org.dcache.webadmin.view.beans.PoolSpaceBean;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class StandardPoolSpaceServiceTest {
private DAOFactory _daoFactory;
private StandardPoolSpaceService _poolBeanService;
private List<PoolSpaceBean> _expectedPoolBeans;
@Before
public void setUp() {
_daoFactory = new DAOFactoryImplHelper();
_poolBeanService = new StandardPoolSpaceService(_daoFactory);
_expectedPoolBeans = XMLDataGathererHelper.createExpectedPoolBeans();
}
@Test
public void testGetPoolBeans() throws PoolSpaceServiceException {
List<PoolSpaceBean> poolBeans = _poolBeanService.getPoolBeans();
assertEquals("pools not returned as expected", _expectedPoolBeans, poolBeans);
}
@Test
public void testChangePoolModeAllDisabled() throws PoolSpaceServiceException {
PoolsDAOImplHelper poolsDAO = (PoolsDAOImplHelper) _daoFactory.getPoolsDAO();
setSelectionOfAllPoolBeans(true);
_poolBeanService.changePoolMode(_expectedPoolBeans,
new PoolV2Mode(PoolV2Mode.DISABLED_STRICT), "testuser");
for (Pool pool : poolsDAO.getPools()) {
assertTrue(pool.getSelectionPool().getPoolMode().getMode() == PoolV2Mode.DISABLED_STRICT);
}
}
@Test
public void testChangePoolModeAllEnabled() throws PoolSpaceServiceException {
PoolsDAOImplHelper poolsDAO = (PoolsDAOImplHelper) _daoFactory.getPoolsDAO();
setSelectionOfAllPoolBeans(true);
_poolBeanService.changePoolMode(_expectedPoolBeans,
new PoolV2Mode(PoolV2Mode.ENABLED), "testuser");
for (Pool pool : poolsDAO.getPools()) {
assertTrue(pool.getSelectionPool().getPoolMode().getMode() == PoolV2Mode.ENABLED);
}
}
@Test
public void testChangePoolModeNoneSelected() throws PoolSpaceServiceException {
PoolsDAOImplHelper poolsDAO = (PoolsDAOImplHelper) _daoFactory.getPoolsDAO();
setSelectionOfAllPoolBeans(false);
Set<Pool> poolsBeforeChange = poolsDAO.getPools();
_poolBeanService.changePoolMode(_expectedPoolBeans,
new PoolV2Mode(PoolV2Mode.ENABLED), "testuser");
assertEquals(poolsBeforeChange, poolsDAO.getPools());
}
private void setSelectionOfAllPoolBeans(boolean selected) {
for (PoolSpaceBean poolBean : _expectedPoolBeans) {
poolBean.setSelected(selected);
}
}
}