package org.jatakasource.testcube.dao.testcase; import java.util.ArrayList; import java.util.List; 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.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.model.product.IProduct; import org.jatakasource.testcube.model.product.Product; 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.junit.Before; import org.springframework.beans.factory.annotation.Autowired; public class TestCaseDaoTest extends SpringDaoTest<Long, TestCaseDao, ITestCase> { @Autowired private TestCaseDao testCaseDao; @Autowired private UserDao userDao; @Autowired private ProductDao productDao; @Autowired private TestPlanDao testPlanDao; @Autowired private CaseStatusDao caseStatusDao; @Autowired private CaseAttachmentDao caseAttachmentDao; private User user; private Product product; private TestPlan testPlan; private CaseStatus status; private CaseAttachment attachment; @Before public void before() { user = (User) prepareUser(); product = (Product) prepareProduct(); status = (CaseStatus) prepareStatus(); testPlan = (TestPlan) prepareTestPlan(user, product); attachment = prepareCaseAttachment(); } @Override public TestCaseDao getDao() { return testCaseDao; } @Override public ITestCase[] getValidEntities() { return new ITestCase[] { getValidTestCase(testPlan, user, status, attachment) }; } @Override public ITestCase[] getInvalidEntities() { ITestCase testCase = (ITestCase) getValidEntity(); testCase.setName(null); testCase.setCreatedBy(null); return new ITestCase[] { testCase }; } @Override public void change(ITestCase entity) { entity.setDescription("TEST PLAN UPDATE"); } public static ITestCase getValidTestCase(TestPlan testPlan, User user, CaseStatus status, CaseAttachment attachment) { TestCase testCase = new TestCase(); testCase.setName("TestCase TEST NAME"); testCase.setDescription("TestCase TEST DESC"); testCase.setTestPlan(testPlan); testCase.setCreatedBy(user); testCase.setStatus(status); // Create attachments list List<CaseAttachment> attachments = new ArrayList<CaseAttachment>(); attachments.add(attachment); testCase.setAttachments(attachments); return testCase; } private IUser prepareUser() { return (User) userDao.save(UserDaoTest.getValidUser()); } private IProduct prepareProduct() { return (Product) productDao.save(ProductDaoTest.getValidProduct()); } private ICaseStatus prepareStatus() { return (CaseStatus) caseStatusDao.save(CaseStatusDaoTest.getValidCaseStatus()); } private ITestPlan prepareTestPlan(User user, Product product) { return (TestPlan) testPlanDao.save(TestPlanDaoTest.getValidTestPlan(user, product)); } private CaseAttachment prepareCaseAttachment() { return (CaseAttachment) caseAttachmentDao.save((CaseAttachment) CaseAttachmentDaoTest.getValidPlanAttachment()); } }