modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
| 48 +++++++
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
| 66 ++++++++++
2 files changed, 114 insertions(+)
New commits:
commit 69de100614c9dcd0be575c6622775c6d20a6f7ec
Author: Simeon Pinder <spinder(a)fulliautomatix.conchfritter.com>
Date: Thu Feb 28 09:27:08 2013 -0500
Add new test exercising criteriQuery change, ConfigurationManagerBean and increasing
code coverage that was lacking.
diff --git
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
index 7d0343b..700cfc5 100644
---
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
+++
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
@@ -21,6 +21,7 @@ package org.rhq.enterprise.server.configuration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -41,6 +42,10 @@ import org.rhq.core.domain.configuration.ConfigurationUpdateStatus;
import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
+import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
+import org.rhq.core.domain.configuration.definition.PropertyDefinition;
+import org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple;
+import org.rhq.core.domain.configuration.definition.PropertySimpleType;
import org.rhq.core.domain.configuration.group.GroupPluginConfigurationUpdate;
import org.rhq.core.domain.criteria.ResourceConfigurationUpdateCriteria;
import org.rhq.core.domain.discovery.AvailabilityReport;
@@ -735,6 +740,67 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
assert requests.size() == 1; // it will create one for us from the
"live" configuration
}
+ /** Exercise the ConfigurationManagerBean getOptionsForConfigurationDefinition.
+ *
+ * @throws Exception
+ */
+ @Test(enabled = ENABLE_TESTS)
+ public void testResourceConfigurationDefinitionsOptions() throws Exception {
+ Resource resource = newResource1;
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+ ConfigurationManagerLocal configurationManager =
LookupUtil.getConfigurationManager();
+ getTransactionManager().begin();
+
+ try {
+ // this is simulating what the UI would be doing, build the config and call
the server-side API
+ // we'll pretend the user is the overlord - another test will check a
real user to see permission errors
+ ResourceType newResource1Type = resource.getResourceType();
+ ConfigurationDefinition initialDefinition =
newResource1Type.getResourceConfigurationDefinition();
+ int loadCount = 300;
+ HashSet<String> parsedNames = new HashSet<String>();
+ for (int i = 0; i < loadCount; i++) {
+ String name = "fake property" + i;
+ initialDefinition
+ .put(new PropertyDefinitionSimple(name, "fake" + i, false,
PropertySimpleType.BOOLEAN));
+ parsedNames.add(name);
+ }
+ newResource1Type.setResourceConfigurationDefinition(initialDefinition);
+ em.merge(newResource1Type);
+ em.flush();
+
+ Configuration configuration = new Configuration();
+ configuration.put(new PropertySimple("myboolean",
"true"));
+
+ ConfigurationDefinition configurationDefinition =
newResource1.getResourceType()
+ .getResourceConfigurationDefinition();
+ assert configurationDefinition != null : "Configuration Definition could
not be located.";
+ //retrieve the options for ConfigurationDefinition
+ ConfigurationDefinition options =
configurationManager.getOptionsForConfigurationDefinition(overlord,
+ newResource1.getId(), configurationDefinition);
+ assert options != null : "Unable able to retrieve options for resource
with id [" + newResource1.getId()
+ + "].";
+ assert !options.getPropertyDefinitions().entrySet().isEmpty() : "No
PropertyDefinitionSimple instances found.";
+
+ PropertyDefinitionSimple locatedPropertyDefSimple = null;
+ int locatedCount = 0;
+ for (Map.Entry<String, PropertyDefinition> entry :
options.getPropertyDefinitions().entrySet()) {
+ PropertyDefinition pd = entry.getValue();
+ if (pd instanceof PropertyDefinitionSimple) {
+ PropertyDefinitionSimple pds = (PropertyDefinitionSimple) pd;
+ locatedPropertyDefSimple = pds;
+ locatedCount++;
+ parsedNames.remove(pds.getName());
+ }
+ }
+ assert locatedPropertyDefSimple != null : "PropertyDefinitionSimple was
not located!";
+ assert locatedCount >= loadCount : "All expected properties were not
loaded. Found '" + locatedCount + "'.";
+ assert parsedNames.size() == 0 : "Not all loaded options were
parsed.";
+
+ } finally {
+ getTransactionManager().rollback();
+ }
+ }
+
@Test(enabled = ENABLE_TESTS)
public void testConfigurationRollback() throws Exception {
Resource resource = newResource1;
commit 1cb2426bcd2aefdf458d8edcb1baaf07c7f8e198
Author: Simeon Pinder <spinder(a)fulliautomatix.conchfritter.com>
Date: Thu Feb 28 05:43:33 2013 -0500
Add new test for available subjects and increments test coverage for
PersistenceUtility.
diff --git
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
index 9fba041..fe7691d 100644
---
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
+++
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
@@ -25,7 +25,10 @@ import java.util.List;
import java.util.Set;
import java.util.UUID;
+import javax.persistence.EntityManager;
import javax.security.auth.login.LoginException;
+import javax.transaction.NotSupportedException;
+import javax.transaction.SystemException;
import org.testng.annotations.Test;
@@ -35,6 +38,7 @@ import org.rhq.core.domain.authz.Role;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.criteria.SubjectCriteria;
+import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.domain.util.PageOrdering;
import org.rhq.enterprise.server.auth.SessionManager;
@@ -45,6 +49,7 @@ import org.rhq.enterprise.server.authz.PermissionException;
import org.rhq.enterprise.server.authz.RoleManagerLocal;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
import org.rhq.enterprise.server.util.LookupUtil;
+import org.rhq.enterprise.server.util.SessionTestHelper;
/**
* Tests the subject manager.
@@ -360,6 +365,49 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
getTransactionManager().commit();
}
+ /**
+ * Tests finding Subjects with Roles.
+ * @throws SystemException
+ * @throws NotSupportedException
+ */
+ public void testFindSubjectsWithRoles() throws NotSupportedException, SystemException
{
+ getTransactionManager().begin();
+ EntityManager entityMgr = getEntityManager();
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+ RoleManagerLocal roleManager = LookupUtil.getRoleManager();
+ Subject overlord = subjectManager.getOverlord();
+
+ try {
+ //create new subject
+ Subject subject = SessionTestHelper.createNewSubject(entityMgr,
"testSubject");
+ //create new role for subject
+ Role roleWithSubject = SessionTestHelper.createNewRoleForSubject(entityMgr,
subject, "role with subject");
+ roleWithSubject.addPermission(Permission.VIEW_RESOURCE);
+ Role newRole = new Role("role without subject");
+ Role roleWithoutSubject = roleManager.createRole(overlord, newRole);
+
+ //exercise findAvailableSubjectsForRole
+ Integer[] pendingSubjectIds = new Integer[0];
+ PageList<Subject> subjects =
subjectManager.findAvailableSubjectsForRole(subjectManager.getOverlord(),
+ roleWithoutSubject.getId(), pendingSubjectIds,
PageControl.getUnlimitedInstance());
+ assert subjects.size() > 0 : "Unable to locate subject(s) available
for role with id '"
+ + roleWithSubject.getId() + "'.";//Should be at least one.
+ // boolean located = false;
+ Subject locatedSubject = null;
+ for (Subject s : subjects) {
+ if (s.getName().equals(subject.getName())) {
+ locatedSubject = s;
+ }
+ }
+ assert locatedSubject != null : "Unable to located subject with name
'" + subject.getName() + "'.";
+ assert locatedSubject.getId() == subject.getId() : "Subject id does not
match expected subject identifier '"
+ + subject.getId() + "'";//should match.
+
+ } finally {
+ getTransactionManager().rollback();
+ }
+ }
+
/**
* Tests getting a super user subject.
*
Show replies by date