package org.jatakasource.testcube.dao.version;
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.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.junit.Before;
import org.springframework.beans.factory.annotation.Autowired;
public class VersionDaoTest extends SpringDaoTest<Long, VersionDao, IVersion> {
@Autowired
private VersionDao versionDao;
@Autowired
private ProductDao productDao;
private Product product;
@Before
public void before() {
product = (Product) prepareProduct();
}
@Override
public VersionDao getDao() {
return versionDao;
}
@Override
public IVersion[] getValidEntities() {
return new IVersion[] { getValidVersion(product) };
}
@Override
public IVersion[] getInvalidEntities() {
IVersion version = (IVersion) getValidEntity();
version.setName(null);
version.setDescription(null);
version.setProduct(null);
return new IVersion[] { version };
}
@Override
public void change(IVersion entity) {
entity.setDescription("TEST PRODUCT UPDATE");
}
public static IVersion getValidVersion(Product product) {
Version version = new Version();
version.setName("TEST PRODUCT");
version.setDescription("TEST PRODUCT");
version.setProduct(product);
return version;
}
private IProduct prepareProduct() {
return (Product) productDao.save(ProductDaoTest.getValidProduct());
}
}