public Result check(Descriptor descriptor) {
    this.descriptor = descriptor;
    result = getInitializedResult();
    compName = getVerifierContext().getComponentNameConstructor();
    ClassLoader cl = getVerifierContext().getClassLoader();
    List<InjectionCapable> injectables = getInjectables(getClassName());
    for (InjectionCapable injectionCapable : injectables) {
      Set<InjectionTarget> iTargets = injectionCapable.getInjectionTargets();
      for (InjectionTarget target : iTargets) {
        try {
          if (target.isFieldInjectable()) {
            Class classObj = Class.forName(getClassName(), false, cl);
            Field field = classObj.getDeclaredField(target.getFieldName());
            testMethodModifiers(field.getModifiers(), "field", field);
          }
          if (target.isMethodInjectable()) {
            Class classObj = Class.forName(getClassName(), false, cl);
            Method method = getInjectedMethod(classObj, target.getMethodName());
            if (method == null) continue;
            testMethodModifiers(method.getModifiers(), "method", method);
          }
        } catch (Exception e) {
        } // ignore as it will be caught in other tests
      }
    }

    if (result.getStatus() != Result.FAILED) {
      addGoodDetails(result, compName);
      result.passed(
          smh.getLocalString(getClass().getName() + ".passed", "Valid injection method(s)."));
    }
    return result;
  }