package org.jatakasource.testcube.dao.testrun; import java.util.Date; import java.util.List; import junit.framework.Assert; 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.testcase.CaseAttachmentDao; import org.jatakasource.testcube.dao.testcase.CaseAttachmentDaoTest; import org.jatakasource.testcube.dao.testcase.CaseStatusDao; import org.jatakasource.testcube.dao.testcase.CaseStatusDaoTest; import org.jatakasource.testcube.dao.testcase.TestCaseDao; import org.jatakasource.testcube.dao.testcase.TestCaseDaoTest; 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.testcase.CaseAttachment; import org.jatakasource.testcube.model.testcase.CaseStatus; import org.jatakasource.testcube.model.testcase.ICaseStatus; import org.jatakasource.testcube.model.testcase.ITestCase; import org.jatakasource.testcube.model.testcase.TestCase; 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.ITestRunResult; import org.jatakasource.testcube.model.testrun.RunStatus; import org.jatakasource.testcube.model.testrun.RunStatusPerDate; import org.jatakasource.testcube.model.testrun.TestRun; import org.jatakasource.testcube.model.testrun.TestRunResult; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.Rollback; public class TestRunResultDaoTest extends SpringDaoTest<Long, TestRunResultDao, ITestRunResult> { @Autowired private TestRunResultDao testRunResultDao; @Autowired private UserDao userDao; @Autowired private ProductDao productDao; @Autowired private VersionDao versionDao; @Autowired private RunStatusDao runStatusDao; @Autowired private TestPlanDao testPlanDao; @Autowired private TestRunDao testRunDao; @Autowired private CaseStatusDao caseStatusDao; @Autowired private CaseAttachmentDao caseAttachmentDao; @Autowired private TestCaseDao testCaseDao; private User user; private Product product; private Version version; private RunStatus status; private TestPlan testPlan; private TestRun testRun; private CaseStatus caseStatus; private TestCase testCase; private CaseAttachment caseAttachment; @Override public TestRunResultDao getDao() { return testRunResultDao; } @Before public void before() { user = (User) prepareUser(); product = (Product) prepareProduct(); version = (Version) prepareVersion(); status = (RunStatus) prepareStatus(); testPlan = (TestPlan) prepareTestPlan(); testRun = (TestRun) prepareTestRun(); caseStatus = (CaseStatus) prepareCaseStatus(); caseAttachment = prepareCaseAttachment(); testCase = (TestCase) prepareTestCase(); } @Override public ITestRunResult[] getValidEntities() { return new ITestRunResult[] { getValidTestRun() }; } @Override public ITestRunResult[] getInvalidEntities() { ITestRunResult result = (ITestRunResult) getValidEntity(); result.setStatus(null); result.setTestcase(null); result.setTestRun(null); result.setUpdatedBy(null); return new ITestRunResult[] { result }; } @Override public void change(ITestRunResult entity) { entity.setCreatedDate(null); } public ITestRunResult getValidTestRun() { TestRunResult result = new TestRunResult(); result.setCreatedDate(new Date()); result.setUpdatedDate(new Date()); result.setStatus(status); result.setTestcase(testCase); result.setTestRun(testRun); result.setUpdatedBy(user); return result; } @Test @Rollback public void testStatusByDay() { // Create 3 runs getDao().save(getValidEntity()); getDao().save(getValidEntity()); getDao().save(getValidEntity()); List<RunStatusPerDate> statisrics = getDao().getStatusByDay(); Assert.assertNotNull(statisrics); Assert.assertEquals(14, statisrics.size()); } 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() { return (TestPlan) testPlanDao.save(TestPlanDaoTest.getValidTestPlan(user, product)); } private ITestRun prepareTestRun() { return (ITestRun) testRunDao.save(TestRunDaoTest.getValidTestRun(user, version, status, testPlan)); } private ICaseStatus prepareCaseStatus() { return (CaseStatus) caseStatusDao.save(CaseStatusDaoTest.getValidCaseStatus()); } private ITestCase prepareTestCase() { return (ITestCase) testCaseDao.save(TestCaseDaoTest.getValidTestCase(testPlan, user, caseStatus, caseAttachment)); } private CaseAttachment prepareCaseAttachment() { return (CaseAttachment) caseAttachmentDao.save((CaseAttachment) CaseAttachmentDaoTest.getValidPlanAttachment()); } }