/** * Copyright (c) 2009--2014 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.kickstart.test; import com.redhat.rhn.common.conf.Config; import com.redhat.rhn.common.conf.ConfigDefaults; import com.redhat.rhn.common.hibernate.HibernateFactory; import com.redhat.rhn.common.util.FileUtils; import com.redhat.rhn.common.util.MD5Crypt; import com.redhat.rhn.domain.channel.Channel; import com.redhat.rhn.domain.channel.test.ChannelFactoryTest; import com.redhat.rhn.domain.common.CommonFactory; import com.redhat.rhn.domain.common.FileList; import com.redhat.rhn.domain.common.test.FileListTest; import com.redhat.rhn.domain.kickstart.KickstartCommand; import com.redhat.rhn.domain.kickstart.KickstartCommandName; import com.redhat.rhn.domain.kickstart.KickstartData; import com.redhat.rhn.domain.kickstart.KickstartDefaultRegToken; import com.redhat.rhn.domain.kickstart.KickstartDefaults; import com.redhat.rhn.domain.kickstart.KickstartFactory; import com.redhat.rhn.domain.kickstart.KickstartInstallType; import com.redhat.rhn.domain.kickstart.KickstartPackage; import com.redhat.rhn.domain.kickstart.KickstartPreserveFileList; import com.redhat.rhn.domain.kickstart.KickstartScript; import com.redhat.rhn.domain.kickstart.KickstartVirtualizationType; import com.redhat.rhn.domain.kickstart.KickstartableTree; import com.redhat.rhn.domain.kickstart.cobbler.CobblerSnippet; import com.redhat.rhn.domain.kickstart.crypto.CryptoKey; import com.redhat.rhn.domain.kickstart.crypto.test.CryptoTest; import com.redhat.rhn.domain.org.Org; import com.redhat.rhn.domain.rhnpackage.PackageName; import com.redhat.rhn.domain.rhnpackage.profile.Profile; import com.redhat.rhn.domain.rhnpackage.test.PackageNameTest; import com.redhat.rhn.domain.role.RoleFactory; import com.redhat.rhn.domain.token.ActivationKey; import com.redhat.rhn.domain.token.Token; import com.redhat.rhn.domain.token.test.ActivationKeyTest; import com.redhat.rhn.domain.token.test.TokenTest; import com.redhat.rhn.domain.user.User; import com.redhat.rhn.manager.kickstart.KickstartFormatter; import com.redhat.rhn.manager.kickstart.KickstartSessionCreateCommand; import com.redhat.rhn.manager.kickstart.KickstartUrlHelper; import com.redhat.rhn.manager.kickstart.KickstartWizardHelper; import com.redhat.rhn.manager.kickstart.cobbler.CobblerCommand; import com.redhat.rhn.manager.kickstart.cobbler.CobblerXMLRPCHelper; import com.redhat.rhn.manager.kickstart.cobbler.test.MockXMLRPCInvoker; import com.redhat.rhn.manager.profile.test.ProfileManagerTest; import com.redhat.rhn.manager.rhnpackage.test.PackageManagerTest; import com.redhat.rhn.testing.BaseTestCaseWithUser; import com.redhat.rhn.testing.ChannelTestUtils; import com.redhat.rhn.testing.TestStatics; import com.redhat.rhn.testing.TestUtils; import com.redhat.rhn.testing.UserTestUtils; import org.cobbler.CobblerConnection; import org.cobbler.Distro; import org.cobbler.test.MockConnection; import org.hibernate.Session; import java.io.File; import java.util.Collection; import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; /** * KickstartDataTest * @version $Rev$ */ public class KickstartDataTest extends BaseTestCaseWithUser { private static final String KERNEL_PARAMS = "ide0=ata66"; public static void setupTestConfiguration(User u) throws Exception { Config.get().setString(CobblerXMLRPCHelper.class.getName(), MockXMLRPCInvoker.class.getName()); Config.get().setString(ConfigDefaults.KICKSTART_COBBLER_DIR, "/tmp/kickstart/"); Config.get().setString(ConfigDefaults.COBBLER_SNIPPETS_DIR, "/tmp/kickstart/snippets"); Config.get().setString(ConfigDefaults.MOUNT_POINT, "/tmp/kickstart/mount_point"); createDirIfNotExists(new File("/tmp/kickstart/mount_point")); Config.get().setString(ConfigDefaults.KICKSTART_MOUNT_POINT, "/tmp/kickstart/kickstart_mount_point"); createDirIfNotExists(new File("/tmp/kickstart/kickstart_mount_point")); Config.get().setString(CobblerConnection.class.getName(), MockConnection.class.getName()); createDirIfNotExists(new File(ConfigDefaults.get() .getKickstartConfigDir() + "/" + KickstartData.WIZARD_DIR)); createDirIfNotExists(new File(ConfigDefaults.get() .getKickstartConfigDir() + "/" + KickstartData.RAW_DIR)); createDirIfNotExists(CobblerSnippet.getSpacewalkSnippetsDir()); KickstartableTreeTest.createKickstartTreeItems(u); MockConnection.clear(); } public static void createCobblerObjects(KickstartData k) { Distro d = Distro.lookupById(CobblerXMLRPCHelper.getConnection("test"), k.getKickstartDefaults().getKstree().getCobblerId()); org.cobbler.Profile p = org.cobbler.Profile.create( CobblerXMLRPCHelper.getConnection("test"), CobblerCommand.makeCobblerName(k), d); p.setKickstart(k.buildCobblerFileName()); k.setCobblerId(p.getUid()); } public void testKickstartDataTest() throws Exception { KickstartData k = createTestKickstartData(user.getOrg()); assertNotNull(k); assertNotNull(k.getId()); assertNotNull(k.getKsPackages()); KickstartData k2 = lookupById(user.getOrg(), k.getId()); assertEquals(k2.getLabel(), k.getLabel()); //assertEquals(k2.getPostContents(), POST); //assertEquals(k2.getPreContents(), PRE); KickstartPreserveFileList kf = createTestFileList(); assertNotNull(kf); kf.setKsdata(k); KickstartDefaults d = createDefaults(k, user); assertNotNull(d); d.setKsdata(k); KickstartDefaultRegToken t = new KickstartDefaultRegToken(); t.setKsdata(k); t.setToken(TokenTest.createTestToken()); TestUtils.saveAndFlush(t); TestUtils.saveAndFlush(k); } public void testProfile() throws Exception { user.addPermanentRole(RoleFactory.ORG_ADMIN); KickstartData k = createKickstartWithProfile(user); assertNotNull(k.getKickstartDefaults().getProfile()); } public void testFileWrite() throws Exception { // Example for reading/writing file found: // http://www.javapractices.com/topic/TopicAction.do?Id=42 KickstartData k = createKickstartWithOptions(user.getOrg()); KickstartWizardHelper wcmd = new KickstartWizardHelper(user); wcmd.createCommand("url", "--url http://" + KickstartUrlHelper.COBBLER_SERVER_VARIABLE + "/$" + KickstartUrlHelper.COBBLER_MEDIA_VARIABLE, k); KickstartFactory.saveKickstartData(k); k = (KickstartData) reload(k); KickstartFactory.saveKickstartData(k); String contents = FileUtils.readStringFromFile(k.buildCobblerFileName()); assertTrue(contents.indexOf("\\$") > 0); assertTrue(contents.indexOf("\\$" + KickstartUrlHelper.COBBLER_MEDIA_VARIABLE) < 0); assertTrue(contents.indexOf("$" + KickstartUrlHelper.COBBLER_MEDIA_VARIABLE) > 0); // Check for SNIPPETS assertTrue(contents.indexOf("\\$SNIPPET") < 0); assertTrue(contents.indexOf("$SNIPPET") > 0); } public void testLookupByLabel() throws Exception { user.addPermanentRole(RoleFactory.ORG_ADMIN); KickstartData k = createKickstartWithProfile(user); assertNotNull(KickstartFactory.lookupKickstartDataByLabelAndOrgId(k.getLabel(), user.getOrg().getId())); } public void testLookupDefault() throws Exception { if (KickstartFactory.lookupOrgDefault(user.getOrg()) != null) { KickstartData orgdef = KickstartFactory.lookupOrgDefault(user.getOrg()); orgdef.setOrgDefault(Boolean.FALSE); KickstartFactory.saveKickstartData(orgdef); } KickstartData k = createKickstartWithOptions(user.getOrg()); k.setOrgDefault(Boolean.TRUE); KickstartFactory.saveKickstartData(k); flushAndEvict(k); assertNotNull(KickstartFactory.lookupOrgDefault(user.getOrg())); } public static KickstartData createKickstartWithProfile(User user) throws Exception { KickstartData k = createTestKickstartData(user.getOrg()); KickstartDefaults d1 = createDefaults(k, user); k.setKickstartDefaults(d1); SortedSet<KickstartCommand> optionsSet = new TreeSet<KickstartCommand>(); k.setCustomOptions(optionsSet); createCobblerObjects(k); Profile p = ProfileManagerTest.createProfileWithServer(user); d1.setProfile(p); d1.getKstree().setChannel(p.getBaseChannel()); KickstartFactory.saveKickstartData(k); k = (KickstartData) TestUtils.reload(k); return k; } public static void addCommand(User user, KickstartData owner, String name, String args) { KickstartWizardHelper cmd = new KickstartWizardHelper(user); cmd.createCommand(name, args, owner); } public void testInstallType() throws Exception { List types = KickstartFactory.lookupKickstartInstallTypes(); assertNotNull(types); assertTrue(types.size() > 0); assertTrue(types.get(0) instanceof KickstartInstallType); assertNotNull(KickstartFactory.lookupKickstartInstallTypeByLabel("rhel_4")); KickstartData k = createTestKickstartData(user.getOrg()); KickstartDefaults d1 = createDefaults(k, user); k.setKickstartDefaults(d1); TestUtils.saveAndFlush(k); KickstartableTree t2 = d1.getKstree(); assertNotNull(t2); assertEquals(t2, k.getKickstartDefaults().getKstree()); KickstartDefaults d2 = k.getKickstartDefaults(); assertNotNull(d2); KickstartableTree t1 = d2.getKstree(); assertNotNull(t1); KickstartInstallType i1 = t1.getInstallType(); assertNotNull(i1); KickstartInstallType i2 = t2.getInstallType(); assertNotNull(i2); assertNotNull(i1.getName()); assertNotNull(i2.getClass()); assertEquals(i1.getName(), i2.getName()); KickstartData k2 = lookupById(user.getOrg(), k.getId()); assertNotNull(k2.getKickstartDefaults()); } public void testDeleteKickstartData() throws Exception { KickstartData ksd = createKickstartWithOptions(user.getOrg()); assertNotNull(ksd); assertNotNull(ksd.getId()); assertNotNull(ksd.getKsPackages()); KickstartFactory.saveKickstartData(ksd); flushAndEvict(ksd); assertEquals(1, KickstartFactory.removeKickstartData(ksd)); assertNull(KickstartFactory .lookupKickstartDataByIdAndOrg(user.getOrg(), ksd.getId())); assertNull(lookupById(user.getOrg(), ksd.getId())); assertNull(lookupByLabel(ksd.getLabel())); String path = ksd.buildCobblerFileName(); File f = new File(path); assertFalse(f.exists()); } public void testChildChannels() throws Exception { KickstartData ksdata = createTestKickstartData(user.getOrg()); ksdata.setKickstartDefaults(createDefaults(ksdata, user)); assertNotNull(ksdata); assertNotNull(ksdata.getTree()); assertNotNull(ksdata.getTree().getChannel()); Channel child = ChannelTestUtils.createChildChannel(user, ksdata.getTree().getChannel()); assertNotNull(child); ksdata.addChildChannel(child); TestUtils.saveAndFlush(ksdata); ksdata = (KickstartData) reload(ksdata); // Check to make sure its reloaded from DB properly assertNotNull(ksdata.getChildChannels()); // Make sure we have 1 child channel assertTrue(ksdata.getChildChannels().size() == 1); // Make sure we can remove child channel ksdata.removeChildChannel(child); assertTrue(ksdata.getChildChannels().size() == 0); } /** * Helper method to lookup KickstartData by id * @param id Id to lookup * @return Returns the KickstartData * @throws Exception */ private KickstartData lookupById(Org orgIn, Long id) throws Exception { Session session = HibernateFactory.getSession(); return (KickstartData) session.getNamedQuery("KickstartData.findByIdAndOrg") .setLong("id", id.longValue()) .setLong("org_id", orgIn.getId().longValue()) .uniqueResult(); } /** * note that this is used for testing purposes. in theory we could return more * then one raid or partition..etc. this is merely a helper method to set up testing * for special command lists * @param lbl name to lookup * @return KickstartCommandName (single object) * @throws Exception */ private static KickstartCommandName lookupByLabel(String lbl) throws Exception { Session session = HibernateFactory.getSession(); return (KickstartCommandName)session .getNamedQuery("KickstartCommandName.findByLabel") .setString("name", lbl). uniqueResult(); } /** * Creates KickstartPreserveFileList for testing purposes. * @return Returns a committed KickstartPreserveFileList */ public static KickstartPreserveFileList createTestFileList() throws Exception { FileList f = new FileList(); f.setLabel("Test FileList" + TestUtils.randomString()); f.setOrg(UserTestUtils.findNewOrg(TestStatics.TESTORG)); f.setCreated(new Date()); f.setModified(new Date()); assertNull(f.getId()); KickstartPreserveFileList flist = new KickstartPreserveFileList(); flist.setFileList(f); return flist; } /** * Creates KickstartDefaults for testing purposes. * @return Returns a committed KickstartDefaults */ public static KickstartDefaults createDefaults(KickstartData data, User owner) throws Exception { Channel channel = ChannelFactoryTest.createTestChannel(owner); ChannelTestUtils.addDistMapToChannel(channel); addKickstartPackagesToChannel(channel, false); return createDefaults(data, channel); } /** * Adds the minimal amount of packages to the channel for the channel to be a * valid kickstart channel. * @param c The channel to which to add kickstart packages. * @param rhel2 Whether to include rhel2 required packages. * @throws Exception for creating packages. */ public static void addKickstartPackagesToChannel(Channel c, boolean rhel2) throws Exception { addPackages(c, KickstartFormatter.UPDATE_PKG_NAMES); if (rhel2) { addPackages(c, KickstartFormatter.FRESH_PKG_NAMES_RHEL2); } else { addPackages(c, KickstartFormatter.FRESH_PKG_NAMES_RHEL34); } PackageManagerTest.addPackageToChannel( ConfigDefaults.get().getKickstartPackageName() + "testy", c); PackageManagerTest.addPackageToChannel( KickstartData.LEGACY_KICKSTART_PACKAGE_NAME + KickstartableTreeTest.TEST_BOOT_PATH, c); } private static void addPackages(Channel c, String[] names) throws Exception { for (int i = 0; i < names.length; i++) { PackageManagerTest.addPackageToChannel(names[i], c); } } /** * Creates KickstartDefaults for testing purposes. * @return Returns a committed KickstartDefaults */ public static KickstartDefaults createDefaults(KickstartData data, Channel c) throws Exception { KickstartDefaults d = new KickstartDefaults(); d.setKsdata(data); KickstartVirtualizationType type = KickstartFactory. lookupKickstartVirtualizationTypeByLabel( KickstartVirtualizationType.KVM_FULLYVIRT); d.setVirtualizationType(type); KickstartableTree t = KickstartableTreeTest.createTestKickstartableTree(c); d.setKstree(t); d.setCfgManagementFlag(Boolean.FALSE); d.setRemoteCommandFlag(Boolean.FALSE); TestUtils.saveAndFlush(d); TestUtils.saveAndFlush(t); return d; } /** * Creates KickstartData for testing purposes. * @param orgIn * @return Returns a committed KickstartData * @throws Exception */ public static KickstartData createTestKickstartData(Org orgIn) throws Exception { String label = "KS Data: " + TestUtils.randomString(); String name = "KS Data Name: " + TestUtils.randomString(); String comments = "KS Data automated test"; Date created = new Date(); Date modified = new Date(); KickstartData k = new KickstartData(); PackageName pn = PackageNameTest.createTestPackageName(); PackageName pn2 = PackageNameTest.createTestPackageName(); k.setLabel(label); k.setComments(comments); k.setOrg(orgIn); k.setCreated(created); k.setModified(modified); k.setActive(Boolean.TRUE); k.setOrgDefault(Boolean.FALSE); k.addScript(KickstartScriptTest.createPost(k)); k.addScript(KickstartScriptTest.createPre(k)); k.addScript(KickstartScriptTest.createPostChrootInt(k)); k.addScript(KickstartScriptTest.createPreInterpreter(k)); k.addScript(KickstartScriptTest.createPostInterpreter(k)); k.setKernelParams(KERNEL_PARAMS); k = (KickstartData) TestUtils.saveAndReload(k); k.addKsPackage(new KickstartPackage(k, pn, new Long(0))); k.addKsPackage(new KickstartPackage(k, pn2, new Long(1))); k = (KickstartData) TestUtils.saveAndReload(k); return k; } public static KickstartData createKickstartWithOptions(Org orgIn) throws Exception { KickstartData k = createTestKickstartData(orgIn); assertNotNull(k); k.setKickstartDefaults(KickstartDataTest.createDefaults(k, UserTestUtils.ensureOrgAdminExists(orgIn))); createCobblerObjects(k); KickstartCommandName optionName = lookupByLabel("url"); assertNotNull(optionName); KickstartCommandName rootName = lookupByLabel("rootpw"); assertNotNull(rootName); //uncomment when schema supports include commands //KickstartCommandName includeName = lookupByLabel('include'); Date created = new Date(); Date modified = new Date(); String partSwap1 = "part swap --size=1000 --grow --maxsize=2000"; String partSwap2 = "part swap --size=1500 --grow --maxsize=2000"; String raidSwap1 = "raid swap --fstype swap --level 0 --device 1 raid.05 " + "raid.06 raid.07 raid.08"; String logVol = "logvol swap --fstype swap --name=lvswap --vgname=Volume00 " + "--size=2048"; String volGroup = "volgroup myvg pv.01"; k.setPartitionData(partSwap1 + "\n" + partSwap2 + "\n" + raidSwap1 + "\n" + logVol + "\n" + volGroup); KickstartCommand option = new KickstartCommand(); option.setCommandName(optionName); option.setArguments ("--url http://" + KickstartUrlHelper.COBBLER_SERVER_VARIABLE + "/kickstart/dist/ks-rhel-i386-as-3/"); option.setKickstartData(k); option.setCreated(created); option.setModified(modified); k.addCommand(option); KickstartCommand root = new KickstartCommand(); root.setCommandName(rootName); root.setArguments(MD5Crypt.crypt("testing123")); root.setKickstartData(k); root.setCreated(created); root.setModified(modified); k.addCommand(root); return k; } public static KickstartData createKickstartWithDefaultKey(Org orgIn) throws Exception { KickstartData ksdata = createKickstartWithChannel(orgIn); KickstartSessionCreateCommand kcmd = new KickstartSessionCreateCommand( orgIn, ksdata); kcmd.store(); return ksdata; } public static KickstartData createKickstartWithChannel(Org orgIn) throws Exception { KickstartData ksdata = KickstartDataTest.createTestKickstartData(orgIn); KickstartCommand pwdcmd = KickstartFactory.createKickstartCommand(ksdata, "rootpw"); pwdcmd.setArguments(ksdata.encryptPassword("password")); KickstartDefaults d1 = KickstartDataTest.createDefaults(ksdata, UserTestUtils.ensureOrgAdminExists(orgIn)); ksdata.setKickstartDefaults(d1); createCobblerObjects(ksdata); return ksdata; } public static FileList createFileList1(Org org) { FileList list1 = FileListTest.createTestFileList(org); list1.addFileName("/tmp/foo.txt"); return list1; } public static FileList createFileList2(Org org) { FileList list2 = FileListTest.createTestFileList(org); list2.addFileName("/tmp/foo.txt"); list2.addFileName("/tmp/bar.txt"); return list2; } public static FileList createFileList3(Org org) { FileList list3 = FileListTest.createTestFileList(org); list3.addFileName("/tmp/bar.txt"); list3.addFileName("/tmp/baz.txt"); list3.addFileName("/tmp/baz2.txt"); return list3; } public void testPreserveFileLists() throws Exception { Org org = UserTestUtils.findNewOrg(TestStatics.TESTORG); FileList list1 = createFileList1(org); FileList list2 = createFileList2(org); FileList list3 = createFileList3(org); KickstartData kickstart = createKickstartWithOptions(org); kickstart.addPreserveFileList(list1); assertEquals(1, kickstart.getPreserveFileLists().size()); kickstart.addPreserveFileList(list2); assertEquals(2, kickstart.getPreserveFileLists().size()); kickstart.addPreserveFileList(list3); assertEquals(3, kickstart.getPreserveFileLists().size()); kickstart.setPreserveFileLists(new HashSet()); assertEquals(0, kickstart.getPreserveFileLists().size()); } public void testCommands() throws Exception { KickstartData k = createKickstartWithOptions(user.getOrg()); Long ksid = k.getId(); KickstartFactory.saveKickstartData(k); flushAndEvict(k); KickstartData k2 = lookupById(user.getOrg(), ksid); assertNotNull(k2); assertEquals(5, k2.getPartitionData().split("\\n").length); assertEquals(2, k2.getOptions().size()); // url and command from k creation } public void testDeepCopy() throws Exception { // Setup the object for testing. KickstartData k = createKickstartWithOptions(user.getOrg()); FileList list1 = createFileList1(user.getOrg()); CommonFactory.saveFileList(list1); k.addPreserveFileList(list1); ActivationKey key = ActivationKeyTest.createTestActivationKey(user); k.addDefaultRegToken(key.getToken()); KickstartFactory.saveKickstartData(k); k = (KickstartData) reload(k); k = CryptoTest.addKeyToKickstart(k); k = KickstartIpTest.addIpRangesToKickstart(k); // save it and reload it KickstartFactory.saveKickstartData(k); k = (KickstartData) reload(k); // Now we deep copy it, save and reload KickstartData cloned = k.deepCopy(user, "someNewLabel" + TestUtils.randomString()); KickstartFactory.saveKickstartData(cloned); cloned = (KickstartData) reload(cloned); // Test the basic fields assertEquals(k.getComments(), cloned.getComments()); assertEquals(k.getPartitionData(), cloned.getPartitionData()); assertEquals(k.getBootloaderType(), cloned.getBootloaderType()); assertEquals(k.getInstallType(), cloned.getInstallType()); assertEquals(k.getKernelParams(), cloned.getKernelParams()); assertEquals(k.isActive(), cloned.isActive()); assertEquals(k.isOrgDefault(), cloned.isOrgDefault()); assertEquals(k.getOrg(), cloned.getOrg()); // Test the advanced fields assertEquals(cloned.getKickstartDefaults().getKstree(), k.getKickstartDefaults().getKstree()); verifySet(cloned.getCommands(), k.getCommands(), KickstartCommand.class); verifySet(cloned.getCryptoKeys(), k.getCryptoKeys(), CryptoKey.class); verifySet(cloned.getDefaultRegTokens(), k.getDefaultRegTokens(), Token.class); verifySet(cloned.getKsPackages(), k.getKsPackages(), KickstartPackage.class); verifySet(cloned.getPreserveFileLists(), k.getPreserveFileLists(), FileList.class); verifySet(cloned.getScripts(), k.getScripts(), KickstartScript.class); // We don't clone IP ranges. // verifySet(cloned.getIps(), k.getIps(), KickstartIpRange.class); KickstartScript ksscloned = cloned.getScripts().iterator().next(); KickstartScript kss = k.getScripts().iterator().next(); assertEquals(ksscloned.getDataContents(), kss.getDataContents()); } // Test to make sure public void testDeepCopyEmptySets() throws Exception { KickstartData k = createKickstartWithChannel(user.getOrg()); // Now we deep copy it, save and reload KickstartData cloned = k.deepCopy(user, "someNewLabel" + TestUtils.randomString()); assertNotNull(cloned); } private void verifySet(Collection cloned, Collection orig, Class clazz) { assertTrue("orig doesnt have any: " + clazz.getName(), orig.size() > 0); assertTrue("cloned doesnt have any: " + clazz.getName(), cloned.size() > 0); assertEquals(cloned.size(), orig.size()); assertTrue("Not instance of: " + clazz.getName(), clazz.isInstance(cloned.iterator().next())); } /* private void verifyList(List cloned, List orig, Class clazz) { assertTrue("orig doesnt have any: " + clazz.getName(), orig.size() > 0); assertTrue("cloned doesnt have any: " + clazz.getName(), cloned.size() > 0); assertEquals(cloned.size(), orig.size()); assertTrue("Not instance of: " + clazz.getName(), clazz.isInstance(cloned.iterator().next())); } */ public void testISRhelRevMethods() throws Exception { KickstartData k = createKickstartWithChannel(user.getOrg()); k.getTree().setInstallType(KickstartFactory. lookupKickstartInstallTypeByLabel(KickstartInstallType.RHEL_5)); assertFalse(k.isRhel2()); assertFalse(k.isRhel3()); assertFalse(k.isRhel4()); assertTrue(k.isRhel5()); assertTrue(k.isRhel5OrGreater()); k.getTree().setInstallType(KickstartFactory. lookupKickstartInstallTypeByLabel(KickstartInstallType.FEDORA)); assertTrue(k.isRhel5OrGreater()); assertFalse(k.isRhel5()); } public void testDefaultBridge() throws Exception { KickstartData k = createKickstartWithChannel(user.getOrg()); k.getKickstartDefaults().setVirtualizationType( KickstartVirtualizationType.kvmGuest()); assertTrue(k.getDefaultVirtBridge().equals( ConfigDefaults.get().getDefaultKVMVirtBridge())); k.getKickstartDefaults().setVirtualizationType( KickstartVirtualizationType.xenPV()); assertTrue(k.getDefaultVirtBridge().equals( ConfigDefaults.get().getDefaultXenVirtBridge())); } }