/**
*
* marcosnr
* 30/03/2012
*/
package au.org.aurin.wif.repo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.testng.Assert;
import org.testng.annotations.Test;
import au.org.aurin.wif.exception.config.WifInvalidConfigException;
import au.org.aurin.wif.exception.validate.WifInvalidInputException;
import au.org.aurin.wif.impl.demand.DemandAnalyzer;
import au.org.aurin.wif.model.WifProject;
import au.org.aurin.wif.model.demand.DemandScenario;
import au.org.aurin.wif.repo.demand.DemandScenarioDao;
import au.org.aurin.wif.svc.WifKeys;
import au.org.aurin.wif.svc.demand.DemandScenarioService;
/**
*
*/
@ContextConfiguration(locations = { "/test-integration-context.xml" })
public class CopyDemandScenarioTest extends AbstractTestNGSpringContextTests {
/**
* logger.
*/
private static final Logger LOGGER = LoggerFactory
.getLogger(CopyDemandScenarioTest.class);
/** The demand analyzer. */
@Autowired
private DemandAnalyzer demandAnalyzer;
@Autowired
private WifProjectDao wifProjectDao;
@Autowired
private DemandScenarioDao demandScenarioDao;
@Autowired
private DemandScenarioService demandScenarioService;
@Test(enabled = false, groups = { "demand" })
public void CopyDemandScenarioTest() throws WifInvalidInputException,
WifInvalidConfigException {
LOGGER.debug("CopyDemandScenarioTest");
WifProject wifProject = wifProjectDao
.findProjectById(WifKeys.TEST_PROJECT_ID);
LOGGER.debug(wifProject.getLabel());
DemandScenario dsHighGrowth = wifProject
.getDemandScenarioByLabel("High Growth");
DemandScenario dsMediumGrowth = new DemandScenario(dsHighGrowth);
dsMediumGrowth.setFeatureFieldName("Medium Growth");
dsMediumGrowth.setLabel("Medium Growth");
LOGGER.debug("Medium Growth Id " + dsMediumGrowth.getId());
Assert.assertEquals(dsMediumGrowth.getDemandInfos().size(), dsHighGrowth
.getDemandInfos().size());
dsMediumGrowth.setWifProject(wifProject);
wifProject.getDemandScenarios().add(dsMediumGrowth);
DemandScenario demandScenario = demandScenarioDao
.persistDemandScenario(dsMediumGrowth);
LOGGER.debug("Medium Growth Id " + demandScenario.getId());
Assert.assertNotNull(demandScenario.getId());
// FIXME Having an unexpected border effect of deleting ALL scenarios.
// HIBERNATE SUCKS BALLS.
// demandScenarioDao.deleteDemandScenario(demandScenario);
}
}