##### Coverage Report - org.jbehave.core.configuration.weld.WeldAnnotationBuilder

Classes in this File | Line Coverage | Branch Coverage | Complexity
WeldAnnotationBuilder |
80% | 17/21
66% | 4/6
| 2.0;2

1 |  |
     package org.jbehave.core.configuration.weld;
2 |  |
3 |  |
     import org.jbehave.core.annotations.weld.UsingWeld;
4 |  |
     import org.jbehave.core.configuration.AnnotationBuilder;
5 |  |
     import org.jbehave.core.configuration.AnnotationFinder;
6 |  |
     import org.jbehave.core.configuration.AnnotationMonitor;
7 |  |
     import org.jbehave.core.configuration.AnnotationRequired;
8 |  |
     import org.jbehave.core.configuration.Configuration;
9 |  |
     import org.jbehave.core.configuration.PrintStreamAnnotationMonitor;
10 |  |
     import org.jbehave.core.steps.CompositeStepsFactory;
11 |  |
     import org.jbehave.core.steps.InjectableStepsFactory;
12 |  |
     import org.jbehave.core.steps.ParameterConverters;
13 |  |
14 |  |
     /**
15 |  |
      * Extends {@link AnnotationBuilder} to provide Weld-based dependency injection
16 |  |
      * if {@link UsingWeld} annotation is present.
17 |  |
      *
18 |  |
      * @author Aaron Walker
19 |  |
      */
20 |  |
     public class WeldAnnotationBuilder extends AnnotationBuilder {
21 |  |
22 |  |
         private Configuration configuration;
23 |  |
         private InjectableStepsFactory stepsFactory;
24 |  |
25 |  |
         public WeldAnnotationBuilder(Class<?> annotatedClass) {
26 | 27 |
             this(annotatedClass, new PrintStreamAnnotationMonitor());
27 | 27 |
         }
28 |  |
29 |  |
         public WeldAnnotationBuilder(Class<?> annotatedClass, AnnotationMonitor annotationMonitor) {
30 | 27 |
             super(annotatedClass, annotationMonitor);
31 | 27 |
         }
32 |  |
33 |  |
         public WeldAnnotationBuilder(Class<?> annotatedClass, Configuration configuration,
34 |  |
                 InjectableStepsFactory stepsFactory) {
35 | 27 |
             this(annotatedClass);
36 | 27 |
             this.configuration = configuration;
37 | 27 |
             this.stepsFactory = stepsFactory;
38 | 27 |
         }
39 |  |
40 |  |
         @Override
41 |  |
         public Configuration buildConfiguration() throws AnnotationRequired {
42 | 8 |
             AnnotationFinder finder = annotationFinder();
43 | 8 |
             if (finder.isAnnotationPresent(UsingWeld.class)) {
44 | 6 |
                 if (configuration == null) {
45 | 0 |
                     return super.buildConfiguration();
46 |  |
                 }
47 | 6 |
                 return configuration;
48 |  |
             } else {
49 | 2 |
                 annotationMonitor().annotationNotFound(UsingWeld.class, annotatedClass());
50 |  |
             }
51 | 2 |
             return super.buildConfiguration();
52 |  |
         }
53 |  |
54 |  |
         @Override
55 |  |
         public InjectableStepsFactory buildStepsFactory(Configuration configuration) {
56 | 3 |
             InjectableStepsFactory factoryUsingSteps = super.buildStepsFactory(configuration);
57 | 3 |
             if (stepsFactory != null) {
58 | 3 |
                 return new CompositeStepsFactory(stepsFactory, factoryUsingSteps);
59 |  |
             }
60 | 0 |
             return factoryUsingSteps;
61 |  |
         }
62 |  |
63 |  |
         @Override
64 |  |
         protected ParameterConverters parameterConverters(AnnotationFinder annotationFinder) {
65 | 0 |
             ParameterConverters converters = super.parameterConverters(annotationFinder);
66 | 0 |
             return converters;
67 |  |
         }
68 |  |
     }