Java 类org.junit.jupiter.api.extension.ParameterContext 实例源码

项目:autotest    文件:AutoTestParameterResolver.java   
@Override
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext)
        throws ParameterResolutionException {
    Object argument = arguments[parameterContext.getIndex()];
    Parameter parameter = parameterContext.getParameter();
    Optional<ConvertWith> annotation = AnnotationUtils.findAnnotation(parameter, ConvertWith.class);
    // @formatter:off
    ArgumentConverter argumentConverter = annotation.map(ConvertWith::value)
            .map(clazz -> (ArgumentConverter) ReflectionUtils.newInstance(clazz))
            .map(converter -> AnnotationConsumerInitializer.initialize(parameter, converter))
            .orElse(DefaultArgumentConverter.INSTANCE);
    // @formatter:on
    try {
        return argumentConverter.convert(argument, parameterContext);
    } catch (Exception ex) {
        throw new ParameterResolutionException("参数转换出错:" + parameter.getType().getName(),
                ex);
    }
}
项目:junit5-extensions    文件:MockitoExtension.java   
@Override
public Object resolveParameter(ParameterContext parameterContext,
    ExtensionContext extensionContext)
    throws ParameterResolutionException {
  List<ParameterFactory> validFactories =
      getSupportedFactories(parameterContext.getParameter()).collect(toList());

  if (validFactories.size() > 1) {
    throw new ParameterResolutionException(
        String.format("Too many factories: %s for parameter: %s",
            validFactories,
            parameterContext.getParameter()));
  }

  return Iterables.getOnlyElement(validFactories)
      .getParameterValue(parameterContext.getParameter());
}
项目:vaadin-016-helloworld-14    文件:PageObjectExtension.java   
@Override
//  public AbstractVaadinPageObject resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext)
  public AbstractVaadinPageObject resolve(ParameterContext parameterContext, ExtensionContext extensionContext)
      throws ParameterResolutionException {

    Supplier<WebDriver> webDriverSupplier = webdriver().apply(extensionContext);

    Class<?> pageObject = parameterContext.getParameter().getType();
    try {
      Constructor<?> constructor =
          pageObject.getConstructor(WebDriver.class);
      return AbstractVaadinPageObject.class.cast(constructor.newInstance(webDriverSupplier.get()));
    } catch (NoSuchMethodException
        | IllegalAccessException
        | InstantiationException
        | InvocationTargetException e) {
      e.printStackTrace();
      throw new ParameterResolutionException("was not able to create PageObjectInstance ", e);
    }
  }
