/**
* Copyright (c) 2009--2010 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.domain.rhnpackage.Package;
import com.redhat.rhn.domain.rhnpackage.test.PackageTest;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.xmlrpc.packages.PackageHelper;
import com.redhat.rhn.testing.RhnBaseTestCase;
import com.redhat.rhn.testing.TestUtils;
import com.redhat.rhn.testing.UserTestUtils;
import java.util.Collections;
import java.util.Map;
public class PackageHelperTest extends RhnBaseTestCase {
private void assertKey(Map map, String key, Object value) {
assertTrue(map.containsKey(key));
assertEquals(value, map.get(key));
}
public void testPackageToMap() throws Exception {
User user = UserTestUtils.findNewUser("testuser", "testorg");
Package pkg = PackageTest.createTestPackage(user.getOrg());
Map map = PackageHelper.packageToMap(pkg, user);
assertKey(map, "name", pkg.getPackageName().getName());
assertKey(map, "id", pkg.getId());
assertKey(map, "epoch", pkg.getPackageEvr().getEpoch());
assertKey(map, "version", pkg.getPackageEvr().getVersion());
assertKey(map, "release", pkg.getPackageEvr().getRelease());
assertKey(map, "arch_label", pkg.getPackageArch().getLabel());
assertKey(map, "build_host", pkg.getBuildHost());
assertKey(map, "description", pkg.getDescription());
assertKey(map, "checksum", pkg.getChecksum().getChecksum());
assertKey(map, "checksum_type", pkg.getChecksum().getChecksumType().getLabel());
assertKey(map, "vendor", pkg.getVendor());
assertKey(map, "summary", pkg.getSummary());
assertKey(map, "cookie", pkg.getCookie());
assertKey(map, "license", pkg.getCopyright());
assertKey(map, "file", pkg.getFile());
assertKey(map, "build_date", pkg.getBuildTime().toString());
assertKey(map, "last_modified_date", pkg.getLastModified().toString());
assertKey(map, "size", pkg.getPackageSize().toString());
assertKey(map, "payload_size", pkg.getPayloadSize().toString());
assertKey(map, "providing_channels", Collections.EMPTY_LIST);
}
public void testPackage2MapWithNulls() throws Exception {
User user = UserTestUtils.findNewUser("testuser", "testorg");
Package pkg = PackageTest.createTestPackage(user.getOrg());
// DO NOT delete this, otherwise Hibernate tries to freakin
// store the object with nulls and blows up. We don't care
// about the DB at this point, just need an object to read.
TestUtils.flushAndEvict(pkg);
// modify the input for negative testing
pkg.setBuildTime(null);
pkg.setLastModified(null);
pkg.setPackageSize(null);
pkg.setPayloadSize(null);
pkg.setPackageName(null);
pkg.setPackageEvr(null);
pkg.setPackageArch(null);
Map map = PackageHelper.packageToMap(pkg, user);
assertKey(map, "build_date", "");
assertKey(map, "last_modified_date", "");
assertKey(map, "size", "");
assertKey(map, "payload_size", "");
assertKey(map, "name", "");
assertKey(map, "epoch", "");
assertKey(map, "version", "");
assertKey(map, "release", "");
assertKey(map, "arch_label", "");
}
}