package org.rhq.enterprise.server.content.test; import java.util.List; import javax.persistence.Query; import javax.transaction.TransactionManager; import org.testng.annotations.Test; import org.rhq.core.domain.auth.Subject; import org.rhq.core.domain.content.Distribution; import org.rhq.core.domain.content.DistributionFile; import org.rhq.core.domain.content.DistributionType; import org.rhq.enterprise.server.content.DistributionManagerLocal; import org.rhq.enterprise.server.test.AbstractEJB3Test; import org.rhq.enterprise.server.util.LookupUtil; /** * @author Pradeep Kilambi */ public class DistributionManagerBeanTest extends AbstractEJB3Test { private final static boolean ENABLED = true; private DistributionManagerLocal distManager; private DistributionType distType; private Subject overlord; @Override protected void beforeMethod() throws Exception { TransactionManager tx = getTransactionManager(); tx.begin(); distManager = LookupUtil.getDistributionManagerLocal(); distType = new DistributionType("kickstart"); overlord = LookupUtil.getSubjectManager().getOverlord(); } @Override protected void afterMethod() throws Exception { TransactionManager tx = getTransactionManager(); if (tx != null) { tx.rollback(); } } @Test(enabled = ENABLED) public void createDeleteDistribution() throws Exception { String kslabel = "testCreateDeleteRepo"; String kspath = "/tmp"; int id = distManager.createDistribution(overlord, kslabel, kspath, distType).getId(); Distribution distro = distManager.getDistributionByLabel(kslabel); assert distro != null; assert id == distro.getId(); distManager.deleteDistributionByDistId(overlord, id); distro = distManager.getDistributionByLabel(kslabel); assert distro == null; } @SuppressWarnings("unchecked") public void testDistributionFiles() throws Exception { String kslabel = "testCreateDeleteRepo"; String kspath = "/tmp"; // don't get id, if not needed downstream //int id = distManager.createDistribution(overlord, kslabel, kspath, distType).getId(); distManager.createDistribution(overlord, kslabel, kspath, distType); Distribution distro = distManager.getDistributionByLabel(kslabel); DistributionFile distfile = new DistributionFile(distro, "vmlinux", "d41d8cd98f00b204e9800998ecf8427e"); em.persist(distfile); Query query = em.createNamedQuery(DistributionFile.SELECT_BY_DIST_ID); query.setParameter("distId", distro.getId()); List<DistributionFile> results = query.getResultList(); assert results.size() != 0; Query querydel = em.createNamedQuery(DistributionFile.DELETE_BY_DIST_ID); querydel.setParameter("distId", distro.getId()); querydel.executeUpdate(); List<DistributionFile> resultsdel = query.getResultList(); assert resultsdel.size() == 0; } }