项目:fyodor    文件:SupportedTemporalityParametersTest.java   
private static ParameterContext parameterContextOf(final Parameter parameter) {
    return new ParameterContext() {
        @Override
        public Parameter getParameter() {
            return parameter;
        }

        @Override
        public int getIndex() {
            return 0;
        }

        @Override
        public Optional<Object> getTarget() {
            return Optional.empty();
        }
    };
}
项目:weld-junit    文件:WeldJunit5Extension.java   
@Override
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
    // we did our checks in supportsParameter() method, now we can do simple resolution
    if (getContainerFromStore(extensionContext) != null) {
        List<Annotation> qualifiers = resolveQualifiers(parameterContext, getContainerFromStore(extensionContext).getBeanManager());
        return getContainerFromStore(extensionContext)
            .select(parameterContext.getParameter().getType(), qualifiers.toArray(new Annotation[qualifiers.size()])).get();
    }
    return null;
}
项目:weld-junit    文件:WeldJunit5Extension.java   
@Override
public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
    // if weld container isn't up yet or if its not Method, we don't resolve it
    if (getContainerFromStore(extensionContext) == null || (!(parameterContext.getDeclaringExecutable() instanceof Method))) {
        return false;
    }
    List<Annotation> qualifiers = resolveQualifiers(parameterContext, getContainerFromStore(extensionContext).getBeanManager());
    // if we require explicit parameter injection (via global settings or annotation) and there are no qualifiers we don't resolve it
    if ((getExplicitInjectionInfoFromStore(extensionContext) || (methodRequiresExplicitParamInjection(parameterContext))) && qualifiers.isEmpty()) {
        return false;
    } else {
        return getContainerFromStore(extensionContext).select(parameterContext.getParameter().getType(), qualifiers.toArray(new Annotation[qualifiers.size()]))
            .isResolvable();
    }
}
项目:weld-junit    文件:WeldJunit5Extension.java   
private List<Annotation> resolveQualifiers(ParameterContext pc, BeanManager bm) {
    List<Annotation> qualifiers = new ArrayList<>();
    if (pc.getParameter().getAnnotations().length == 0) {
        return Collections.emptyList();
    } else {
        for (Annotation annotation : pc.getParameter().getAnnotations()) {
            // use BeanManager.isQualifier to be able to detect custom qualifiers which don't need to have @Qualifier
            if (bm.isQualifier(annotation.annotationType())) {
                qualifiers.add(annotation);
            }
        }
    }
    return qualifiers;
}
项目:weld-junit    文件:WeldJunit5Extension.java   
private boolean methodRequiresExplicitParamInjection(ParameterContext pc) {
    for (Annotation annotation : pc.getDeclaringExecutable().getAnnotations()) {
        if (annotation.annotationType().equals(ExplicitParamInjection.class)) {
            return true;
        }
    }
    return false;
}
项目:junit5-extensions    文件:ClassArgumentConverter.java   
@SuppressWarnings("unchecked")
@Override
public Object convert(Object input, ParameterContext context) throws ArgumentConversionException {
  TypeToken<?> parameterType = TypeToken.of(context.getParameter().getParameterizedType());
  if (parameterType.getRawType() != Class.class) {
    throw new ArgumentConversionException(
        String.format("Could not convert: %s. Invalid parameter type.", input));
  }

  return convert(input.toString(), (TypeToken<? extends Class<?>>) parameterType);
}
项目:junit5-extensions    文件:GuiceExtension.java   
@Override
public boolean supportsParameter(ParameterContext parameterContext,
    ExtensionContext extensionContext)
    throws ParameterResolutionException {
  Parameter parameter = parameterContext.getParameter();
  if (getBindingAnnotations(parameter).size() > 1) {
    return false;
  }

  Key<?> key = getKey(
      extensionContext.getTestClass(),
      parameter);
  Optional<Injector> optInjector = getInjectorForParameterResolution(extensionContext);
  return optInjector.map(injector -> injector.getExistingBinding(key)).isPresent();
}
项目:junit5-extensions    文件:GuiceExtension.java   
@Override
public Object resolveParameter(ParameterContext parameterContext,
    ExtensionContext extensionContext)
    throws ParameterResolutionException {
  Parameter parameter = parameterContext.getParameter();
  Key<?> key = getKey(extensionContext.getTestClass(), parameter);
  Injector injector = getInjectorForParameterResolution(extensionContext)
      .orElseThrow(() ->
          new ParameterResolutionException(
              String.format(
                  "Could not create injector for: %s It has no annotated element.",
                  extensionContext.getDisplayName())));

  return injector.getInstance(key);
}
项目:selenium-jupiter    文件:SeleniumExtension.java   
@Override
public boolean supportsParameter(ParameterContext parameterContext,
        ExtensionContext extensionContext) {
    Class<?> type = parameterContext.getParameter().getType();
    return (WebDriver.class.isAssignableFrom(type) && !type.isInterface())
            || type.equals(List.class);
}
项目:verify-matching-service-adapter    文件:ApplicationConfigurationResolver.java   
@Override
public ApplicationConfiguration resolveParameter(
    ParameterContext parameterContext,
    ExtensionContext extensionContext
) throws ParameterResolutionException {
    return getConfiguration();
}
项目:verify-matching-service-adapter    文件:FilesLocatorResolver.java   
@Override
public FilesLocator resolveParameter(
    ParameterContext parameterContext,
    ExtensionContext extensionContext
) throws ParameterResolutionException {
    if (applicationFilesLocator == null) {
        applicationFilesLocator = new ScenarioFilesLocator(null);
    }

    return applicationFilesLocator;
}
项目:histone-java2    文件:StringParamResolver.java   
@Override
public Object resolve(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
    if (extensionContext.getTestClass().isPresent()) {
        CasePack pack = extensionContext.getTestClass().get().getAnnotation(CasePack.class);
        return pack.value();
    }
    return null;
}
项目:Lyrics    文件:ConfigurationExtension.java   
@Override
public Object resolve(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
    String tuneType = parameterContext.getParameter().getAnnotation(TuneProvider.class).value();
    switch (tuneType) {
        case DEFAULT:
            return getDefaultTune();
        case JACKSON:
            return getJacksonTune();
        case INTERFACES:
            return getInterfacesTune();
        case NO_MODIFIERS:
            return getNoModifiersTune();
        case REQUIRED:
            return getRequiredTune();
        case JSR_303:
            return getJsr303Tune();
        case JSR_305:
            return getJsr305Tune();
        case GSON:
            return getGsonTune();
        case ANNOTATIONS:
            return getAnnotationsTune();
        case ADDITIONAL_FIELD_PROPERTY_HANDLER:
            return getAdditionalFieldPropertiesHandlerTune();
        default:
            return null;
    }
}
项目:Lyrics    文件:ConfigurationExtension.java   
@Override
public Object resolve(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
    String tuneType = parameterContext.getParameter().getAnnotation(TuneProvider.class).value();
    switch (tuneType) {
        case DEFAULT:
            return getDefaultTune();
        case JACKSON:
            return getJacksonTune();
        case INTERFACES:
            return getInterfacesTune();
        case NO_MODIFIERS:
            return getNoModifiersTune();
        case REQUIRED:
            return getRequiredTune();
        case JSR_303:
            return getJsr303Tune();
        case JSR_305:
            return getJsr305Tune();
        case ANDROID_SUPPORT:
            return getAndroidSpportTune();
        case GSON:
            return getGsonTune();
        case ANNOTATIONS:
            return getAnnotationsTune();
        case ADDITIONAL_FIELD_PROPERTY_HANDLER:
            return getAdditionalFieldPropertiesHandlerTune();
        default:
            return null;
    }
}
项目:demo-junit-5    文件:RandomProvider.java   
@Override
public boolean supports(
        ParameterContext parameterContext, ExtensionContext extensionContext)
        throws ParameterResolutionException {
    Class<?> targetType = parameterContext.getParameter().getType();
    return targetType == Random.class || targetType == SeededRandom.class;
}
项目:demo-junit-5    文件:RandomProvider.java   
@Override
public Object resolve(
        ParameterContext parameterContext, ExtensionContext context)
        throws ParameterResolutionException {
    return randomByUniqueId(context)
            .computeIfAbsent(context.getUniqueId(), SeededRandom::create);
}
项目:demo-junit-5    文件:CustomArgumentConverterTest.java   
@Override
public Object convert(Object input, ParameterContext parameterContext) throws ArgumentConversionException {
    if (input instanceof Point)
        return input;
    if (input instanceof String)
        try {
            return Point.from((String) input);
        } catch (NumberFormatException ex) {
            String message = input + " is no correct string representation of a point.";
            throw new ArgumentConversionException(message, ex);
        }
    throw new ArgumentConversionException(input + " is no valid point");
}
项目:JUnit-5-Quick-Start-Guide-with-AssertJ-Spring-TestFX-Mockito    文件:RootElementResolver.java   
@Override
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
    AnnotatedElement annotatedElement = extensionContext.getElement().orElse(null);

    if (annotatedElement == null) return null;

    UITest annotation = annotatedElement.getAnnotation(UITest.class);
    FXMLLoader loader = new FXMLLoader(getClass().getResource(annotation.value()));

    try {
        return loader.load();
    } catch (IOException e) {
        return null;
    }
}
项目:JUnit-5-Quick-Start-Guide-with-AssertJ-Spring-TestFX-Mockito    文件:ClassName_ParameterResolver.java   
/**
 * Simple example that simply resolves the Parameter by returning the Class-Name based on the Parameter-Context.
 */
