/** * Copyright (c) 2009--2013 Red Hat, Inc. * * This software is licensed to you under the GNU General Public License, * version 2 (GPLv2). There is NO WARRANTY for this software, express or * implied, including the implied warranties of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 * along with this software; if not, see * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. * * Red Hat trademarks are not licensed under GPLv2. No permission is * granted to use or replicate Red Hat trademarks that are incorporated * in this software or its documentation. */ package com.redhat.rhn.domain.action.rhnpackage.test; import com.redhat.rhn.domain.action.Action; import com.redhat.rhn.domain.action.ActionFactory; import com.redhat.rhn.domain.action.rhnpackage.PackageAction; import com.redhat.rhn.domain.action.rhnpackage.PackageActionDetails; import com.redhat.rhn.domain.action.rhnpackage.PackageActionResult; import com.redhat.rhn.domain.action.server.ServerAction; import com.redhat.rhn.domain.action.test.ActionFactoryTest; import com.redhat.rhn.domain.server.Server; import com.redhat.rhn.domain.server.test.ServerFactoryTest; import com.redhat.rhn.domain.user.User; import com.redhat.rhn.testing.RhnBaseTestCase; import com.redhat.rhn.testing.UserTestUtils; import org.apache.log4j.Logger; import java.util.Date; import java.util.Iterator; import java.util.Set; /** * PackageActionTest * @version $Rev$ */ public class PackageActionTest extends RhnBaseTestCase { private static Logger log = Logger.getLogger(PackageActionTest.class); /** * Test fetching a PackageAction * @throws Exception */ public void testLookupPackageAction() throws Exception { Action newA = ActionFactoryTest.createAction(UserTestUtils.createUser("testUser", UserTestUtils.createOrg("testOrg" + this.getClass().getSimpleName())), ActionFactory.TYPE_PACKAGES_VERIFY); assertNotNull(newA.getId()); assertTrue(newA instanceof PackageAction); PackageAction p = (PackageAction) newA; assertNotNull(p.getDetails()); assertEquals(p.getDetails().size(), 1); PackageActionDetails firstDetail = (PackageActionDetails) p.getDetails().toArray()[0]; /** * Make sure PackageEvr was set & committed correctly */ Set details = p.getDetails(); Iterator ditr = details.iterator(); while (ditr.hasNext()) { PackageActionDetails detail = (PackageActionDetails) ditr.next(); assertNotNull(detail.getEvr().getId()); } User user = UserTestUtils.findNewUser("TEST USER", "TEST ORG"); Server testserver = ServerFactoryTest.createTestServer(user); PackageActionResult result = new PackageActionResult(); result.setServer(testserver); result.setDetails(firstDetail); result.setResultCode(new Long(42)); result.setCreated(new Date()); result.setModified(new Date()); firstDetail.addResult(result); ActionFactory.save(p); PackageAction p2 = (PackageAction) ActionFactory.lookupById(p.getId()); assertNotNull(p2.getDetails()); assertEquals(p2.getDetails().size(), 1); assertNotNull(p2.getDetails().toArray()[0]); firstDetail = (PackageActionDetails) p2.getDetails().toArray()[0]; assertNotNull(firstDetail.getResults()); assertEquals(firstDetail.getResults().size(), 1); } public void testCreatePackageUpdateAction() throws Exception { User usr = UserTestUtils.findNewUser("testUser", "testOrg" + this.getClass().getSimpleName()); PackageAction testAction = (PackageAction)ActionFactoryTest.createAction(usr, ActionFactory.TYPE_PACKAGES_UPDATE); PackageActionDetailsTest.createTestDetailsWithNvre(usr, testAction); ActionFactory.save(testAction); flushAndEvict(testAction); /** * Get action back out of db and make sure it committed correctly */ Action same = ActionFactory.lookupById(testAction.getId()); assertTrue(same instanceof PackageAction); PackageAction sameAction = (PackageAction) same; assertNotNull(sameAction.getDetails()); assertEquals(sameAction.getDetails().size(), 2); assertNotNull(sameAction.getDetails().toArray()[0]); assertNotNull(sameAction.getDetails().toArray()[1]); assertEquals(sameAction.getName(), testAction.getName()); assertEquals(sameAction.getId(), testAction.getId()); } public void testCreatePackageUpdateActionWithName() throws Exception { User usr = UserTestUtils.findNewUser("testUser", "testOrg" + this.getClass().getSimpleName()); PackageAction testAction = (PackageAction)ActionFactoryTest.createAction(usr, ActionFactory.TYPE_PACKAGES_UPDATE); PackageActionDetailsTest.createTestDetailsWithName(usr, testAction); ActionFactory.save(testAction); flushAndEvict(testAction); /** * Get action back out of db and make sure it committed correctly */ Action same = ActionFactory.lookupById(testAction.getId()); assertTrue(same instanceof PackageAction); PackageAction sameAction = (PackageAction) same; assertNotNull(sameAction.getDetails()); assertEquals(sameAction.getDetails().size(), 2); assertNotNull(sameAction.getDetails().toArray()[0]); assertNotNull(sameAction.getDetails().toArray()[1]); assertEquals(sameAction.getName(), testAction.getName()); assertEquals(sameAction.getId(), testAction.getId()); } public void testCreatePackageRemoveAction() throws Exception { User user = UserTestUtils.findNewUser("testUser", "testOrg" + this.getClass().getSimpleName()); Server srvr = ServerFactoryTest.createTestServer(user); ServerAction sa = new ServerAction(); sa.setStatus(ActionFactory.STATUS_QUEUED); sa.setRemainingTries(new Long(10)); sa.setServer(srvr); log.debug("Creating PackageRemoveAction."); PackageAction pra = (PackageAction) ActionFactory.createAction( ActionFactory.TYPE_PACKAGES_REMOVE); pra.setOrg(user.getOrg()); pra.setName("Package Removal"); pra.addServerAction(sa); sa.setParentAction(pra); log.debug("Committing PackageRemoveAction."); ActionFactory.save(pra); PackageAction result = (PackageAction) ActionFactory.lookupById(pra.getId()); assertEquals(pra, result); } }