1 23 package com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2; 24 25 import java.util.*; 26 import java.lang.reflect.*; 27 import com.sun.enterprise.deployment.*; 28 import com.sun.enterprise.deployment.QueryDescriptor; 29 import com.sun.enterprise.tools.verifier.Result; 30 import com.sun.enterprise.tools.verifier.tests.*; 31 32 39 public class SelectMethodQL extends SelectMethodTest { 40 41 52 protected boolean runIndividualSelectTest(Method m, EjbCMPEntityDescriptor descriptor, Result result) { 53 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 54 Set set = descriptor.getPersistenceDescriptor().getQueriedMethods(); 56 Iterator iterator = set.iterator(); 57 while(iterator.hasNext()) { 58 MethodDescriptor queryMethod = (MethodDescriptor) iterator.next(); 59 if (queryMethod.getName().equals(m.getName())) { 60 Class mParms[] = m.getParameterTypes(); 61 62 String queryParms[] = queryMethod.getParameterClassNames(); 63 64 if (queryParms != null) { 65 66 if (queryParms.length == mParms.length) { 67 boolean same = true; 68 for (int i=0;i<mParms.length;i++) { 69 if (!mParms[i].getName().equals(queryParms[i])) 70 same=false; 71 } 72 if (same) { 73 QueryDescriptor qd = descriptor.getPersistenceDescriptor().getQueryFor(queryMethod); 74 String query = qd.getQuery(); 75 if (query == null && qd.getSQL()==null) { 76 result.addErrorDetails(smh.getLocalString 77 ("tests.componentNameConstructor", 78 "For [ {0} ]", 79 new Object [] {compName.toString()})); 80 result.addErrorDetails(smh.getLocalString 81 ("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.SelectMethodQL.failed2", 82 "Error : [ {0} ] EJB-QL query and description are null", 83 new Object [] {m.getName()})); 84 return false; 85 } else { 86 if (query==null) { 87 result.addGoodDetails(smh.getLocalString 88 ("tests.componentNameConstructor", 89 "For [ {0} ]", 90 new Object [] {compName.toString()})); 91 result.addGoodDetails(smh.getLocalString 92 ("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.SelectMethodQL.passed1", 93 "Description for [ {0} ] is provided", 94 new Object [] {m.getName()})); 95 return true; 96 } 97 if (query.toUpperCase().indexOf("SELECT")==-1) { 98 result.addErrorDetails(smh.getLocalString 99 ("tests.componentNameConstructor", 100 "For [ {0} ]", 101 new Object [] {compName.toString()})); 102 result.addErrorDetails(smh.getLocalString 103 ("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.SelectMethodQL.failed2", 104 "Error : EJB-QL query for method [ {0} is null", 105 new Object [] {m.getName()})); 106 return false; 107 } else { 108 result.addGoodDetails(smh.getLocalString 109 ("tests.componentNameConstructor", 110 "For [ {0} ]", 111 new Object [] {compName.toString()})); 112 result.addGoodDetails(smh.getLocalString 113 ("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.SelectMethodQL.passed2", 114 "EJB-QL query for [ {0} ] is correct", 115 new Object [] {m.getName()})); 116 return true; 117 } 118 } 119 } 120 } 121 } 122 else if (mParms.length == 0) { 123 124 result.addGoodDetails(smh.getLocalString 125 ("tests.componentNameConstructor", 126 "For [ {0} ]", 127 new Object [] {compName.toString()})); 128 result.addGoodDetails(smh.getLocalString 129 ("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.SelectMethodQL.passed3", 130 "No EJB-QL query found", 131 new Object [] {})); 132 return true; 133 } else { 134 result.addErrorDetails(smh.getLocalString 135 ("tests.componentNameConstructor", 136 "For [ {0} ]", 137 new Object [] {compName.toString()})); 138 result.addErrorDetails(smh.getLocalString 139 ("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.SelectMethodQL.failed2", 140 "Error : EJB-QL query for method [ {0} is null", 141 new Object [] {m.getName()})); 142 return false; 143 } 144 } 145 } 146 147 result.addErrorDetails(smh.getLocalString 148 ("tests.componentNameConstructor", 149 "For [ {0} ]", 150 new Object [] {compName.toString()})); 151 result.addErrorDetails(smh.getLocalString 152 ("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.SelectMethodQL.failed1", 153 "Error : [ {0} ] does not have a XML query element associated", 154 new Object [] {m.getName()})); 155 return false; 156 } 157 } 158 | Popular Tags |