@Override
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
    Class<?> contextClass = extensionContext.getTestClass().orElse(null);

    return contextClass == null ? null : contextClass.getSimpleName();
}
项目:gstrap    文件:GuiceExtension.java   
@Override
public boolean supportsParameter(final ParameterContext parameterContext, final ExtensionContext extensionContext) throws ParameterResolutionException {
    final Parameter parameter = parameterContext.getParameter();
    if (getBindingAnnotations(parameter).size() > 1)
        return false;

    final Injector injector = getInjector(extensionContext);
    if (injector == null)
        return false;

    final Key<?> key = getKey(parameter);

    return injector.getExistingBinding(key) != null;
}
项目:gstrap    文件:GuiceExtension.java   
@Override
public Object resolveParameter(final ParameterContext parameterContext, final ExtensionContext extensionContext) throws ParameterResolutionException {
    final Parameter parameter = parameterContext.getParameter();
    final Key<?> key = getKey(parameter);
    final Injector injector = getInjector(extensionContext);

    return injector.getInstance(key);

}
项目:keystore-explorer    文件:JavaVersionTest.java   
@Override
public Object convert(Object source, ParameterContext context) throws ArgumentConversionException {
    try {
        return JavaVersion.class.getField(String.valueOf(source)).get(null);
    } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
        throw new ArgumentConversionException(e.toString());
    }
}
项目:spring-test-junit5    文件:SpringExtension.java   
/**
 * Resolve a value for the {@link Parameter} in the supplied {@link ParameterContext} by
 * retrieving the corresponding dependency from the test's {@link ApplicationContext}.
 * <p>Delegates to {@link ParameterAutowireUtils#resolveDependency}.
 * @see #supportsParameter
 * @see ParameterAutowireUtils#resolveDependency
 */
