package org.jatakasource.testcube.dao.testrun;
import java.util.Date;
import org.jatakasource.common.model.security.IUser;
import org.jatakasource.testcube.dao.SpringDaoTest;
import org.jatakasource.testcube.dao.product.ProductDao;
import org.jatakasource.testcube.dao.product.ProductDaoTest;
import org.jatakasource.testcube.dao.product.VersionDao;
import org.jatakasource.testcube.dao.security.UserDao;
import org.jatakasource.testcube.dao.security.UserDaoTest;
import org.jatakasource.testcube.dao.testplan.TestPlanDao;
import org.jatakasource.testcube.dao.testplan.TestPlanDaoTest;
import org.jatakasource.testcube.dao.version.VersionDaoTest;
import org.jatakasource.testcube.model.product.IProduct;
import org.jatakasource.testcube.model.product.IVersion;
import org.jatakasource.testcube.model.product.Product;
import org.jatakasource.testcube.model.product.Version;
import org.jatakasource.testcube.model.security.User;
import org.jatakasource.testcube.model.testplan.ITestPlan;
import org.jatakasource.testcube.model.testplan.TestPlan;
import org.jatakasource.testcube.model.testrun.IRunStatus;
import org.jatakasource.testcube.model.testrun.ITestRun;
import org.jatakasource.testcube.model.testrun.RunStatus;
import org.jatakasource.testcube.model.testrun.TestRun;
import org.junit.Before;
import org.springframework.beans.factory.annotation.Autowired;
public class TestRunDaoTest extends SpringDaoTest<Long, TestRunDao, ITestRun> {
@Autowired
private TestRunDao testRunDao;
@Autowired
private UserDao userDao;
@Autowired
private ProductDao productDao;
@Autowired
private VersionDao versionDao;
@Autowired
private RunStatusDao runStatusDao;
@Autowired
private TestPlanDao testPlanDao;
private User user;
private Product product;
private Version version;
private RunStatus status;
private TestPlan testPlan;
@Override
public TestRunDao getDao() {
return testRunDao;
}
@Before
public void before() {
user = (User) prepareUser();
product = (Product) prepareProduct();
version = (Version) prepareVersion();
status = (RunStatus) prepareStatus();
testPlan = (TestPlan) prepareTestPlan(user, product);
}
@Override
public ITestRun[] getValidEntities() {
return new ITestRun[] { getValidTestRun(user, version, status, testPlan) };
}
@Override
public ITestRun[] getInvalidEntities() {
ITestRun testRun = (ITestRun) getValidEntity();
testRun.setName(null);
testRun.setDescription(null);
return new ITestRun[] { testRun };
}
@Override
public void change(ITestRun entity) {
entity.setDescription("TEST TESTRUN UPDATE");
}
public static ITestRun getValidTestRun(User user, Version version, RunStatus status, TestPlan testPlan) {
TestRun testRun = new TestRun();
testRun.setName("TEST TESTRUN");
testRun.setDescription("TEST TESTRUN");
testRun.setCreatedBy(user);
testRun.setCreatedDate(new Date());
testRun.setProductVersion(version);
testRun.setStatus(status);
testRun.setTestPlan(testPlan);
return testRun;
}
private IUser prepareUser() {
return (User) userDao.save(UserDaoTest.getValidUser());
}
private IProduct prepareProduct() {
return (Product) productDao.save(ProductDaoTest.getValidProduct());
}
private IVersion prepareVersion() {
return (Version) versionDao.save((Version) VersionDaoTest.getValidVersion(product));
}
private IRunStatus prepareStatus() {
return (RunStatus) runStatusDao.save(RunStatusDaoTest.getValidRunStatus());
}
private ITestPlan prepareTestPlan(User user, Product product) {
return (TestPlan) testPlanDao.save(TestPlanDaoTest.getValidTestPlan(user, product));
}
}