/**
* Copyright (c) 2009--2016 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.frontend.xmlrpc.packages.test;
import com.redhat.rhn.FaultException;
import com.redhat.rhn.common.hibernate.HibernateFactory;
import com.redhat.rhn.domain.rhnpackage.Package;
import com.redhat.rhn.domain.rhnpackage.PackageSource;
import com.redhat.rhn.domain.rhnpackage.test.PackageTest;
import com.redhat.rhn.domain.rpm.SourceRpm;
import com.redhat.rhn.domain.rpm.test.SourceRpmTest;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.xmlrpc.packages.PackagesHandler;
import com.redhat.rhn.frontend.xmlrpc.test.BaseHandlerTestCase;
import com.redhat.rhn.testing.UserTestUtils;
import java.util.List;
import java.util.Map;
public class PackagesHandlerTest extends BaseHandlerTestCase {
private final PackagesHandler handler = new PackagesHandler();
public void testGetDetails() throws Exception {
Package pkg = PackageTest.createTestPackage(admin.getOrg());
assertNotNull(pkg.getOrg().getId());
Map details = handler.getDetails(admin, new Integer(pkg.getId().intValue()));
assertNotNull(details);
assertTrue(details.containsKey("name"));
try {
handler.getDetails(admin, new Integer(-213344));
fail("handler.getDetails didn't throw FaultException for non-existant package");
}
catch (FaultException e) {
//success
}
}
public void testListFiles() throws Exception {
User user = UserTestUtils.createUser("testUser", admin.getOrg().getId());
Package pkg = PackageTest.createTestPackage(user.getOrg());
Object[] files = handler.listFiles(admin,
new Integer(pkg.getId().intValue()));
// PackageTest.populateTestPackage populates a test package with 2 associated files
assertEquals(2, files.length);
//TODO: Once we work out the mappings between packages -> files -> capabilities
//we should do some more exhaustive testing of this method.
}
public void testListProvidingErrata() throws Exception {
User user = UserTestUtils.createUser("testUser", admin.getOrg().getId());
Package pkg = PackageTest.createTestPackage(user.getOrg());
Object[] result = handler.listProvidingErrata(admin,
new Integer(pkg.getId().intValue()));
assertEquals(0, result.length);
}
public void testListProvidingChannels() throws Exception {
User user = UserTestUtils.createUser("testUser", admin.getOrg().getId());
Package pkg = PackageTest.createTestPackage(user.getOrg());
Object[] result = handler.listProvidingChannels(admin,
new Integer(pkg.getId().intValue()));
//test package shouldn't be "provided" by any channel yet
assertEquals(0, result.length);
}
public void testListDependencies() throws Exception {
//TODO: Once we work out the mappings between packages -> dependencies
// we should do some more exhaustive testing of this method.
User user = UserTestUtils.createUser("testUser", admin.getOrg().getId());
Package pkg = PackageTest.createTestPackage(user.getOrg());
Object[] result = handler.listDependencies(admin,
new Integer(pkg.getId().intValue()));
//test package shouldn't have any deps yet
assertEquals(0, result.length);
}
public void testRemovePackage() throws Exception {
User user = UserTestUtils.createUser("testUser", admin.getOrg().getId());
Package pkg = PackageTest.createTestPackage(user.getOrg());
handler.removePackage(admin, new Integer(pkg.getId().intValue()));
}
public void testRemovePackageSource() throws Exception {
User user = UserTestUtils.createUser("testUser", admin.getOrg().getId());
SourceRpm srpm = SourceRpmTest.createTestSourceRpm();
PackageSource pkg = PackageTest.createTestPackageSource(srpm, user.getOrg());
HibernateFactory.getSession().save(pkg);
handler.removeSourcePackage(admin, new Integer(pkg.getId().intValue()));
}
public void testFindByNevra() throws Exception {
Package p = PackageTest.createTestPackage(admin.getOrg());
List<Package> newP = handler.findByNvrea(admin, p.getPackageName().getName(),
p.getPackageEvr().getVersion(), p.getPackageEvr().getRelease(),
p.getPackageEvr().getEpoch(), p.getPackageArch().getLabel());
assertTrue(newP.size() == 1);
assertEquals(p, newP.get(0));
newP = handler.findByNvrea(admin, p.getPackageName().getName(),
p.getPackageEvr().getVersion(), p.getPackageEvr().getRelease(),
"", p.getPackageArch().getLabel());
assertTrue(newP.size() == 1);
assertEquals(p, newP.get(0));
}
public void testListSourcePackages() throws Exception {
User user = UserTestUtils.createUser("testUser", regular.getOrg().getId());
Object[] result1 = handler.listSourcePackages(user);
for (int i = 0; i < 3; i++) {
SourceRpm srpm = SourceRpmTest.createTestSourceRpm();
PackageSource pkg = PackageTest.createTestPackageSource(srpm, user.getOrg());
HibernateFactory.getSession().save(pkg);
}
Object[] result2 = handler.listSourcePackages(user);
assertEquals(3, result2.length - result1.length);
}
}