java/code/src/com/redhat/rhn/domain/server/test/HostBuilder.java
| 21 +
java/code/src/com/redhat/rhn/manager/system/test/VirtualizationEntitlementsManagerTest.java
| 137 ++++------
2 files changed, 84 insertions(+), 74 deletions(-)
New commits:
commit 4ab5729d173d615f98599e0d32d347a25f7a641b
Author: Partha Aji <paji(a)redhat.com>
Date: Fri Jun 25 18:53:42 2010 -0400
Added more tests on Orphaned gets entitlements
diff --git a/java/code/src/com/redhat/rhn/domain/server/test/HostBuilder.java
b/java/code/src/com/redhat/rhn/domain/server/test/HostBuilder.java
index 61fa278..c2b2b17 100644
--- a/java/code/src/com/redhat/rhn/domain/server/test/HostBuilder.java
+++ b/java/code/src/com/redhat/rhn/domain/server/test/HostBuilder.java
@@ -28,6 +28,8 @@ import org.hibernate.Session;
import java.util.Date;
import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
@@ -40,7 +42,7 @@ public class HostBuilder {
private User owner;
private Server host;
-
+
public HostBuilder(User theOwner) {
owner = theOwner;
}
@@ -159,9 +161,11 @@ public class HostBuilder {
return this;
}
- private void createGuests(int numberOfGuests, boolean register) throws Exception {
+ private List<VirtualInstance> createGuests(int numberOfGuests,
+ boolean register) throws Exception {
VirtualInstance virtualInstance = null;
Server guest = null;
+ List<VirtualInstance> guests = new LinkedList<VirtualInstance>();
for (int i = 0; i < numberOfGuests; ++i) {
virtualInstance = new VirtualInstance();
@@ -172,11 +176,18 @@ public class HostBuilder {
ServerFactoryTest.TYPE_SERVER_NORMAL , new Date());
virtualInstance.setGuestSystem(guest);
}
-
- host.addGuest(virtualInstance);
- TestUtils.saveAndFlush(host);
+ if (host != null) {
+ host.addGuest(virtualInstance);
+ TestUtils.saveAndFlush(host);
+ }
TestUtils.saveAndFlush(guest);
+ guests.add(virtualInstance);
}
+ return guests;
+ }
+
+ public List<VirtualInstance> withOrphanedGuests(int numberOfGuests) throws
Exception {
+ return createGuests(numberOfGuests, true);
}
}
diff --git
a/java/code/src/com/redhat/rhn/manager/system/test/VirtualizationEntitlementsManagerTest.java
b/java/code/src/com/redhat/rhn/manager/system/test/VirtualizationEntitlementsManagerTest.java
index 9e5dca4..448a541 100644
---
a/java/code/src/com/redhat/rhn/manager/system/test/VirtualizationEntitlementsManagerTest.java
+++
b/java/code/src/com/redhat/rhn/manager/system/test/VirtualizationEntitlementsManagerTest.java
@@ -43,6 +43,7 @@ import com.redhat.rhn.testing.UserTestUtils;
import org.apache.commons.lang.RandomStringUtils;
+import java.util.Collection;
import java.util.List;
@@ -76,37 +77,8 @@ public class VirtualizationEntitlementsManagerTest extends
RhnBaseTestCase {
UpdateOrgSoftwareEntitlementsCommand(rhelFamily.getLabel(),
org, ents, flexEnts);
assertNull(cmd2.store());
- Channel rhelChannel = ChannelFactoryTest.createBaseChannel(user, rhelFamily);
-
-
- HibernateFactory.getSession().clear();
- rhelChannel = ChannelFactory.lookupById(rhelChannel.getId());
- assertNotNull(rhelChannel.getId());
- assertNotNull(rhelChannel);
-
- rhelFamily = ChannelFamilyFactory.lookupById(rhelFamily.getId());
- assertNotNull(rhelFamily);
- assertNotNull(rhelFamily.getMaxFlex(org));
- assertEquals(Long.valueOf(flexEnts), rhelFamily.getMaxFlex(org));
-
- HostBuilder builder = new HostBuilder(org.getActiveOrgAdmins().get(0));
- builder.createNonVirtHost().withGuests(guestsToCreate);
- Server host = builder.build();
- ServerFactory.save(host);
-
- SystemManager.subscribeServerToChannel(user, host, rhelChannel);
-
- ServerFactory.save(host);
-
- for (VirtualInstance inst : host.getGuests()) {
- SystemManager.subscribeServerToChannel(user,
- inst.getGuestSystem(), rhelChannel);
- SystemManager.entitleServer(inst.getGuestSystem(),
- EntitlementManager.MANAGEMENT);
- ServerFactory.save(inst.getGuestSystem());
- }
-
- HibernateFactory.getSession().clear();
+ rhelFamily = setupGuests(org, user, guestsToCreate,
+ flexEnts, rhelFamily, true);
//Verify everything is as it should be
@@ -125,8 +97,19 @@ public class VirtualizationEntitlementsManagerTest extends
RhnBaseTestCase {
assertEquals(1, l.size());
assertEquals(guestsToCreate, l.get(0).expand().size());
}
+
+
+ public void testNonVirtHostEligibleFlexGuests() throws Exception {
+ executeEligibleGuestTests(false);
+ }
+
+ public void testOrphanedEligibleFlexGuests() throws Exception {
+ executeEligibleGuestTests(true);
+ }
+
+
- public void testListEligibleFlexGuests() throws Exception {
+ private void executeEligibleGuestTests(boolean isOrphaned) throws Exception {
Org org =
UserTestUtils.createNewOrgFull(RandomStringUtils.randomAlphabetic(10));
User user = UserTestUtils.createUser(RandomStringUtils.randomAlphabetic(10),
org.getId());
@@ -134,8 +117,12 @@ public class VirtualizationEntitlementsManagerTest extends
RhnBaseTestCase {
UserFactory.save(user);
int guestsToCreate = 6;
long flexEnts = guestsToCreate;
- long ents = guestsToCreate + 1; //+ 1 for host
- long sysEnts = guestsToCreate + 1; //+ 1 for host
+ long ents = guestsToCreate;
+ long sysEnts = guestsToCreate; //+ 1 for host
+ if (!isOrphaned) {
+ ents++;
+ sysEnts++;
+ }
//Give it some system entitlements
UpdateOrgSystemEntitlementsCommand cmd1 = new
UpdateOrgSystemEntitlementsCommand(
EntitlementManager.MANAGEMENT, org, sysEnts);
@@ -152,37 +139,7 @@ public class VirtualizationEntitlementsManagerTest extends
RhnBaseTestCase {
UpdateOrgSoftwareEntitlementsCommand(rhelFamily.getLabel(),
org, ents, 0L);
assertNull(cmd2.store());
- Channel rhelChannel = ChannelFactoryTest.createBaseChannel(user, rhelFamily);
-
-
- HibernateFactory.getSession().clear();
- rhelChannel = ChannelFactory.lookupById(rhelChannel.getId());
- assertNotNull(rhelChannel.getId());
- assertNotNull(rhelChannel);
-
- rhelFamily = ChannelFamilyFactory.lookupById(rhelFamily.getId());
- assertNotNull(rhelFamily);
- assertNotNull(rhelFamily.getMaxFlex(org));
- assertEquals(Long.valueOf(0), rhelFamily.getMaxFlex(org));
-
- HostBuilder builder = new HostBuilder(org.getActiveOrgAdmins().get(0));
- builder.createNonVirtHost().withGuests(guestsToCreate);
- Server host = builder.build();
- ServerFactory.save(host);
-
- SystemManager.subscribeServerToChannel(user, host, rhelChannel);
-
- ServerFactory.save(host);
- for (VirtualInstance inst : host.getGuests()) {
- SystemManager.subscribeServerToChannel(user,
- inst.getGuestSystem(), rhelChannel);
- SystemManager.entitleServer(inst.getGuestSystem(),
- EntitlementManager.MANAGEMENT);
- ServerFactory.save(inst.getGuestSystem());
- }
-
- HibernateFactory.getSession().clear();
-
+ rhelFamily = setupGuests(org, user, guestsToCreate, 0, rhelFamily, !isOrphaned);
//Verify everything is as it should be
EntitlementServerGroup mgmnt =
@@ -209,12 +166,54 @@ public class VirtualizationEntitlementsManagerTest extends
RhnBaseTestCase {
List<ChannelFamilySystemGroup> l = VirtualizationEntitlementsManager.
getInstance().listEligibleFlexGuests(user);
-
-
assertTrue(!l.isEmpty());
assertEquals(1, l.size());
- assertEquals(guestsToCreate, l.get(0).expand().size());
- }
+ assertEquals(guestsToCreate, l.get(0).expand().size());
+ }
+ private ChannelFamily setupGuests(Org org, User user,
+ int guestsToCreate, long flexEnts, ChannelFamily rhelFamily,
+ boolean addNonVirtHost) throws Exception {
+ Channel rhelChannel = ChannelFactoryTest.createBaseChannel(user, rhelFamily);
+ HibernateFactory.getSession().clear();
+ rhelChannel = ChannelFactory.lookupById(rhelChannel.getId());
+ assertNotNull(rhelChannel.getId());
+ assertNotNull(rhelChannel);
+
+ rhelFamily = ChannelFamilyFactory.lookupById(rhelFamily.getId());
+ assertNotNull(rhelFamily);
+ assertNotNull(rhelFamily.getMaxFlex(org));
+ assertEquals(Long.valueOf(flexEnts), rhelFamily.getMaxFlex(org));
+
+ HostBuilder builder = new HostBuilder(org.getActiveOrgAdmins().get(0));
+ Collection<VirtualInstance> guests = null;
+ if (addNonVirtHost) {
+ builder.createNonVirtHost();
+ builder.withGuests(guestsToCreate);
+ }
+ else {
+ guests = builder.withOrphanedGuests(guestsToCreate);
+ }
+
+ if (addNonVirtHost) {
+ Server host = builder.build();
+ ServerFactory.save(host);
+
+ SystemManager.subscribeServerToChannel(user, host, rhelChannel);
+
+ ServerFactory.save(host);
+ guests = host.getGuests();
+ }
+
+ for (VirtualInstance inst : guests) {
+ SystemManager.subscribeServerToChannel(user,
+ inst.getGuestSystem(), rhelChannel);
+ SystemManager.entitleServer(inst.getGuestSystem(),
+ EntitlementManager.MANAGEMENT);
+ ServerFactory.save(inst.getGuestSystem());
+ }
+ HibernateFactory.getSession().clear();
+ return rhelFamily;
+ }
}