Search in sources :

Example 1 with MockFilter

use of org.apache.deltaspike.testcontrol.spi.mock.MockFilter in project deltaspike by apache.

the class MockExtension method onProcessInjectionTarget.

public <X> void onProcessInjectionTarget(@Observes ProcessInjectionTarget<X> processInjectionTarget, BeanManager beanManager) {
    if (!isActivated) {
        return;
    }
    for (MockFilter mockFilter : mockFilters) {
        if (!mockFilter.isMockedImplementationSupported(beanManager, processInjectionTarget.getAnnotatedType())) {
            return;
        }
    }
    List<Annotation> qualifiers = new ArrayList<Annotation>();
    for (Annotation annotation : processInjectionTarget.getAnnotatedType().getAnnotations()) {
        if (beanManager.isQualifier(annotation.annotationType())) {
            qualifiers.add(annotation);
        }
    }
    Typed typed = processInjectionTarget.getAnnotatedType().getAnnotation(Typed.class);
    List<Type> foundTypes = new ArrayList<Type>();
    if (typed != null) {
        Collections.addAll(foundTypes, typed.value());
    } else {
        foundTypes.addAll(extractTypes(processInjectionTarget.getAnnotatedType().getJavaClass()));
    }
    if (foundTypes.isEmpty()) {
        return;
    }
    final InjectionTarget<X> originalInjectionTarget = processInjectionTarget.getInjectionTarget();
    processInjectionTarget.setInjectionTarget(new MockAwareInjectionTargetWrapper<X>(beanManager, originalInjectionTarget, foundTypes, qualifiers));
}
Also used : Typed(javax.enterprise.inject.Typed) Type(java.lang.reflect.Type) ArrayList(java.util.ArrayList) MockFilter(org.apache.deltaspike.testcontrol.spi.mock.MockFilter) Annotation(java.lang.annotation.Annotation)

Example 2 with MockFilter

use of org.apache.deltaspike.testcontrol.spi.mock.MockFilter in project deltaspike by apache.

the class MockExtension method onProcessProducer.

public <X, T> void onProcessProducer(@Observes ProcessProducer<X, T> processProducer, BeanManager beanManager) {
    if (!isActivated) {
        return;
    }
    for (MockFilter mockFilter : mockFilters) {
        if (!mockFilter.isMockedImplementationSupported(beanManager, processProducer.getAnnotatedMember())) {
            return;
        }
    }
    final Producer<T> originalProducer = processProducer.getProducer();
    AnnotatedMember<X> annotatedMember = processProducer.getAnnotatedMember();
    List<Annotation> qualifiers = new ArrayList<Annotation>();
    for (Annotation annotation : annotatedMember.getAnnotations()) {
        if (beanManager.isQualifier(annotation.annotationType())) {
            qualifiers.add(annotation);
        }
    }
    Typed typed = annotatedMember.getAnnotation(Typed.class);
    List<Type> foundTypes = new ArrayList<Type>();
    if (typed != null) {
        Collections.addAll(foundTypes, typed.value());
    } else if (annotatedMember.getBaseType() instanceof Class) {
        foundTypes.addAll(extractTypes((Class) annotatedMember.getBaseType()));
    }
    if (foundTypes.isEmpty()) {
        return;
    }
    processProducer.setProducer(new MockAwareProducerWrapper<T>(beanManager, originalProducer, foundTypes, qualifiers));
}
Also used : ArrayList(java.util.ArrayList) Annotation(java.lang.annotation.Annotation) Typed(javax.enterprise.inject.Typed) Type(java.lang.reflect.Type) MockFilter(org.apache.deltaspike.testcontrol.spi.mock.MockFilter)

Aggregations

Annotation (java.lang.annotation.Annotation)2 Type (java.lang.reflect.Type)2 ArrayList (java.util.ArrayList)2 Typed (javax.enterprise.inject.Typed)2 MockFilter (org.apache.deltaspike.testcontrol.spi.mock.MockFilter)2