Run an individual test against a finder method (single or multi)
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
if (method.getName().equals("findByPrimaryKey")) {
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addGoodDetails(smh.getLocalString
("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.FindMethodHasDescriptors.passed1",
"Passed: Found method findByPrimaryKey",
new Object[] {}));
return true;
}
// We don't use getQueryFor to free ourselfves from classloader issues.
Set set = descriptor.getPersistenceDescriptor().getQueriedMethods();
Iterator iterator = set.iterator();
if (iterator.hasNext()) {
while(iterator.hasNext()) {
MethodDescriptor queryMethod = (MethodDescriptor) iterator.next();
if (queryMethod.getName().equals(method.getName())) {
Class mParms[] = method.getParameterTypes();
String queryParms[] = queryMethod.getParameterClassNames();
int queryParamsLen;
if(queryParms == null)
queryParamsLen = 0;
else
queryParamsLen = queryParms.length;
if (queryParamsLen == mParms.length) {
boolean same = true;
if(queryParamsLen > 0)
{
for (int i=0;i<mParms.length;i++) {
if (!mParms[i].getName().equals(queryParms[i]))
same=false;
}
}
if (same) {
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addGoodDetails(smh.getLocalString
("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.FindMethodHasDescriptors.passed",
"[ {0} ] has a query element associated with it",
new Object[] {method}));
return true;
}
}
}
}
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addErrorDetails(smh.getLocalString
("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.FindMethodHasDescriptors.failed",
"Error : [ {0} ] seems to be a finder method but has no query element associated with it",
new Object[] {method}));
return false;
}
else {
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.addGoodDetails(smh.getLocalString
("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.FindMethodHasDescriptors.notApplicable",
"NotApplicable : No Query methods found",
new Object[] {}));
return true;
}