@Override
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) {
    Parameter parameter = parameterContext.getParameter();
    Class<?> testClass = extensionContext.getRequiredTestClass();
    ApplicationContext applicationContext = getApplicationContext(extensionContext);
    return ParameterAutowireUtils.resolveDependency(parameter, testClass, applicationContext);
}
项目:resp-server    文件:CommandRuleExtension.java   
@Override
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext)
    throws ParameterResolutionException {
  CommandRule commandRule = new CommandRule(
          parameterContext.getTarget().orElseThrow(() -> new ParameterResolutionException("no target")));
  commandRule.init();
  return commandRule;
}
项目:fyodor    文件:TemporalityParameterResolver.java   
@Override
public boolean supportsParameter(final ParameterContext parameterContext,
                                 final ExtensionContext extensionContext) throws ParameterResolutionException {
    final Parameter parameter = parameterContext.getParameter();

    return parameter.getType().equals(Temporality.class)
            || isSupportedJavaTimeParameterWithCurrentAnnotation(parameter);
}
项目:GitToolBox    文件:ExtensionContextParamResolver.java   
@Override
public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) {
  boolean supports = parameterTypes.stream().anyMatch(type -> supportsParameter(parameterContext, type));
  if (!supports) {
    supports = parent.supportsParameter(parameterContext, extensionContext);
  }
  return supports;
}
项目:GitToolBox    文件:ExtensionContextParamResolver.java   
@Override
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext)
    throws ParameterResolutionException {
  Optional<Object> resolved = parameterTypes.stream()
      .filter(type -> supportsParameter(parameterContext, type))
      .map(type -> extensionContext.getStore(namespace).get(type, type))
      .map(Object.class::cast)
      .findFirst();
  return resolved.orElseGet(() -> parent.resolveParameter(parameterContext, extensionContext));
}
项目:junit-dataprovider    文件:DataProviderParameterResolver.java   
@Override
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext)
        throws ParameterResolutionException {
    Object result = arguments.get(parameterContext.getIndex());

    // TODO workaround for https://github.com/junit-team/junit5/issues/1092
    Class<?> parameterType = parameterContext.getParameter().getType();
    if (parameterType.isPrimitive()) {
        return convertToBoxedTypeAsWorkaroundForNotWorkingWideningAndUnboxingConversion(result, parameterType);
    }

    return result;
}
项目:qpp-conversion-tool    文件:MockitoExtension.java   
@Override
public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) {
    return parameterContext.getParameter().isAnnotationPresent(Mock.class);
}
项目:qpp-conversion-tool    文件:MockitoExtension.java   
@Override
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) {
    return getMock(parameterContext.getParameter(), extensionContext);
}
项目:mastering-junit5    文件:MockitoExtension.java   
@Override
public boolean supportsParameter(ParameterContext parameterContext,
        ExtensionContext extensionContext) {
    return parameterContext.getParameter().isAnnotationPresent(Mock.class);
}
项目:mastering-junit5    文件:MockitoExtension.java   
@Override
public Object resolveParameter(ParameterContext parameterContext,
        ExtensionContext extensionContext) {
    return getMock(parameterContext.getParameter(), extensionContext);
}
项目:mastering-junit5    文件:MockitoExtension.java   
@Override
public boolean supportsParameter(ParameterContext parameterContext,
        ExtensionContext extensionContext) {
    return parameterContext.getParameter().isAnnotationPresent(Mock.class);
}
项目:mastering-junit5    文件:MockitoExtension.java   
@Override
public Object resolveParameter(ParameterContext parameterContext,
        ExtensionContext extensionContext) {
    return getMock(parameterContext.getParameter(), extensionContext);
}
项目:mastering-junit5    文件:MyParameterResolver.java   
@Override
public boolean supportsParameter(ParameterContext parameterContext,
        ExtensionContext extensionContext)
        throws ParameterResolutionException {
    return true;
}
项目:mastering-junit5    文件:MyParameterResolver.java   
@Override
public Object resolveParameter(ParameterContext parameterContext,
        ExtensionContext extensionContext)
        throws ParameterResolutionException {
    return "my parameter";
}
项目:intellij-spring-assistant    文件:MockitoExtension.java   
@Override
public boolean supportsParameter(ParameterContext parameterContext,
    ExtensionContext extensionContext) {
  return parameterContext.getParameter().isAnnotationPresent(Mock.class);
}