# JSR 365: Contexts and Dependency Injection for Java 2.0 TCK Coverage

## 2.0

### Contents

Chapter Summary
Section Summary
Coverage Detail
Unmatched Tests
Unversioned Tests
Test Group Summary

### Coverage Distribution

### Chapter Summary

Chapter | Assertions | Testable | Total Tested | Total Tests | Tested (problematic) | Tested (working) | Coverage %
--- | --- | --- | --- | --- | --- | --- | ---
1 Architecture | 0 | 0 | 0 | 0 | 0 | 0 |
2 Concepts | 146 | 122 | 122 | 181 | 0 | 122 | 100.00%
3 Programming model | 177 | 172 | 169 | 216 | 0 | 169 | 98.26%
4 Inheritance and specialization | 55 | 49 | 49 | 91 | 0 | 49 | 100.00%
5 Dependency injection and lookup | 198 | 184 | 181 | 324 | 0 | 181 | 98.37%
6 Scopes and contexts | 172 | 143 | 142 | 206 | 0 | 142 | 99.30%
7 Lifecycle of contextual instances | 30 | 30 | 29 | 40 | 0 | 29 | 96.67%
8 Decorators | 61 | 56 | 54 | 78 | 0 | 54 | 96.43%
9 Interceptor bindings | 27 | 24 | 24 | 48 | 0 | 24 | 100.00%
10 Events | 113 | 100 | 100 | 204 | 0 | 100 | 100.00%
11 Portable extensions | 491 | 459 | 455 | 590 | 0 | 455 | 99.13%
12 Packaging and deployment | 65 | 44 | 44 | 94 | 0 | 44 | 100.00%
13 Bootstrapping a CDI container in Java SE | 28 | 25 | 25 | 18 | 0 | 25 | 100.00%
14 Scopes and contexts in Java SE | 4 | 4 | 4 | 5 | 0 | 4 | 100.00%
15 Packaging and deployment in Java SE | 2 | 2 | 2 | 2 | 0 | 2 | 100.00%
16 Portable extensions in Java SE | 1 | 0 | 0 | 0 | 0 | 0 |
17 Extended Concepts for Java EE | 10 | 8 | 8 | 10 | 0 | 8 | 100.00%
18 Addition to programming model for Java EE | 130 | 122 | 122 | 178 | 0 | 122 | 100.00%
19 Dependency injection, lookup and EL in Java EE | 60 | 58 | 58 | 74 | 0 | 58 | 100.00%
20 Scopes and contexts in Java EE | 109 | 103 | 103 | 145 | 0 | 103 | 100.00%
21 Lifecycle of contextual instances | 34 | 30 | 25 | 31 | 0 | 25 | 83.33%
22 Decorators in Java EE | 17 | 17 | 15 | 14 | 0 | 15 | 88.24%
23 Interceptor bindings in Java EE | 2 | 2 | 2 | 1 | 0 | 2 | 100.00%
24 Events in Java EE | 4 | 4 | 4 | 11 | 0 | 4 | 100.00%
25 Portable extensions in Java EE | 49 | 49 | 49 | 57 | 0 | 49 | 100.00%
26 Packaging and deployment in Java EE | 47 | 42 | 40 | 66 | 0 | 40 | 95.24%
Total | 2032 | 1849 | 1826 | 2684 | 0 | 1826 | 98.76%

### Section Summary

Section | Assertions | Testable | Total Tested | Tested (problematic) | Tested (working) | Coverage %
--- | --- | --- | --- | --- | --- | ---
1 Architecture [architecture] | 0 | 0 | 0 | 0 | 0 |
2 Concepts [concepts] | 7 | 6 | 6 | 0 | 6 | 100.00%
2.1 Functionality provided by the container to the bean [capabilities] | 0 | 0 | 0 | 0 | 0 |
2.2 Bean types [bean_types] | 2 | 2 | 2 | 0 | 2 | 100.00%
2.2.1 Legal bean types [legal_bean_types] | 14 | 14 | 14 | 0 | 14 | 100.00%
2.2.2 Restricting the bean types of a bean [restricting_bean_types] | 9 | 9 | 9 | 0 | 9 | 100.00%
2.2.3 Typecasting between bean types [typecasting_between_bean_types] | 1 | 1 | 1 | 0 | 1 | 100.00%
2.3 Qualifiers [qualifiers] | 0 | 0 | 0 | 0 | 0 |
2.3.1 Built-in qualifier types [builtin_qualifiers] | 3 | 3 | 3 | 0 | 3 | 100.00%
2.3.2 Defining new qualifier types [defining_qualifier_types] | 3 | 1 | 1 | 0 | 1 | 100.00%
2.3.3 Declaring the qualifiers of a bean [declaring_bean_qualifiers] | 4 | 4 | 4 | 0 | 4 | 100.00%
2.3.4 Specifying qualifiers of an injected field [injected_field_qualifiers] | 2 | 2 | 2 | 0 | 2 | 100.00%
2.3.5 Specifying qualifiers of a method or constructor parameter [method_constructor_parameter_qualifiers] | 5 | 5 | 5 | 0 | 5 | 100.00%
2.3.6 Repeating qualifiers [repeating_qualifiers] | 1 | 1 | 1 | 0 | 1 | 100.00%
2.4 Scopes [scopes] | 3 | 2 | 2 | 0 | 2 | 100.00%
2.4.1 Built-in scope types [builtin_scopes] | 4 | 3 | 3 | 0 | 3 | 100.00%
2.4.2 Defining new scope types [defining_new_scope_type] | 4 | 2 | 2 | 0 | 2 | 100.00%
2.4.3 Declaring the bean scope [declaring_bean_scope] | 5 | 5 | 5 | 0 | 5 | 100.00%
2.4.4 Default scope [default_scope] | 5 | 5 | 5 | 0 | 5 | 100.00%
2.5 Default bean discovery mode [default_bean_discovery] | 5 | 5 | 5 | 0 | 5 | 100.00%
2.5.1 Bean defining annotations [bean_defining_annotations] | 9 | 8 | 8 | 0 | 8 | 100.00%
2.6 Bean names [names] | 1 | 1 | 1 | 0 | 1 | 100.00%
2.6.1 Declaring the bean name [declaring_bean_name] | 3 | 3 | 3 | 0 | 3 | 100.00%
2.6.2 Default bean names [default_name] | 7 | 7 | 7 | 0 | 7 | 100.00%
2.6.3 Beans with no name [beans_with_no_name] | 2 | 1 | 1 | 0 | 1 | 100.00%
2.7 Alternatives [alternatives] | 1 | 0 | 0 | 0 | 0 |
2.7.1 Declaring an alternative [declaring_alternative] | 7 | 6 | 6 | 0 | 6 | 100.00%
2.8 Stereotypes [stereotypes] | 5 | 4 | 4 | 0 | 4 | 100.00%
2.8.1 Defining new stereotypes [defining_new_stereotype] | 6 | 1 | 1 | 0 | 1 | 100.00%
2.8.1.1 Declaring the default scope for a stereotype [stereotype_default_scope] | 2 | 2 | 2 | 0 | 2 | 100.00%
2.8.1.2 Specifying interceptor bindings for a stereotype [specify_stereotype_interceptor_bindings] | 4 | 4 | 4 | 0 | 4 | 100.00%
2.8.1.3 Declaring a @Named stereotype [named_stereotype] | 5 | 3 | 3 | 0 | 3 | 100.00%
2.8.1.4 Declaring an @Alternative stereotype [alternative_stereotype] | 1 | 1 | 1 | 0 | 1 | 100.00%
2.8.1.5 Stereotypes with additional stereotypes [stereotypes_with_additional_stereotypes] | 3 | 2 | 2 | 0 | 2 | 100.00%
2.8.2 Declaring the stereotypes for a bean [declaring_stereotypes] | 5 | 5 | 5 | 0 | 5 | 100.00%
2.8.3 Built-in stereotypes [builtin_stereotypes] | 1 | 0 | 0 | 0 | 0 |
2.9 Problems detected automatically by the container [exceptions] | 7 | 4 | 4 | 0 | 4 | 100.00%
2.10 Priority ordering [priorities] | 0 | 0 | 0 | 0 | 0 |
3 Programming model [implementation] | 0 | 0 | 0 | 0 | 0 |
3.1 Managed beans [managed_beans] | 5 | 5 | 5 | 0 | 5 | 100.00%
3.1.1 Which Java classes are managed beans? [what_classes_are_beans] | 9 | 8 | 8 | 0 | 8 | 100.00%
3.1.2 Bean types of a managed bean [managed_bean_types] | 2 | 2 | 2 | 0 | 2 | 100.00%
3.1.3 Declaring a managed bean [declaring_managed_bean] | 7 | 6 | 6 | 0 | 6 | 100.00%
3.1.4 Specializing a managed bean [specialize_managed_bean] | 6 | 6 | 6 | 0 | 6 | 100.00%
3.1.5 Default bean name for a managed bean [managed_bean_name] | 1 | 1 | 1 | 0 | 1 | 100.00%
3.2 Producer methods [producer_method] | 14 | 14 | 14 | 0 | 14 | 100.00%
3.2.1 Bean types of a producer method [producer_method_types] | 5 | 5 | 5 | 0 | 5 | 100.00%
3.2.2 Declaring a producer method [declaring_producer_method] | 13 | 13 | 13 | 0 | 13 | 100.00%
3.2.3 Specializing a producer method [specialize_producer_method] | 3 | 3 | 3 | 0 | 3 | 100.00%
3.2.4 Default bean name for a producer method [producer_method_name] | 2 | 2 | 2 | 0 | 2 | 100.00%
3.3 Producer fields [producer_field] | 14 | 13 | 13 | 0 | 13 | 100.00%
3.3.1 Bean types of a producer field [producer_field_types] | 5 | 5 | 5 | 0 | 5 | 100.00%
3.3.2 Declaring a producer field [declaring_producer_field] | 8 | 8 | 8 | 0 | 8 | 100.00%
3.3.3 Default bean name for a producer field [producer_field_name] | 1 | 1 | 1 | 0 | 1 | 100.00%
3.4 Disposer methods [disposer_method] | 4 | 4 | 4 | 0 | 4 | 100.00%
3.4.1 Disposed parameter of a disposer method [disposer_method_disposed_parameter] | 3 | 3 | 3 | 0 | 3 | 100.00%
3.4.2 Declaring a disposer method [declaring_disposer_method] | 10 | 10 | 10 | 0 | 10 | 100.00%
3.4.3 Disposer method resolution [disposer_method_resolution] | 4 | 4 | 4 | 0 | 4 | 100.00%
3.5 Bean constructors [bean_constructors] | 1 | 1 | 1 | 0 | 1 | 100.00%
3.5.1 Declaring a bean constructor [declaring_bean_constructor] | 8 | 8 | 8 | 0 | 8 | 100.00%
3.6 Injected fields [injected_fields] | 1 | 1 | 1 | 0 | 1 | 100.00%
3.6.1 Declaring an injected field [declaring_injected_field] | 2 | 2 | 2 | 0 | 2 | 100.00%
3.7 Initializer methods [initializer_methods] | 4 | 3 | 3 | 0 | 3 | 100.00%
3.7.1 Declaring an initializer method [declaring_initializer] | 8 | 8 | 8 | 0 | 8 | 100.00%
3.8 The default qualifier at injection points [injection_point_default_qualifier] | 1 | 1 | 1 | 0 | 1 | 100.00%
3.9 The qualifier @Named at injection points [named_at_injection_point] | 2 | 2 | 2 | 0 | 2 | 100.00%
3.10 @New qualified beans [new] | 24 | 23 | 20 | 0 | 20 | 86.96%
3.11 Unproxyable bean types [unproxyable] | 10 | 10 | 10 | 0 | 10 | 100.00%
4 Inheritance and specialization [inheritance] | 0 | 0 | 0 | 0 | 0 |
4.1 Inheritance of type-level metadata [type_level_inheritance] | 22 | 18 | 18 | 0 | 18 | 100.00%
4.2 Inheritance of member-level metadata [member_level_inheritance] | 20 | 20 | 20 | 0 | 20 | 100.00%
4.3 Specialization [specialization] | 5 | 4 | 4 | 0 | 4 | 100.00%
4.3.1 Direct and indirect specialization [direct_and_indirect_specialization] | 8 | 7 | 7 | 0 | 7 | 100.00%
5 Dependency injection and lookup [injection_and_resolution] | 2 | 1 | 1 | 0 | 1 | 100.00%
5.1 Modularity [selection] | 5 | 4 | 4 | 0 | 4 | 100.00%
5.1.1 Declaring selected alternatives [declaring_selected_alternatives] | 1 | 0 | 0 | 0 | 0 |
5.1.1.1 Declaring selected alternatives for an application [declaring_selected_alternatives_application] | 4 | 4 | 4 | 0 | 4 | 100.00%
5.1.1.2 Declaring selected alternatives for a bean archive [declaring_selected_alternatives_bean_archive] | 11 | 10 | 10 | 0 | 10 | 100.00%
5.1.2 Enabled and disabled beans [enablement] | 1 | 0 | 0 | 0 | 0 |
5.1.3 Inconsistent specialization [inconsistent_specialization] | 1 | 1 | 1 | 0 | 1 | 100.00%
5.1.4 Inter-module injection [inter_module_injection] | 14 | 13 | 12 | 0 | 12 | 92.31%
5.2 Typesafe resolution [typesafe_resolution] | 0 | 0 | 0 | 0 | 0 |
5.2.1 Performing typesafe resolution [performing_typesafe_resolution] | 12 | 12 | 12 | 0 | 12 | 100.00%
5.2.2 Unsatisfied and ambiguous dependencies [unsatisfied_and_ambig_dependencies] | 9 | 9 | 9 | 0 | 9 | 100.00%
5.2.3 Legal injection point types [legal_injection_point_types] | 3 | 3 | 3 | 0 | 3 | 100.00%
5.2.4 Assignability of raw and parameterized types [assignable_parameters] | 10 | 10 | 10 | 0 | 10 | 100.00%
5.2.5 Primitive types and null values [primitive_types_and_null_values] | 3 | 3 | 3 | 0 | 3 | 100.00%
5.2.6 Qualifier annotations with members [qualifier_annotation_members] | 3 | 1 | 1 | 0 | 1 | 100.00%
5.2.7 Multiple qualifiers [multiple_qualifiers] | 4 | 4 | 4 | 0 | 4 | 100.00%
5.3 EL name resolution [name_resolution] | 2 | 2 | 2 | 0 | 2 | 100.00%
5.3.1 Ambiguous EL names [ambig_names] | 4 | 4 | 4 | 0 | 4 | 100.00%
5.4 Client proxies [client_proxies] | 5 | 3 | 3 | 0 | 3 | 100.00%
5.4.1 Client proxy invocation [client_proxy_invocation] | 3 | 2 | 2 | 0 | 2 | 100.00%
5.5 Dependency injection [injection] | 4 | 4 | 2 | 0 | 2 | 50.00%
5.5.1 Injection using the bean constructor [instantiation] | 2 | 2 | 2 | 0 | 2 | 100.00%
5.5.2 Injection of fields and initializer methods [fields_initializer_methods] | 6 | 6 | 6 | 0 | 6 | 100.00%
5.5.3 Destruction of dependent objects [dependent_objects_destruction] | 1 | 1 | 1 | 0 | 1 | 100.00%
5.5.4 Invocation of producer or disposer methods [producer_or_disposer_methods_invocation] | 6 | 6 | 6 | 0 | 6 | 100.00%
5.5.5 Access to producer field values [producer_fields_access] | 2 | 2 | 2 | 0 | 2 | 100.00%
5.5.6 Invocation of observer methods [observers_method_invocation] | 4 | 4 | 4 | 0 | 4 | 100.00%
5.5.7 Injection point metadata [injection_point] | 24 | 24 | 24 | 0 | 24 | 100.00%
5.5.8 Bean metadata [bean_metadata] | 17 | 17 | 17 | 0 | 17 | 100.00%
5.6 Programmatic lookup [programmatic_lookup] | 5 | 5 | 5 | 0 | 5 | 100.00%
5.6.1 The Instance interface [dynamic_lookup] | 22 | 21 | 21 | 0 | 21 | 100.00%
5.6.2 The built-in Instance [builtin_instance] | 6 | 4 | 4 | 0 | 4 | 100.00%
5.6.3 Using AnnotationLiteral and TypeLiteral [annotationliteral_typeliteral] | 2 | 2 | 2 | 0 | 2 | 100.00%
5.6.4 Built-in annotation literals [built_in_annotation_literals] | 0 | 0 | 0 | 0 | 0 |
6 Scopes and contexts [contexts] | 0 | 0 | 0 | 0 | 0 |
6.1 The Contextual interface [contextual] | 4 | 2 | 2 | 0 | 2 | 100.00%
6.1.1 The CreationalContext interface [creational_context] | 7 | 3 | 3 | 0 | 3 | 100.00%
6.2 The Context interface [context] | 15 | 14 | 14 | 0 | 14 | 100.00%
6.3 Normal scopes and pseudo-scopes [normal_scope] | 8 | 3 | 3 | 0 | 3 | 100.00%
6.4 Dependent pseudo-scope [dependent_context] | 10 | 10 | 10 | 0 | 10 | 100.00%
6.4.1 Dependent objects [dependent_objects] | 7 | 7 | 7 | 0 | 7 | 100.00%
6.4.2 Destruction of objects with scope @Dependent [dependent_destruction] | 11 | 10 | 10 | 0 | 10 | 100.00%
6.5 Contextual instances and contextual references [contextual_instances_and_references] | 0 | 0 | 0 | 0 | 0 |
6.5.1 The active context object for a scope [active_context] | 2 | 2 | 2 | 0 | 2 | 100.00%
6.5.2 Activating Built In Contexts [activating_builtin_contexts] | 1 | 0 | 0 | 0 | 0 |
6.5.2.1 6.5.2.1. Activating a Request Context [activating_request_context] | 9 | 9 | 9 | 0 | 9 | 100.00%
6.5.3 Contextual instance of a bean [contextual_instance] | 4 | 3 | 3 | 0 | 3 | 100.00%
6.5.4 Contextual reference for a bean [contextual_reference] | 6 | 6 | 6 | 0 | 6 | 100.00%
6.5.5 Contextual reference validity [contextual_reference_validity] | 3 | 2 | 2 | 0 | 2 | 100.00%
6.5.6 Injectable references [injectable_reference] | 2 | 1 | 1 | 0 | 1 | 100.00%
6.5.7 Injectable reference validity [injectable_reference_validity] | 2 | 1 | 0 | 0 | 0 | 0.00%
6.6 Passivation and passivating scopes [passivating_scope] | 1 | 1 | 1 | 0 | 1 | 100.00%
6.6.1 Passivation capable beans [passivation_capable] | 13 | 8 | 8 | 0 | 8 | 100.00%
6.6.2 Passivation capable injection points [passivation_capable_injection_points] | 6 | 6 | 6 | 0 | 6 | 100.00%
6.6.3 Passivation capable dependencies [passivation_capable_dependency] | 7 | 7 | 7 | 0 | 7 | 100.00%
6.6.4 Passivating scopes [passivating_scopes] | 3 | 1 | 1 | 0 | 1 | 100.00%
6.6.5 Validation of passivation capable beans and dependencies [passivation_validation] | 22 | 21 | 21 | 0 | 21 | 100.00%
6.7 Context management for built-in scopes [builtin_contexts] | 5 | 2 | 2 | 0 | 2 | 100.00%
6.7.1 Request context lifecycle [request_context] | 7 | 7 | 7 | 0 | 7 | 100.00%
6.7.2 Session context lifecycle [session_context] | 0 | 0 | 0 | 0 | 0 |
6.7.3 Application context lifecycle [application_context] | 3 | 3 | 3 | 0 | 3 | 100.00%
6.7.4 Conversation context lifecycle [conversation_context] | 0 | 0 | 0 | 0 | 0 |
6.7.5 The Conversation interface [conversation] | 14 | 14 | 14 | 0 | 14 | 100.00%
7 Lifecycle of contextual instances [lifecycle] | 0 | 0 | 0 | 0 | 0 |
7.1 Restriction upon bean instantiation [bean_instantiation_restriction] | 0 | 0 | 0 | 0 | 0 |
7.2 Container invocations and interception [biz_method] | 19 | 19 | 18 | 0 | 18 | 94.74%
7.3 Lifecycle of contextual instances [contextual_instance_lifecycle] | 0 | 0 | 0 | 0 | 0 |
7.3.1 Lifecycle of managed beans [managed_bean_lifecycle] | 2 | 2 | 2 | 0 | 2 | 100.00%
7.3.2 Lifecycle of producer methods [producer_method_lifecycle] | 5 | 5 | 5 | 0 | 5 | 100.00%
7.3.3 Lifecycle of producer fields [producer_field_lifecycle] | 4 | 4 | 4 | 0 | 4 | 100.00%
8 Decorators [decorators] | 3 | 2 | 2 | 0 | 2 | 100.00%
8.1 Decorator beans [decorator_bean] | 6 | 5 | 5 | 0 | 5 | 100.00%
8.1.1 Declaring a decorator [decorator_annotation] | 1 | 1 | 1 | 0 | 1 | 100.00%
8.1.2 Decorator delegate injection points [delegate_attribute] | 10 | 10 | 8 | 0 | 8 | 80.00%
8.1.3 Decorated types of a decorator [decorated_types] | 7 | 7 | 7 | 0 | 7 | 100.00%
8.2 Decorator enablement and ordering [enabled_decorators] | 4 | 3 | 3 | 0 | 3 | 100.00%
8.2.1 Decorator enablement and ordering for an application [enabled_decorators_priority] | 4 | 2 | 2 | 0 | 2 | 100.00%
8.2.2 Decorator enablement and ordering for a bean archive [enabled_decorators_bean_archive] | 5 | 5 | 5 | 0 | 5 | 100.00%
8.3 Decorator resolution [decorator_resolution] | 4 | 4 | 4 | 0 | 4 | 100.00%
8.3.1 Assignability of raw and parameterized types for delegate injection points [delegate_assignable_parameters] | 9 | 9 | 9 | 0 | 9 | 100.00%
8.4 Decorator invocation [decorator_invocation] | 8 | 8 | 8 | 0 | 8 | 100.00%
9 Interceptor bindings [interceptors] | 0 | 0 | 0 | 0 | 0 |
9.1 Interceptor binding types [interceptor_bindings] | 0 | 0 | 0 | 0 | 0 |
9.1.1 Interceptor bindings for stereotypes [stereotype_interceptor_bindings] | 3 | 2 | 2 | 0 | 2 | 100.00%
9.2 Declaring the interceptor bindings of an interceptor [declaring_interceptor] | 0 | 0 | 0 | 0 | 0 |
9.3 Binding an interceptor to a bean [binding_interceptor_to_bean] | 4 | 4 | 4 | 0 | 4 | 100.00%
9.4 Interceptor enablement and ordering [enabled_interceptors] | 12 | 11 | 11 | 0 | 11 | 100.00%
9.5 Interceptor resolution [interceptor_resolution] | 8 | 7 | 7 | 0 | 7 | 100.00%
10 Events [events] | 0 | 0 | 0 | 0 | 0 |
10.1 Event types and qualifier types [event_types_and_qualifier_types] | 7 | 6 | 6 | 0 | 6 | 100.00%
10.2 Firing events [firing_events] | 3 | 3 | 3 | 0 | 3 | 100.00%
10.2.1 Firing events synchronously [firing_events_synchronously] | 3 | 3 | 3 | 0 | 3 | 100.00%
10.2.2 Firing events asynchronously [firing_events_asynchronously] | 1 | 1 | 1 | 0 | 1 | 100.00%
10.2.3 The Event interface [event] | 14 | 11 | 11 | 0 | 11 | 100.00%
10.2.4 The built-in Event [builtin_event] | 7 | 7 | 7 | 0 | 7 | 100.00%
10.3 Observer resolution [observer_resolution] | 8 | 6 | 6 | 0 | 6 | 100.00%
10.3.1 Assignability of type variables, raw and parameterized types [observers_assignability] | 6 | 6 | 6 | 0 | 6 | 100.00%
10.3.2 Event qualifier types with members [event_qualifier_types_with_members] | 2 | 1 | 1 | 0 | 1 | 100.00%
10.3.3 Multiple event qualifiers [multiple_event_qualifiers] | 2 | 2 | 2 | 0 | 2 | 100.00%
10.4 Observer methods [observer_methods] | 5 | 4 | 4 | 0 | 4 | 100.00%
10.4.1 Event parameter of an observer method [observer_method_event_parameter] | 7 | 7 | 7 | 0 | 7 | 100.00%
10.4.2 Declaring an observer method [observes] | 11 | 11 | 11 | 0 | 11 | 100.00%
10.4.3 The EventMetadata interface [event_metadata] | 5 | 5 | 5 | 0 | 5 | 100.00%
10.4.4 Conditional observer methods [conditional_observer_methods] | 3 | 3 | 3 | 0 | 3 | 100.00%
10.4.5 Transactional observer methods [transactional_observer_methods] | 8 | 7 | 7 | 0 | 7 | 100.00%
10.5 Observer notification [observer_notification] | 11 | 8 | 8 | 0 | 8 | 100.00%
10.5.1 Handling multiple exceptions thrown during an asynchronous event [async_exception] | 2 | 2 | 2 | 0 | 2 | 100.00%
10.5.2 Observer ordering [observer_ordering] | 3 | 2 | 2 | 0 | 2 | 100.00%
10.5.3 Observer method invocation context [observer_method_invocation_context] | 5 | 5 | 5 | 0 | 5 | 100.00%
11 Portable extensions [spi] | 4 | 0 | 0 | 0 | 0 |
11.1 The Bean interface [bean] | 8 | 6 | 6 | 0 | 6 | 100.00%
11.1.1 The Decorator interface [decorator] | 4 | 4 | 4 | 0 | 4 | 100.00%
11.1.2 The Interceptor interface [interceptor] | 6 | 6 | 6 | 0 | 6 | 100.00%
11.1.3 The ObserverMethod interface [observer_method] | 9 | 8 | 8 | 0 | 8 | 100.00%
11.2 The Producer and InjectionTarget interfaces [injectiontarget] | 19 | 16 | 16 | 0 | 16 | 100.00%
11.3 The BeanManager object [beanmanager] | 17 | 16 | 16 | 0 | 16 | 100.00%
11.3.1 Obtaining a reference to the CDI container [provider] | 6 | 6 | 6 | 0 | 6 | 100.00%
11.3.2 Obtaining a contextual reference for a bean [bm_obtain_contextual_reference] | 3 | 3 | 3 | 0 | 3 | 100.00%
11.3.3 Obtaining an injectable reference [bm_obtain_injectable_reference] | 6 | 6 | 5 | 0 | 5 | 83.33%
11.3.4 Obtaining non-contextual instance [bm_obtain_unmanaged_instance] | 12 | 12 | 12 | 0 | 12 | 100.00%
11.3.5 Obtaining a CreationalContext [bm_obtain_creationalcontext] | 2 | 2 | 2 | 0 | 2 | 100.00%
11.3.6 Obtaining a Bean by type [bm_obtain_bean_by_type] | 7 | 7 | 7 | 0 | 7 | 100.00%
11.3.7 Obtaining a Bean by name [bm_obtain_bean_by_name] | 2 | 2 | 2 | 0 | 2 | 100.00%
11.3.8 Obtaining a passivation capable bean by identifier [bm_obtain_passivation_capable_bean] | 1 | 1 | 1 | 0 | 1 | 100.00%
11.3.9 Resolving an ambiguous dependency [bm_resolve_ambiguous_dep] | 4 | 4 | 4 | 0 | 4 | 100.00%
11.3.10 Validating an injection point [bm_validate_ip] | 1 | 1 | 1 | 0 | 1 | 100.00%
11.3.11 Firing an event [bm_fire_event] | 6 | 6 | 6 | 0 | 6 | 100.00%
11.3.12 Observer method resolution [bm_observer_method_resolution] | 5 | 5 | 5 | 0 | 5 | 100.00%
11.3.13 Decorator resolution [bm_decorator_resolution] | 5 | 5 | 5 | 0 | 5 | 100.00%
11.3.14 Interceptor resolution [bm_interceptor_resolution] | 4 | 4 | 4 | 0 | 4 | 100.00%
11.3.15 Determining if an annotation is a qualifier type, scope type, stereotype or interceptor binding type [bm_determining_annotation] | 7 | 7 | 7 | 0 | 7 | 100.00%
11.3.16 Determining the hash code and equivalence of qualifiers and interceptor bindings [bm_determining_hash] | 4 | 4 | 4 | 0 | 4 | 100.00%
11.3.17 Obtaining the active Context for a scope [bm_obtain_active_context] | 1 | 1 | 1 | 0 | 1 | 100.00%
11.3.18 Obtaining the ELResolver [bm_obtain_elresolver] | 1 | 1 | 1 | 0 | 1 | 100.00%
11.3.19 Obtaining an AnnotatedType for a class [bm_obtain_annotatedtype] | 1 | 1 | 1 | 0 | 1 | 100.00%
11.3.20 Obtaining an InjectionTarget for a class [bm_obtain_injectiontarget] | 4 | 4 | 4 | 0 | 4 | 100.00%
11.3.21 Obtaining a Producer for a field or method [bm_obtain_producer] | 4 | 4 | 4 | 0 | 4 | 100.00%
11.3.22 Obtaining an InjectionPoint [bm_obtain_injectionpoint] | 3 | 3 | 3 | 0 | 3 | 100.00%
11.3.23 Obtaining a BeanAttributes [bm_obtain_beanattributes] | 3 | 3 | 3 | 0 | 3 | 100.00%
11.3.24 Obtaining a Bean [bm_obtain_bean] | 2 | 2 | 2 | 0 | 2 | 100.00%
11.3.25 Obtaining the instance of an Extension [bm_obtain_extension] | 2 | 2 | 2 | 0 | 2 | 100.00%
11.3.26 Obtain an InterceptionFactory [bm_obtain_interception_factory] | 1 | 1 | 1 | 0 | 1 | 100.00%
11.3.27 Obtain an Instance [bm_obtain_instance] | 2 | 2 | 2 | 0 | 2 | 100.00%
11.4 Alternative metadata sources [alternative_metadata_sources] | 44 | 42 | 41 | 0 | 41 | 97.62%
11.4.1 AnnotatedTypeConfigurator SPI [annotated_type_configurator] | 15 | 10 | 10 | 0 | 10 | 100.00%
11.4.1.1 AnnotatedMethodConfigurator [annotated_method_configurator] | 6 | 6 | 6 | 0 | 6 | 100.00%
11.4.1.2 AnnotatedConstructorConfigurator [annotated_constructor_configurator] | 6 | 6 | 6 | 0 | 6 | 100.00%
11.4.1.3 AnnotatedParameterConfigurator [annotated_parameter_configurator] | 4 | 4 | 4 | 0 | 4 | 100.00%
11.4.1.4 AnnotatedFieldConfigurator [annotated_field_configurator] | 4 | 4 | 4 | 0 | 4 | 100.00%
11.5 Container lifecycle events [init_events] | 10 | 7 | 7 | 0 | 7 | 100.00%
11.5.1 BeforeBeanDiscovery event [before_bean_discovery] | 15 | 15 | 15 | 0 | 15 | 100.00%
11.5.2 AfterTypeDiscovery event [after_type_discovery] | 15 | 14 | 14 | 0 | 14 | 100.00%
11.5.3 AfterBeanDiscovery event [after_bean_discovery] | 18 | 17 | 17 | 0 | 17 | 100.00%
11.5.3.1 BeanConfigurator interface [bean_configurator] | 9 | 9 | 9 | 0 | 9 | 100.00%
11.5.3.2 ObserverMethodConfigurator interface [observer_method_configurator] | 13 | 13 | 13 | 0 | 13 | 100.00%
11.5.4 AfterDeploymentValidation event [after_deployment_validation] | 5 | 5 | 4 | 0 | 4 | 80.00%
11.5.5 BeforeShutdown event [before_shutdown] | 2 | 1 | 1 | 0 | 1 | 100.00%
11.5.6 ProcessAnnotatedType event [process_annotated_type] | 31 | 31 | 31 | 0 | 31 | 100.00%
11.5.7 ProcessInjectionPoint event [process_injection_point] | 10 | 10 | 10 | 0 | 10 | 100.00%
11.5.7.1 InjectionPointConfigurator interface [injection_point_configurator] | 5 | 5 | 5 | 0 | 5 | 100.00%
11.5.8 ProcessInjectionTarget event [process_injection_target] | 8 | 8 | 7 | 0 | 7 | 87.50%
11.5.9 ProcessBeanAttributes event [process_bean_attributes] | 22 | 22 | 22 | 0 | 22 | 100.00%
11.5.9.1 BeanAttributesConfigurator interface [bean_attributes_configurator] | 10 | 10 | 10 | 0 | 10 | 100.00%
11.5.10 ProcessBean event [process_bean] | 25 | 25 | 25 | 0 | 25 | 100.00%
11.5.11 ProcessProducer event [process_producer] | 17 | 17 | 17 | 0 | 17 | 100.00%
11.5.11.1 ProducerConfigurator interface [producer_configurator] | 2 | 2 | 2 | 0 | 2 | 100.00%
11.5.12 ProcessObserverMethod event [process_observer_method] | 13 | 13 | 13 | 0 | 13 | 100.00%
11.6 Configurators interfaces [configurators] | 7 | 0 | 0 | 0 | 0 |
11.7 The InterceptionFactory interface [interception_factory] | 9 | 8 | 8 | 0 | 8 | 100.00%
12 Packaging and deployment [packaging_deployment] | 5 | 0 | 0 | 0 | 0 |
12.1 Bean archives [bean_archive] | 16 | 7 | 7 | 0 | 7 | 100.00%
12.2 Application initialization lifecycle [initialization] | 10 | 9 | 9 | 0 | 9 | 100.00%
12.3 Application shutdown lifecycle [shutdown] | 2 | 2 | 2 | 0 | 2 | 100.00%
12.4 Type and Bean discovery [type_bean_discovery] | 1 | 0 | 0 | 0 | 0 |
12.4.1 Type discovery [type_discovery_steps] | 4 | 4 | 4 | 0 | 4 | 100.00%
12.4.2 Exclude filters [exclude_filters] | 8 | 8 | 8 | 0 | 8 | 100.00%
12.4.3 Trimmed bean archive [trimmed_bean_archive] | 1 | 1 | 1 | 0 | 1 | 100.00%
12.4.4 Bean discovery [bean_discovery_steps] | 18 | 13 | 13 | 0 | 13 | 100.00%
13 Bootstrapping a CDI container in Java SE [se_bootstrap] | 18 | 17 | 17 | 0 | 17 | 100.00%
13.1 SeContainerInitializer class [se_container_initializer] | 3 | 2 | 2 | 0 | 2 | 100.00%
13.2 SeContainer interface [se_container] | 7 | 6 | 6 | 0 | 6 | 100.00%
14 Scopes and contexts in Java SE [contexts_se] | 0 | 0 | 0 | 0 | 0 |
14.1 Context management for built-in scopes in Java SE [builtin_contexts_se] | 0 | 0 | 0 | 0 | 0 |
14.1.1 Application context lifecycle in Java SE [application_context_se] | 4 | 4 | 4 | 0 | 4 | 100.00%
15 Packaging and deployment in Java SE [packaging_deployment_se] | 0 | 0 | 0 | 0 | 0 |
15.1 Bean archive in Java SE [bean_archive_se] | 2 | 2 | 2 | 0 | 2 | 100.00%
16 Portable extensions in Java SE [spi_se] | 0 | 0 | 0 | 0 | 0 |
16.1 The `BeanManager` object in Java SE [beanmanager_se] | 0 | 0 | 0 | 0 | 0 |
16.1.1 Obtaining a reference to the CDI container in Java SE [provider_se] | 1 | 0 | 0 | 0 | 0 |
17 Extended Concepts for Java EE [concepts_ee] | 0 | 0 | 0 | 0 | 0 |
17.1 Functionality provided by the container to the bean in Java EE [capabilities_ee] | 0 | 0 | 0 | 0 | 0 |
17.2 Bean types for Java EE component [bean_types_ee] | 2 | 2 | 2 | 0 | 2 | 100.00%
17.3 Scopes [scopes_ee] | 0 | 0 | 0 | 0 | 0 |
17.3.1 Built-in scope types in Java EE [builtin_scopes_ee] | 1 | 0 | 0 | 0 | 0 |
17.4 Default bean discovery mode for Java EE [default_bean_discovery_ee] | 5 | 5 | 5 | 0 | 5 | 100.00%
17.5 Bean names in Java EE [names_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
17.5.1 Default bean names for EJB session beans [default_name_ee] | 1 | 0 | 0 | 0 | 0 |
18 Addition to programming model for Java EE [implementation_ee] | 0 | 0 | 0 | 0 | 0 |
18.1 Managed beans in Java EE [managed_beans_ee] | 0 | 0 | 0 | 0 | 0 |
18.1.1 Which Java classes are managed beans in Java EE? [what_classes_are_beans_ee] | 2 | 2 | 2 | 0 | 2 | 100.00%
18.2 EJB Session beans [session_beans] | 11 | 8 | 8 | 0 | 8 | 100.00%
18.2.1 EJB remove methods of session beans [session_bean_ejb_remove_method] | 4 | 4 | 4 | 0 | 4 | 100.00%
18.2.2 Bean types of a session bean [session_bean_types] | 5 | 5 | 5 | 0 | 5 | 100.00%
18.2.3 Declaring a session bean [declaring_session_bean] | 6 | 6 | 6 | 0 | 6 | 100.00%
18.2.4 Specializing a session bean [specialize_session_bean] | 3 | 3 | 3 | 0 | 3 | 100.00%
18.2.5 Default bean name for a session bean [session_bean_name] | 1 | 1 | 1 | 0 | 1 | 100.00%
18.3 Producer methods on EJB session bean [producer_method_ee] | 2 | 2 | 2 | 0 | 2 | 100.00%
18.3.1 Declaring a producer method in an EJB session bean [declaring_producer_method_ee] | 2 | 2 | 2 | 0 | 2 | 100.00%
18.4 Producer field on EJB session bean [producer_field_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
18.4.1 Declaring a producer field in an EJB session bean [declaring_producer_field_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
18.5 Disposer methods on EJB session bean [disposer_method_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
18.5.1 Declaring a disposer method on an EJB session bean [declaring_disposer_method_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
18.6 Java EE components [javaee_components] | 5 | 5 | 5 | 0 | 5 | 100.00%
18.7 Resources [resources] | 2 | 0 | 0 | 0 | 0 |
18.7.1 Declaring a resource [declaring_resource] | 10 | 8 | 8 | 0 | 8 | 100.00%
18.7.2 Bean types of a resource [resource_types] | 6 | 5 | 5 | 0 | 5 | 100.00%
18.8 Additional built-in beans [additional_builtin_beans] | 6 | 6 | 6 | 0 | 6 | 100.00%
18.9 Injected fields in Java EE [injected_fields_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
18.10 Initializer methods in Java EE [initializer_methods_ee] | 3 | 3 | 3 | 0 | 3 | 100.00%
18.11 @New qualified beans in Java EE [new_ee] | 19 | 19 | 19 | 0 | 19 | 100.00%
18.12 Inheritance of type-level metadata in Java EE [type_level_inheritance_ee] | 18 | 18 | 18 | 0 | 18 | 100.00%
18.13 Inheritance of member-level metadata in Java EE [member_level_inheritance_ee] | 16 | 16 | 16 | 0 | 16 | 100.00%
18.14 Specialization in Java EE [specialization_ee] | 0 | 0 | 0 | 0 | 0 |
18.14.1 Direct and indirect specialization in Java EE [direct_and_indirect_specialization_ee] | 4 | 4 | 4 | 0 | 4 | 100.00%
19 Dependency injection, lookup and EL in Java EE [injection_el_resolution_ee] | 0 | 0 | 0 | 0 | 0 |
19.1 Modularity in Java EE [selection_ee] | 4 | 4 | 4 | 0 | 4 | 100.00%
19.1.1 Declaring selected alternatives for an application in Java EE [declaring_selected_alternatives_application_ee] | 2 | 2 | 2 | 0 | 2 | 100.00%
19.1.2 Declaring selected alternatives for a bean archive in Java EE [declaring_selected_alternatives_bean_archive_ee] | 2 | 1 | 1 | 0 | 1 | 100.00%
19.1.3 Unsatisfied and ambiguous dependencies in Java EE [unsatisfied_and_ambig_dependencies_ee] | 2 | 2 | 2 | 0 | 2 | 100.00%
19.2 EL name resolution [name_resolution_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
19.2.1 Ambiguous EL names [ambig_names_ee] | 0 | 0 | 0 | 0 | 0 |
19.3 Dependency injection in Java EE [injection_ee] | 10 | 9 | 9 | 0 | 9 | 100.00%
19.3.1 Injection using the bean constructor in Java EE [instantiation_ee] | 3 | 3 | 3 | 0 | 3 | 100.00%
19.3.2 Injection of fields and initializer methods in Java EE [fields_initializer_methods_ee] | 34 | 34 | 34 | 0 | 34 | 100.00%
19.3.3 Destruction of dependent objects in Java EE [dependent_objects_destruction_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
19.3.4 Bean metadata in Java EE [bean_metadata_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
20 Scopes and contexts in Java EE [contexts_ee] | 0 | 0 | 0 | 0 | 0 |
20.1 Dependent pseudo-scope in Java EE [dependent_context_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
20.1.1 Dependent objects in Java EE [dependent_objects_ee] | 0 | 0 | 0 | 0 | 0 |
20.1.2 Destruction of objects with scope @Dependent in Java EE [dependent_destruction_ee] | 2 | 2 | 2 | 0 | 2 | 100.00%
20.1.3 Dependent pseudo-scope and Unified EL [dependent_scope_el] | 2 | 1 | 1 | 0 | 1 | 100.00%
20.2 Passivation and passivating scopes in Java EE [passivating_scope_ee] | 0 | 0 | 0 | 0 | 0 |
20.2.1 Passivation capable beans in Java EE [passivation_capable_ee] | 3 | 2 | 2 | 0 | 2 | 100.00%
20.2.2 Passivation capable dependencies in java EE [passivation_capable_dependency_ee] | 8 | 8 | 8 | 0 | 8 | 100.00%
20.2.3 Validation of passivation capable beans and dependencies in Java EE [passivation_validation_ee] | 10 | 10 | 10 | 0 | 10 | 100.00%
20.3 Context management for built-in scopes in Java EE [builtin_contexts_ee] | 0 | 0 | 0 | 0 | 0 |
20.3.1 Request context lifecycle in Java EE [request_context_ee] | 24 | 24 | 24 | 0 | 24 | 100.00%
20.3.2 Session context lifecycle in Java EE [session_context_ee] | 11 | 11 | 11 | 0 | 11 | 100.00%
20.3.3 Application context lifecycle in Java EE [application_context_ee] | 18 | 17 | 17 | 0 | 17 | 100.00%
20.3.4 Conversation context lifecycle in Java EE [conversation_context_ee] | 30 | 27 | 27 | 0 | 27 | 100.00%
21 Lifecycle of contextual instances [lifecycle_ee] | 0 | 0 | 0 | 0 | 0 |
21.1 Container invocations and interception in Java EE [biz_method_ee] | 8 | 7 | 7 | 0 | 7 | 100.00%
21.1.1 Lifecycle of EJB stateful session beans [stateful_lifecycle] | 3 | 2 | 2 | 0 | 2 | 100.00%
21.1.2 Lifecycle of EJB stateless and singleton session beans [stateless_lifecycle] | 3 | 2 | 2 | 0 | 2 | 100.00%
21.1.3 Lifecycle of resources [resource_lifecycle] | 20 | 19 | 14 | 0 | 14 | 73.68%
22 Decorators in Java EE [decorators_ee] | 7 | 7 | 7 | 0 | 7 | 100.00%
22.1 Decorator beans in Java EE [decorator_bean_ee] | 10 | 10 | 8 | 0 | 8 | 80.00%
23 Interceptor bindings in Java EE [interceptors_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
23.1 Interceptor resolution in Java EE [interceptor_resolution_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
24 Events in Java EE [events_ee] | 0 | 0 | 0 | 0 | 0 |
24.1 Observer methods in EJB session beans [observer_methods_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
24.1.1 Declaring an observer method in an EJB [observes_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
24.1.2 Observer method invocation context in Java EE [observer_method_invocation_context_ee] | 2 | 2 | 2 | 0 | 2 | 100.00%
25 Portable extensions in Java EE [spi_ee] | 0 | 0 | 0 | 0 | 0 |
25.1 The Bean interface in Java EE [bean_ee] | 0 | 0 | 0 | 0 | 0 |
25.1.1 The Interceptor interface in Java EE [interceptor_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
25.2 InjectionTarget interface in Java EE [injectiontarget_ee] | 3 | 3 | 3 | 0 | 3 | 100.00%
25.3 The BeanManager object in Java EE [beanmanager_ee] | 0 | 0 | 0 | 0 | 0 |
25.3.1 Obtaining a reference to the CDI container in Java EE [provider_ee] | 2 | 2 | 2 | 0 | 2 | 100.00%
25.3.2 Wrapping a Unified EL ExpressionFactory [bm_wrap_expressionfactory] | 2 | 2 | 2 | 0 | 2 | 100.00%
25.4 Alternative metadata sources and EJB [alternative_metadata_sources_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
25.5 Addition to Container lifecycle events in Java EE [init_events_ee] | 0 | 0 | 0 | 0 | 0 |
25.5.1 ProcessInjectionPoint event and EJB [process_injection_point_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
25.5.2 ProcessInjectionTarget event and EJB [process_injection_target_ee] | 29 | 29 | 29 | 0 | 29 | 100.00%
25.5.3 ProcessBeanAttributes event and EJB [process_bean_attributes_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
25.5.4 ProcessBean event and EJB [process_bean_ee] | 9 | 9 | 9 | 0 | 9 | 100.00%
26 Packaging and deployment in Java EE [packaging_deployment_ee] | 0 | 0 | 0 | 0 | 0 |
26.1 Bean archive with EJB Session Beans [bean_archive_ee] | 23 | 18 | 16 | 0 | 16 | 88.89%
26.2 Type and Bean discovery for EJB [type_bean_discovery_ee] | 9 | 9 | 9 | 0 | 9 | 100.00%
26.2.1 Bean discovery in Java EE [bean_discovery_steps_ee] | 11 | 11 | 11 | 0 | 11 | 100.00%
26.2.2 Trimmed bean archive in Java EE [trimmed_bean_archive_ee] | 1 | 1 | 1 | 0 | 1 | 100.00%
26.3 Integration with Unified EL [el] | 3 | 3 | 3 | 0 | 3 | 100.00%

### Coverage Detail

Colour Key
Assertion is covered
Assertion is not covered
Assertion test is unimplemented
Assertion is untestable

#### Section 2 - Concepts [concepts]

a)

A bean comprises of a (nonempty) set of bean types.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testBeanTypesNonEmpty()github
b)

A bean comprises of a (nonempty) set of qualifiers.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testQualifiersNonEmpty()github
c)

A bean comprises of a scope.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testHasScopeType()github
e)

A bean comprises of an optional bean name.

Coverage

org.jboss.cdi.tck.tests.definition.name
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testNonDefaultNamed()github
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testNamedNotDeclaredByBean()github
f)

A bean comprises of a set of interceptor bindings.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.member
Test archive name: 2e81b34db3e99e5cb253a7268cf8bf04665168b
InterceptorBindingTypeWithMemberTest.testInterceptorBindingTypeWithMember()github
g)

A bean comprises of a bean implementation.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testManagedBean()github
h)

A bean may or may not be an alternative.

#### Section 2.2 - Bean types [bean_types]

a)

A bean may have multiple bean types.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testBeanTypes()github
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testGenericBeanTypes()github
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testRawBeanTypes()github
l)

All beans have the bean type java.lang.Object.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testBeanTypes()github
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testGenericBeanTypes()github
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testRawBeanTypes()github
org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testApiTypeForClassReturn()github

#### Section 2.2.1 - Legal bean types [legal_bean_types]

a)

A bean type may be an interface.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testBeanTypes()github
b)

A bean type may be a concrete class.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testManagedBean()github
c)

A bean type may be an abstract class.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testAbstractApiType()github
d)

A bean type may be declared final.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testBeanTypes()github
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testFinalApiType()github
e)

A bean type may have final methods.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testBeanTypes()github
f)

A bean type may be a parameterized type with actual type parameters.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityToRawType()github
g)

A bean type may be a parameterized type with type variables.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityToRawType()github
i)

A bean type may be an array type. Two array types are considered identical only if the element type is identical.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testResolveByTypeWithArray()github
org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testApiTypeForArrayTypeReturn()github
org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testApiTypeForArrayTypeReturn()github
j)

A bean type may be a primitive type. Primitive types are considered to be identical to their corresponding wrapper types in java.lang.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testResolveByTypeWithPrimitives()github
k)

A bean type may be a raw type.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testManagedBean()github
la)

A type variable is not a legal bean type.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.typeVariableReturnType
Test archive name: d8d02bd62072ea4f7617faca2f5a37ece76ddec
TypeVariableReturnTypeTest.testTypeVariableNotAllowed()github
lb)

A parameterized type that contains a wildcard type parameter is not a legal bean type.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.parameterizedTypeWithWildcard
Test archive name: 7c3ee7ebd151bcebbbe1352fb61e3f4daf969a0
ParameterizedTypeWithWildcardTest.testParameterizedReturnTypeWithWildcard()github
Test archive name: 69543ee45a77fe9c384a95f3ccc8ff8b378de521
ParametrizedTypeWithWildcard02Test.testParameterizedReturnTypeWithDoubleWildcard()github

An array type whose component type is not a legal bean type.

lc)

An array type whose component type is a type variable is not a legal bean type.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.array
Test archive name: e384bb678c457f2f4ce4df167e687c4cfa549a2
ProducerMethodArrayTypeVariableTest.testBeanTypes()github
org.jboss.cdi.tck.tests.implementation.producer.field.definition.broken.array
Test archive name: 21c343bd65dc4d6b68e0a9f5133834b3552bc6
ProducerFieldArrayTypeVariableTest.testBeanTypes()github
ld)

An array type whose component type is a parameterized type that contains a wildcard type parameter is not a legal bean type.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.array
Test archive name: e1ebd0a03da24ec7659e190ec628f79674667e9
ProducerMethodArrayWildcardTest.testBeanTypes()github
org.jboss.cdi.tck.tests.implementation.producer.field.definition.broken.array
Test archive name: 3f21037b1c4bd4cd18cf66682799bc55615befd
ProducerFieldArrayWildcardTest.testBeanTypes()github

#### Section 2.2.2 - Restricting the bean types of a bean [restricting_bean_types]

The bean types of a bean may be restricted by annotating the bean class or producer method or field with the annotation @jakarta.enterprise.inject.Typed. When a @Typed annotation is explicitly specified, only the types whose classes are explicitly listed using the value member, together with java.lang.Object are bean types of the bean.

a)

Check managed bean

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testBeanTypesOnManagedBean()github
c)

Check producer method

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testBeanTypesOnProducerMethod()github
d)

Check producer field

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testBeanTypesOnProducerField()github
e)

Check generic managed bean

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testGenericBeanTypesOnManagedBean()github
g)

Check generic producer method

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testGenericBeanTypesOnProducerMethod()github
h)

Check generic producer field

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testGenericBeanTypesOnProducerField()github

If a bean class or producer method or field specifies a @Typed annotation, and the value member specifies a class which does not correspond to a type in the unrestricted set of bean types of a bean, the container automatically detects the problem and treats it as a definition error.

j)

Check managed bean

Coverage

org.jboss.cdi.tck.tests.definition.bean.broken.restricted
Test archive name: deaad39814b581d544f5e17843871771a1df13b6
RestrictedManagedBeanTest.testInvalidTypedValueOnManagedBean()github
l)

Check producer method

Coverage

org.jboss.cdi.tck.tests.definition.bean.broken.restricted
Test archive name: 6c4e63ca8bfd5cfe5bdeab1e1d82cb5cc73ec35d
RestrictedProducerFieldTest.testInvalidTypedValueOnProducerField()github
m)

Check producer field

Coverage

org.jboss.cdi.tck.tests.definition.bean.broken.restricted
Test archive name: 72a24bceabd7d09a9bd4280a73d224519e322
RestrictedProducerMethodTest.testInvalidTypedValueOnProducerField()github

#### Section 2.2.3 - Typecasting between bean types [typecasting_between_bean_types]

a)

A client of a bean may typecast its contextual reference to a bean to any bean type of the bean which is a Java interface. However, the client may not in general typecast its contextual reference to an arbitrary concrete bean type of the bean.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testBeanClientCanCastBeanInstanceToAnyBeanType()github

#### Section 2.3.1 - Built-in qualifier types [builtin_qualifiers]

aa)

Every bean has the built-in qualifier @Any, even if it does not explicitly declare this qualifier, except for the special @New qualified beans defined in Section 3.14, "@New qualified beans".

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testDefaultBindingType()github
org.jboss.cdi.tck.tests.definition.qualifier.builtin
Test archive name: 3b6f6d3c24b8df1de31af68abfaec498cf621b34
BuiltInQualifierDefinitionTest.testDefaultQualifierDeclaredInJava()github
org.jboss.cdi.tck.tests.lookup.injection.any
Test archive name: ab9a704c4538b33b5ec27738fa3a992b254f7b4b
AnyInjectionTest.testAnyInjectionIfExactlyOneBeanForType()github
ab)

If a bean does not explicitly declare a qualifier other than @Named or @Any, the bean has exactly one additional qualifier, of type @Default. This is called the default qualifier.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testDefaultBindingType()github
org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testDefaultBindingType()github
org.jboss.cdi.tck.tests.definition.qualifier.builtin
Test archive name: 3b6f6d3c24b8df1de31af68abfaec498cf621b34
BuiltInQualifierDefinitionTest.testDefaultQualifierDeclaredInJava()github
Test archive name: 3b6f6d3c24b8df1de31af68abfaec498cf621b34
BuiltInQualifierDefinitionTest.testNamedAndAnyBeanHasDefaultQualifier()github
Test archive name: 3b6f6d3c24b8df1de31af68abfaec498cf621b34
BuiltInQualifierDefinitionTest.testNamedBeanHasDefaultQualifier()github
Test archive name: 3b6f6d3c24b8df1de31af68abfaec498cf621b34
BuiltInQualifierDefinitionTest.testAnyBeanHasDefaultQualifier()github
Test archive name: 3b6f6d3c24b8df1de31af68abfaec498cf621b34
BuiltInQualifierDefinitionTest.testProducedNamedAndAnyBeanHasDefaultQualifier()github
Test archive name: 3b6f6d3c24b8df1de31af68abfaec498cf621b34
BuiltInQualifierDefinitionTest.testProducedNamedBeanHasDefaultQualifier()github
Test archive name: 3b6f6d3c24b8df1de31af68abfaec498cf621b34
BuiltInQualifierDefinitionTest.testProducedAnyBeanHasDefaultQualifier()github
b)

The default qualifier is also assumed for any injection point that does not explicitly declare a qualifier.

Coverage

org.jboss.cdi.tck.tests.definition.qualifier.builtin
Test archive name: 3b6f6d3c24b8df1de31af68abfaec498cf621b34
BuiltInQualifierDefinitionTest.testDefaultQualifierForInjectionPoint()github

#### Section 2.3.2 - Defining new qualifier types [defining_qualifier_types]

aa)

A qualifier type is a Java annotation defined as @Target({METHOD, FIELD, PARAMETER, TYPE}) and @Retention(RUNTIME).

ba)

A qualifier type may be declared by specifying the @jakarta.inject.Qualifier meta-annotation.

Coverage

org.jboss.cdi.tck.tests.definition.qualifier
Test archive name: e2cc53c5a06367f3d135a5280e234a8e27ee9f
QualifierDefinitionTest.testQualifierDeclaresBindingAnnotation()github
d)

A qualifier type may define annotation members.

#### Section 2.3.3 - Declaring the qualifiers of a bean [declaring_bean_qualifiers]

The qualifiers of a bean are declared by annotating the bean class or producer method or field with the qualifier types.

a)

Test by annotating a bean class.

Coverage

org.jboss.cdi.tck.tests.definition.qualifier
Test archive name: e2cc53c5a06367f3d135a5280e234a8e27ee9f
QualifierDefinitionTest.testQualifiersDeclaredInJava()github
b)

Test by annotating a producer method.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testBindingType()github
c)

Test by annotating a producer field.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testBindingType()github
d)

Any bean may declare multiple qualifier types.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testAllQualifiersSpecifiedForResolutionMustAppearOnBean()github
org.jboss.cdi.tck.tests.definition.qualifier
Test archive name: e2cc53c5a06367f3d135a5280e234a8e27ee9f
QualifierDefinitionTest.testMultipleQualifiers()github

#### Section 2.3.4 - Specifying qualifiers of an injected field [injected_field_qualifiers]

a)

Qualifier types may be applied to injected fields (see Section 3.8, "Injected fields") to determine the bean that is injected, according to the rules of typesafe resolution defined in Section 5.3, "Typesafe resolution".

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testCreateInjectsFieldsDeclaredInJava()github
b)

A bean may only be injected to an injection point if it has all the qualifiers of the injection point.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testAllQualifiersSpecifiedForResolutionMustAppearOnBean()github

#### Section 2.3.5 - Specifying qualifiers of a method or constructor parameter [method_constructor_parameter_qualifiers]

Qualifier types may be applied to parameters of producer methods, initializer methods, disposer methods, observer methods or bean constructors (see Chapter 3, Bean implementation) to determine the bean instance that is passed when the method is called by the container.

a)

Test producer method.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testBindingTypesAppliedToProducerMethodParameters()github
org.jboss.cdi.tck.tests.definition.qualifier
Test archive name: e2cc53c5a06367f3d135a5280e234a8e27ee9f
QualifierDefinitionTest.testFieldInjectedFromProducerMethod()github
b)

Test initializer method.

Coverage

org.jboss.cdi.tck.tests.implementation.initializer
Test archive name: bce0b51dd9a4695bb0c886ac8d2cc34ae72c3
InitializerMethodTest.testBindingTypeOnInitializerParameter()github
c)

Test disposer method.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testBindingTypesAppliedToDisposalMethodParameters()github
ca)

Test observer method.

Coverage

org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testObserverMethodParameterInjectionPoints()github
d)

Test bean constructor.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testInjectionOfParametersIntoBeanConstructor()github

#### Section 2.3.6 - Repeating qualifiers [repeating_qualifiers]

a)

A repeated qualifier behaves just as any other qualifier does

Coverage

org.jboss.cdi.tck.tests.definition.qualifier.repeatable
Test archive name: a7f66da53071b8f9fbaae7cdf686bc35158bcaf
RepeatableQualifiersTest.resolutionWithRepeatableQualifiers()github

#### Section 2.4 - Scopes [scopes]

a)

All beans have a scope.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testHasScopeType()github
b)

A scope type is represented by an annotation type.

c)

The set of scope types is extensible.

Coverage

org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testScopeTypesAreExtensible()github

#### Section 2.4.1 - Built-in scope types [builtin_scopes]

There are five standard scope types defined by this specification, all defined in the package jakarta.enterprise.context.

a)

The container must provide an implementation of the @RequestScoped, @ApplicationScoped and @SessionScoped annotations defined in Section 6.7, “Context management for built-in scopes”.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: e1f37e12834f0f7a056c88ecde97ed1d85f35
ContextTest.testBuiltInContexts()github
ba)

The @ConversationScoped annotation represents the conversation scope defined in Section 6.7.4, "Conversation context lifecycle".

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7339fc7fa2b6132946e730d2c961837c417694c
LongRunningConversationPropagatedByFacesContextTest.testConversationPropagated()github
ca)

The @Dependent pseudo-scope is for dependent objects, as defined in Section 6.4, "Dependent pseudo-scope"

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: e1f37e12834f0f7a056c88ecde97ed1d85f35
ContextTest.testBuiltInContexts()github
e)

If an interceptor or decorator has any scope other than @Dependent, non-portable behavior results.

#### Section 2.4.2 - Defining new scope types [defining_new_scope_type]

aa)

A scope type is a Java annotation defined as @Target({TYPE, METHOD, FIELD}) and @Retention(RUNTIME).

Coverage

org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testScopeTypeHasCorrectTarget()github
ab)

A scope type is a Java annotation defined as @Target({TYPE, METHOD, FIELD}) and @Retention(RUNTIME).

ac)

A scope type must not have any attributes. If a scope type has attributes non-portable behavior results.

ba)

All scope types must specify the @jakarta.inject.Scope or @jakarta.enterprise.context.NormalScope meta-annotation.

Coverage

org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testScopeTypeDeclaresScopeTypeAnnotation()github

#### Section 2.4.3 - Declaring the bean scope [declaring_bean_scope]

a)

The scope of a bean is defined by annotating the bean class or producer method or field with a scope type.

Coverage

org.jboss.cdi.tck.tests.definition.scope.inOtherBda
Test archive name: e8bc3f3fe063acf8297963aaa7cac6aac9d28adb
ScopeDefinedInOtherBDATest.testCustomScopeInOtherBDAisBeanDefiningAnnotation()github
org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testScopeDeclaredInJava()github

A bean class or producer method or field may specify at most one scope type annotation. If a bean class or producer method or field specifies multiple scope type annotations, the container automatically detects the problem and treats it as a definition error.

ba)

Test with a bean class.

Coverage

org.jboss.cdi.tck.tests.definition.scope.broken.tooManyScopes
Test archive name: 598fb0a957b7c6afd817db94a3f75f3f833088
TooManyScopesTest.testTooManyScopesSpecifiedInJava()github
Test archive name: b26dea6a113ed6efd2d1fd94e916c49e3c4ac
SessionBeanTooManyScopesTest.testTooManyScopesSpecifiedInJava()github
bb)

Test with a producer method.

Coverage

org.jboss.cdi.tck.tests.definition.scope.broken.tooManyScopes.producer.method
Test archive name: 333e9d99d49edef857939fad3c878ccbb93a1c4
ProducerMethodTooManyScopesTest.testTooManyScopesSpecifiedInJava()github
Test archive name: e0fb376541bd7c5577ef5da3e366916b16d
SessionBeanProducerMethodTooManyScopesTest.testTooManyScopesSpecifiedInJava()github
bc)

Test with a producer field.

Coverage

org.jboss.cdi.tck.tests.definition.scope.broken.tooManyScopes.producer.field
Test archive name: bdd238ef7bb1f2f37431d353295a07c7ffbc46
ProducerFieldTooManyScopesTest.testTooManyScopesSpecifiedInJava()github
Test archive name: 51af4ac15b3304d6b2d57d567a2b3446863d32
SessionBeanProducerFieldTooManyScopesTest.testTooManyScopesSpecifiedInJava()github
c)

A scope type may be specified using a stereotype annotation, as defined in Section 2.7.2, "Declaring the stereotypes for a bean"

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testStereotypeWithScopeType()github

#### Section 2.4.4 - Default scope [default_scope]

aa)

When no scope is explicitly declared by annotating the bean class or producer method or field the scope of a bean is defaulted.

Coverage

org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testDefaultScope()github
b)

If the bean does not declare any stereotype with a declared default scope, the default scope for the bean is @Dependent.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testStereotypeWithoutScopeType()github
c)

If all stereotypes declared by the bean that have some declared default scope have the same default scope, then that scope is the default scope for the bean.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testStereotypeSpecifiesScope()github
org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testMultipleCompatibleScopeStereotypes()github
da)

If there are two different stereotypes declared by the bean that declare different default scopes, then there is no default scope and the bean must explicitly declare a scope. If it does not explicitly declare a scope, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.broken.scopeConflict
Test archive name: 16c943795a1b3957651dbc087b5dbe9dcc05de7
IncompatibleStereotypesTest.testMultipleIncompatibleScopeStereotypes()github
org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testMultipleIncompatibleScopeStereotypesWithScopeSpecified()github
e)

If a bean explicitly declares a scope, any default scopes declared by stereotypes are ignored.

Coverage

org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testScopeSpecifiedAndStereotyped()github
org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testExplicitScopeOverridesMergedScopesFromMultipleStereotype()github

#### Section 2.5 - Default bean discovery mode [default_bean_discovery]

If the bean discovery mode is annotated then:

a)

bean classes that don’t have bean defining annotation (as defined in Section 2.5.1, “Bean defining annotations”) are not discovered

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.implicit
Test archive name: c9c8b1f3f2b5476dbebdc28bdfda2d8bff57dab8
DefaultBeanDiscoveryModeTest.beanClassesNotDiscoveredTest()github
b)

producer methods (as defined in Section 3.3, “Producer methods”) whose bean class does not have a bean defining annotation are not discovered

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.implicit
Test archive name: c9c8b1f3f2b5476dbebdc28bdfda2d8bff57dab8
DefaultBeanDiscoveryModeTest.producerMethodNotDiscovered()github
c)

producer fields (as defined in Section 3.4, “Producer fields”) whose bean class does not have a bean defining annotation are not discovered

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.implicit
Test archive name: c9c8b1f3f2b5476dbebdc28bdfda2d8bff57dab8
DefaultBeanDiscoveryModeTest.producerFieldNotDiscovered()github
d)

disposer methods (as defined in Section 3.5, “Disposer methods”) whose bean class does not have a bean defining annotation are not discovered

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.implicit
Test archive name: c9c8b1f3f2b5476dbebdc28bdfda2d8bff57dab8
DefaultBeanDiscoveryModeTest.disposerMethodNotDiscovered()github
e)

observer methods (as defined in Section 10.4.2, “Declaring an observer method”) whose bean class does not have a bean defining annotation are not discovered

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.implicit
Test archive name: c9c8b1f3f2b5476dbebdc28bdfda2d8bff57dab8
DefaultBeanDiscoveryModeTest.observerMethodNotDiscovered()github

#### Section 2.5.1 - Bean defining annotations [bean_defining_annotations]

a)

A bean class may have a bean defining annotation, allowing it to be placed anywhere in an application, as defined in Section 12.1. A bean class with a bean defining annotation is said to be an implicit bean.

The set of bean defining annotations contains:

ba)

@ApplicationScoped, @SessionScoped, @ConversationScoped and @RequestScoped annotations

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testNormalScopeImplicitBeanArchiveNoDescriptor()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testNormalScopeImplicitBeanArchiveModeAnnotated()github
org.jboss.cdi.tck.tests.deployment.discovery.enterprise
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testImplicitBeanArchiveNoDescriptor()github
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testImplicitBeanArchiveModeAnnotated()github
bb)

all other normal scope types

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testNormalScopeImplicitBeanArchiveNoDescriptor()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testNormalScopeImplicitBeanArchiveModeAnnotated()github
bc)

@Interceptor annotation

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testInterceptorIsBeanDefiningAnnotation()github
bd)

@Decorator annotation

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testDecoratorIsBeanDefiningAnnotation()github
be)

all stereotype annotations (i.e. annotations annotated with @Stereotype)

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testStereotypeImplicitBeanArchiveNoDescriptor()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testStereotypeImplicitBeanArchiveModeAnnotated()github
bf)

the @Dependent scope annotation

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testDependentScopeImplicitBeanArchiveNoDescriptor()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testPseudoScopeImplicitBeanArchiveModeAnnotated()github
ca)

Note that to ensure compatibility with other JSR-330 implementations, all pseudo-scope annotations except @Dependent are not bean defining annotations.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testPseudoScopeImplicitBeanArchiveModeAnnotated()github
cb)

However, a stereotype annotation including a pseudo-scope annotation is a bean defining annotation.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testStereotypeImplicitBeanArchiveNoDescriptor()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testStereotypeImplicitBeanArchiveModeAnnotated()github

#### Section 2.6 - Bean names [names]

a)

A valid bean name is a period-separated list of valid EL identifiers

Coverage

org.jboss.cdi.tck.tests.lookup.el
Test archive name: 402292eb879ff8fb0441e41749ec64751e41a94
ResolutionByNameTest.testELResolverReturnsContextualInstance()github
Test archive name: 402292eb879ff8fb0441e41749ec64751e41a94
ResolutionByNameTest.testBeanNameWithSeparatedListOfELIdentifiers()github

#### Section 2.6.1 - Declaring the bean name [declaring_bean_name]

To specify the name of a bean, the qualifier @jakarta.inject.Named is applied to the bean class or producer method or field.

a)

Test with a bean class.

Coverage

org.jboss.cdi.tck.tests.definition.name
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testNonDefaultNamed()github
b)

Test with a producer method.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testNamedMethod()github
c)

Test with a producer field.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testNamedField()github

#### Section 2.6.2 - Default bean names [default_name]

A default name must be assigned by the container when a bean class or producer method or field of a bean declares a @Named annotation and no bean name is explicitly specified by the value member.

a)

Test with a bean class.

Coverage

org.jboss.cdi.tck.tests.definition.name
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testDefaultNamed()github
b)

Test with a producer method.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testDefaultNamedMethod()github
c)

Test with a producer field.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testDefaultNamedByStereotype()github
e)

A default name must be assigned by the container when a bean declares a stereotype that declares an empty @Named annotation, and the bean does not explicitly specify an bean name.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.named
Test archive name: d758736989683238aa272fbabc31f5a65d7df64
DefaultNamedTest.testStereotypeDeclaringNamed()github

If a bean class or producer method or field of a bean declares a @Named annotation and no bean name is explicitly specified the value of the value member is defaulted.

fa)

Test with a bean class.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.named
Test archive name: d2d4e029ac5798d28c58f0e79dedda4524823ba3
NamedAtInjectionPointTest.testFieldNameUsedAsBeanName()github
org.jboss.cdi.tck.tests.definition.name
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testDefaultNamed()github
fb)

Test with a producer method.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testDefaultNamedMethod()github
fc)

Test with a producer field.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testDefaultNamed()github

#### Section 2.6.3 - Beans with no name [beans_with_no_name]

a)

If @Named is not declared by the bean, nor by its stereotypes, a bean has no name.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testDefaultNamedByStereotype()github
org.jboss.cdi.tck.tests.definition.name
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testNamedNotDeclaredByBean()github
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testNamedNotDeclaredByStereotype()github
b)

If an interceptor or decorator has a name, non-portable behavior results.

#### Section 2.7 - Alternatives [alternatives]

a)

An alternative is a bean that must be explicitly selected if it should be available for lookup, injection or EL resolution.

#### Section 2.7.1 - Declaring an alternative [declaring_alternative]

An alternative may be declared by annotating the bean class or producer method or field with the @Alternative annotation.

aa)

Test with a bean class.

Coverage

org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 7e87fcebbbaf0a51830bc1b7bd6fca4dfef5abf
Specialization03Test.testEnabledAlternativeSpecializes()github
org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testAlternativeAvailability()github
org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 39940519dcdd8296e2d94db3bec54eda59edb
Specialization02Test.testEnabledAlternativeSpecializes()github
Test archive name: 47c278019cda2a28591c2da2cd43879a89134e1
Specialization05Test.testEnabledAlternativeSpecializes()github
org.jboss.cdi.tck.tests.extensions.alternative.deployment
Test archive name: 8a325680be2ac764a8125cd1ce5fe777f5f3533c
AlternativeInLibraryWithExtensionTest.testAlternative()github
org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 62cb7ff4a1adadbc0e4dead91e1972282aaee93
Specialization04Test.testEnabledAlternativeSpecializes()github
Test archive name: d32637292e29145cbdf2ad9c3a4b9ec95c6c9d9
Specialization06Test.testEnabledAlternativeSpecializes()github
Test archive name: 63ee2e0f5dae557513854eec9bc7b7240f95cd3
Specialization01Test.testNotEnabledAlternativeDoesNotSpecialize()github
ab)

Test with a producer method.

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testProducerAlternativesOnMethodAndField()github
ac)

Test with a producer field.

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testProducerAlternativesOnMethodAndField()github

An alternative may be declared by annotating a bean, producer method or producer field with a stereotype that declares an @Alternative annotation.

ba)

Test with a bean.

Coverage

org.jboss.cdi.tck.tests.alternative.selection.stereotype.priority
Test archive name: 24548540bbd2ad8d21ebdedb32f1416f4ab75
StereotypeWithAlternativeSelectedByPriorityTest.testStereotypeAlternativeIsEnabled()github
org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testAnyEnabledAlternativeStereotypeMakesAlternativeEnabled()github
bb)

Test with a producer method.

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testStereotypeAlternativeOnProducerMethodAndField()github
bc)

Test with a producer field.

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testStereotypeAlternativeOnProducerMethodAndField()github
c)

If an interceptor or decorator is an alternative, non-portable behavior results.

#### Section 2.8 - Stereotypes [stereotypes]

a)

A stereotype may specify that all beans with the stereotype have defaulted bean names.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.named
Test archive name: d758736989683238aa272fbabc31f5a65d7df64
DefaultNamedTest.testStereotypeDeclaringNamed()github
org.jboss.cdi.tck.tests.definition.name
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testStereotypeDefaultsName()github
aa)

A stereotype may specify that all beans with the stereotype are alternatives.

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testAnyEnabledAlternativeStereotypeMakesAlternativeEnabled()github

A bean may declare zero, one or multiple stereotypes.

b)

A bean may declare zero stereotypes.

c)

Test with one stereotype.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testOneStereotypeAllowed()github
d)

Test with multiple stereotypes.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testMultipleStereotypesAllowed()github

#### Section 2.8.1 - Defining new stereotypes [defining_new_stereotype]

A beans stereotype is a Java annotation defined as @Target({TYPE, METHOD, FIELD}), @Target(TYPE), @Target(METHOD), @Target(FIELD) or @Target({METHOD, FIELD}) and @Retention(RUNTIME).

aa)

Test @Target({TYPE, METHOD, FIELD}).

ab)

Test @Target(TYPE).

ac)

Test @Target(FIELD).

ad)

Test @Target({METHOD, FIELD}).

ae)

@Retention(RUNTIME) - untestable.

b)

A stereotype may be declared by specifying the @jakarta.enterprise.inject.Stereotype meta-annotation.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testOneStereotypeAllowed()github

#### Section 2.8.1.1 - Declaring the default scope for a stereotype [stereotype_default_scope]

The default scope of a stereotype is defined by annotating the stereotype with a scope type. A stereotype may declare at most one scope. If a stereotype declares more than one scope, the container automatically detects the problem and treats it as a definition error.

aa)

Test with one scope.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testStereotypeWithScopeType()github
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testStereotypeWithoutScopeType()github
ab)

Test that a stereotype with multiple scopes throws an exception.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.broken.tooManyScopes
Test archive name: 912ae3de733ab3330205d64dc88dcd557b8810
TooManyScopeTypesTest.testStereotypeWithTooManyScopeTypes()github

#### Section 2.8.1.2 - Specifying interceptor bindings for a stereotype [specify_stereotype_interceptor_bindings]

aa)

The interceptor bindings of a stereotype are defined by annotating the stereotype with the interceptor binding types.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.interceptor
Test archive name: d9fddbd86bac69db6918fc49442b7866cda6a84
StereotypeWithMultipleInterceptorBindingsTest.testMultipleInterceptorBindings()github
a)

A stereotype may declare zero interceptor bindings.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testOneStereotypeAllowed()github
b)

A stereotype may declare one interceptor bindings.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testStereotypeInterceptorBindings()github
c)

A stereotype may declare multiple interceptor bindings.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.interceptor
Test archive name: d9fddbd86bac69db6918fc49442b7866cda6a84
StereotypeWithMultipleInterceptorBindingsTest.testMultipleInterceptorBindings()github

#### Section 2.8.1.3 - Declaring a @Named stereotype [named_stereotype]

aa)

A stereotype may declare an empty @Named annotation, which specifies that every bean with the stereotype has a defaulted name when a name is not explicitly specified by the bean.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.named
Test archive name: d758736989683238aa272fbabc31f5a65d7df64
DefaultNamedTest.testStereotypeDeclaringNamed()github
Test archive name: d758736989683238aa272fbabc31f5a65d7df64
DefaultNamedTest.testStereotypeNamedOverridenByBean()github
org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testDefaultNamedByStereotype()github
org.jboss.cdi.tck.tests.implementation.producer.method.definition.name
Test archive name: 14d8e85acace949c6395a499a0527eafd8537075
ProducerMethodWithDefaultNameTest.testProducerMethodQualifiers()github
org.jboss.cdi.tck.tests.definition.name
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testStereotypeDefaultsName()github
ab)

A @Named qualifier declared by a stereotype is not added to the qualifiers of a bean with the stereotype.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.named
Test archive name: d758736989683238aa272fbabc31f5a65d7df64
DefaultNamedTest.testStereotypeDeclaringNamed()github
org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testDefaultNamedByStereotype()github
org.jboss.cdi.tck.tests.implementation.producer.method.definition.name
Test archive name: 14d8e85acace949c6395a499a0527eafd8537075
ProducerMethodWithDefaultNameTest.testProducerMethodQualifiers()github
ac)

If a stereotype declares a non-empty @Named annotation, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.broken.nonEmptyNamed
Test archive name: b7412afbb595bf92b165ae3931cb98c9e2ad7c
NonEmptyNamedTest.testStereotypeWithNonEmptyNamed()github
b)

A stereotype should not declare any qualifier annotation other than @Named. If a stereotype declares any other qualifier annotation, non-portable behavior results.

c)

A stereotype should not be annotated @Typed. If a stereotype is annotated @Typed, non-portable behavior results.

#### Section 2.8.1.4 - Declaring an @Alternative stereotype [alternative_stereotype]

a)

A stereotype may declare an @Alternative annotation, which specifies that every bean with the stereotype is an alternative.

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testAnyEnabledAlternativeStereotypeMakesAlternativeEnabled()github

#### Section 2.8.1.5 - Stereotypes with additional stereotypes [stereotypes_with_additional_stereotypes]

a)

A stereotype may declare other stereotypes.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.inheritance
Test archive name: e47194c512d1f61426c525d95cba904983bbbb
StereotypeInheritenceTest.testInheritence()github
b)

Stereotype declarations are transitive - a stereotype declared by a second stereotype is inherited by all beans and other stereotypes that declare the second stereotype.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.inheritance
Test archive name: e47194c512d1f61426c525d95cba904983bbbb
StereotypeInheritenceTest.testInheritence()github
c)

Stereotypes declared @Target(TYPE) may not be applied to stereotypes declared @Target({TYPE, METHOD, FIELD}), @Target(METHOD), @Target(FIELD), @Target({METHOD, FIELD}).

#### Section 2.8.2 - Declaring the stereotypes for a bean [declaring_stereotypes]

Stereotype annotations may be applied to a bean class or producer method or field.

a)

Test with a bean class.

Coverage

org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testScopeSpecifiedAndStereotyped()github
b)

Test with a producer method.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testStereotypeSpecifiesScope()github
c)

Test with a producer field.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testStereotype()github
db)

The default scope declared by the stereotype may be overridden by the bean.

Coverage

org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testWebBeanScopeTypeOverridesStereotype()github
e)

Multiple stereotypes may be applied to the same bean.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testMultipleStereotypesAllowed()github
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testExplicitScopeOverridesMergedScopesFromMultipleStereotype()github

#### Section 2.8.3 - Built-in stereotypes [builtin_stereotypes]

aa)

The built-in stereotype @jakarta.enterprise.inject.Model is intended for use with beans that define the model layer of an MVC web application architecture such as JSF.

#### Section 2.9 - Problems detected automatically by the container [exceptions]

a)

When the application violates a rule defined by this specification, the container automatically detects the problem. There are three kinds of problem - definition errors occur when a single bean definition violates the rules of this specification, deployment problems occur when there are problems resolving dependencies, or inconsistent specialization, in a particular deployment, and exceptions occur at runtime.

b)

Definition errors are developer errors. They may be detected by tooling at development time, and are also detected by the container at initialization time. If a definition error exists in a deployment, initialization will be aborted by the container.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.broken.tooManyScopes
Test archive name: 912ae3de733ab3330205d64dc88dcd557b8810
TooManyScopeTypesTest.testStereotypeWithTooManyScopeTypes()github
org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.array
Test archive name: 36312725acb4ceb82ed417fd7b3ba68ddd07ab8
ArrayTest.testInjectionPointWithArrayType()github
ba)

If a definition error exists, the container must throw a subclass of jakarta.enterprise.inject.spi.DefinitionException.

Coverage

org.jboss.cdi.tck.tests.definition.scope.broken.tooManyScopes
Test archive name: 598fb0a957b7c6afd817db94a3f75f3f833088
TooManyScopesTest.testTooManyScopesSpecifiedInJava()github
org.jboss.cdi.tck.tests.definition.scope.broken.tooManyScopes.producer.field
Test archive name: bdd238ef7bb1f2f37431d353295a07c7ffbc46
ProducerFieldTooManyScopesTest.testTooManyScopesSpecifiedInJava()github
org.jboss.cdi.tck.tests.implementation.simple.definition.dependentWithPublicField
Test archive name: 9c1d98d515ef1fc43ac3e42af4f7208f0f99c0
DependentWithPublicFieldTest.testNonDependentScopedBeanCanNotHavePublicField()github
org.jboss.cdi.tck.tests.definition.bean.broken.restricted
Test archive name: deaad39814b581d544f5e17843871771a1df13b6
RestrictedManagedBeanTest.testInvalidTypedValueOnManagedBean()github
org.jboss.cdi.tck.tests.definition.scope.broken.tooManyScopes.producer.method
Test archive name: 333e9d99d49edef857939fad3c878ccbb93a1c4
ProducerMethodTooManyScopesTest.testTooManyScopesSpecifiedInJava()github
c)

Deployment problems are detected by the container at initialization time. If a deployment problem exists in a deployment, initialization will be aborted by the container.

Coverage

org.jboss.cdi.tck.tests.lookup.dependency.resolution.broken.ambiguous
Test archive name: aa93e6badd5b2ee8a8c38550bc2efb21e13914ce
AmbiguousDependencyTest.testAmbiguousDependency()github
org.jboss.cdi.tck.tests.alternative.broken.incorrect.name
Test archive name: 4cafe73060563e246eb5c9aa9e6dddb3b8168b19
NoClassWithSpecifiedNameTest.test()github
ca)

If a deployment problem occurs, the container must throw a subclass of jakarta.enterprise.inject.spi.DeploymentException.

Coverage

org.jboss.cdi.tck.tests.lookup.dependency.resolution.broken.ambiguous
Test archive name: aa93e6badd5b2ee8a8c38550bc2efb21e13914ce
AmbiguousDependencyTest.testAmbiguousDependency()github
org.jboss.cdi.tck.tests.alternative.broken.incorrect.name
Test archive name: 4cafe73060563e246eb5c9aa9e6dddb3b8168b19
NoClassWithSpecifiedNameTest.test()github
d)

The container is permitted to define a non-portable mode, for use at development time, in which some definition errors and deployment problems do not cause application initialization to abort.

e)

Exceptions represent problems that may not be detected until they actually occur at runtime. All exceptions defined by this specification are unchecked exceptions. All exceptions defined by this specification may be safely caught and handled by the application.

#### Section 3.1 - Managed beans [managed_beans]

a)

If the bean class of a managed bean is annotated with both the @Interceptor and @Decorator stereotypes, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.broken.interceptorCanNotBeDecorator
Test archive name: b6835cbcb7931a22cd8acb0bd6655072235d
InterceptorCanNotBeDecoratorTest.testInterceptorCanNotAlsoBeDecorator()github

If a managed bean has a non-static public field, it must have scope @Dependent. If a managed bean with a non-static public field declares any scope other than @Dependent, the container automatically detects the problem and treats it as a definition error.

fa)

Check a dependent scoped bean with a public field.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testDependentScopedBeanCanHaveNonStaticPublicField()github
fb)

Check a managed bean with a static public field which declares any scope other than @Dependent.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition.nonDependentWithPublicStaticField
Test archive name: 65828a6cf3616831483ab944bcfff8b5afc8f4
NonDependentWithPublicStaticFieldTest.testNonDependentScopedBeanCanHavePublicStaticField()github
fc)

If a managed bean with a non-static public field declares any scope other than @Dependent, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition.dependentWithPublicField
Test archive name: 9c1d98d515ef1fc43ac3e42af4f7208f0f99c0
DependentWithPublicFieldTest.testNonDependentScopedBeanCanNotHavePublicField()github
g)

If the managed bean class is a generic type, it must have scope @Dependent. If a managed bean with a parameterized bean class declares any scope other than @Dependent, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.definition.bean.genericbroken
Test archive name: fcbacbbd77de603cd4831475a157fd788dc56ff
GenericManagedBeanTest.testNonDependentGenericManagedBeanNotOk()github

#### Section 3.1.1 - Which Java classes are managed beans? [what_classes_are_beans]

b)

A Java class is not a managed bean if it is an inner class.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testNonStaticInnerClassDeclaredInJavaNotDiscovered()github
ba)

A Java class that is a static nested class can be a managed bean.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testStaticInnerClassDeclaredInJavaAllowed()github
ca)

A Java class is not a managed bean if it is an abstract class, unless it is annotated @Decorator.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testAbstractClassDeclaredInJavaNotDiscovered()github
cb)

A Java class is not a managed bean if it is an interface, unless it is annotated @Decorator.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testInterfaceNotDiscoveredAsSimpleBean()github
g)

A Java class is not a managed bean if it implements jakarta.enterprise.inject.spi.Extension.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testExtensionNotDiscoveredAsSimpleBean()github
h)

A Java class is not a managed bean if it is annotated @Vetoed or placed in a package annotated @Vetoed.

Coverage

org.jboss.cdi.tck.tests.vetoed
Test archive name: 45dd756f280d2e86bc7c958657b5176da8934
VetoedTest.testClassLevelVeto()github
Test archive name: 45dd756f280d2e86bc7c958657b5176da8934
VetoedTest.testPackageLevelVeto()github
p)

A Java class is only a managed bean if it has an appropriate constructor - a constructor with no parameters.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testSimpleBeanOnlyIfConstructorParameterless()github
q)

A Java class is only a managed bean if it has an appropriate constructor - a constructor annotated @Inject.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testSimpleBeanOnlyIfConstructorIsInitializer()github
r)

If packages annotated @Vetoed are split across classpath entries, non-portable behavior results. An application can prevent packages being split across jars by sealing the package as defined by the Extension Mechanism Architecture.

#### Section 3.1.2 - Bean types of a managed bean [managed_bean_types]

a)

The unrestricted set of bean types for a managed bean contains the bean class, every superclass and all interfaces it implements directly or indirectly.

Coverage

org.jboss.cdi.tck.tests.definition.bean.types
Test archive name: a55a8bfaa09fd13068a169c9c34d5fbdae872eb
ManagedBeanTypesTest.testGenericHierarchyBeanTypes()github
org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testBeanTypes()github
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testGenericBeanTypes()github
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testRawBeanTypes()github
b)

The resulting set of bean types for a managed bean consists only of legal bean types, all other types are removed from the set of bean types.

Coverage

org.jboss.cdi.tck.tests.definition.bean.types.illegal
Test archive name: f5f4945f935be2ec24ab605ac7ea8fd5068181d
BeanTypesWithIllegalTypeTest.beanSetOfBeanTypesContainsOnlyLegalTypes()github

#### Section 3.1.3 - Declaring a managed bean [declaring_managed_bean]

a)

A managed bean with a constructor that takes no parameters does not require any special annotations

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testEmptyConstructorUsed()github
ab)

If the managed bean does not have a constructor that takes no parameters, it must have a constructor annotated @Inject. No additional special annotations are required.

A bean class may also specify a scope, name, stereotypes and/or qualifiers.

ba)

Test a bean with a scope.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testHasScopeType()github
bb)

Test a bean with a name.

Coverage

org.jboss.cdi.tck.tests.definition.name
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testNonDefaultNamed()github
bd)

Test a bean with a stereotype.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testMultipleStereotypes()github
be)

Test a bean with a qualifier.

Coverage

org.jboss.cdi.tck.tests.definition.qualifier
Test archive name: e2cc53c5a06367f3d135a5280e234a8e27ee9f
QualifierDefinitionTest.testQualifiersDeclaredInJava()github
c)

A managed bean may extend another managed bean.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testBeanExtendsAnotherBean()github

#### Section 3.1.4 - Specializing a managed bean [specialize_managed_bean]

If a bean class of a managed bean X is annotated @Specializes, then the bean class of X must directly extend the bean class of another managed bean Y. Then X directly specializes Y, as defined in Section 4.3, "Specialization".

aa)

Test that a specializing bean has all its own qualifiers and the qualifiers of the specialized bean.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.simple
Test archive name: ffec67a987a90ac638f6481cbf1b541bce36067
SimpleBeanSpecializationTest.testSpecializingBeanHasQualifiersOfSpecializedAndSpecializingBean()github
ab)

Test that a specializing bean has the name of the specialized bean.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.simple
Test archive name: ffec67a987a90ac638f6481cbf1b541bce36067
SimpleBeanSpecializationTest.testSpecializingBeanHasNameOfSpecializedBean()github
ac)

Test a specialized bean extending a managed bean.

Coverage

org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 7e87fcebbbaf0a51830bc1b7bd6fca4dfef5abf
Specialization03Test.testEnabledAlternativeSpecializes()github
Test archive name: 39940519dcdd8296e2d94db3bec54eda59edb
Specialization02Test.testEnabledAlternativeSpecializes()github
Test archive name: 47c278019cda2a28591c2da2cd43879a89134e1
Specialization05Test.testEnabledAlternativeSpecializes()github
Test archive name: 62cb7ff4a1adadbc0e4dead91e1972282aaee93
Specialization04Test.testEnabledAlternativeSpecializes()github
Test archive name: d32637292e29145cbdf2ad9c3a4b9ec95c6c9d9
Specialization06Test.testEnabledAlternativeSpecializes()github
org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testSpecializedBeanExtendsManagedBean()github
org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 63ee2e0f5dae557513854eec9bc7b7240f95cd3
Specialization01Test.testNotEnabledAlternativeDoesNotSpecialize()github

If the bean class of X does not directly extend the bean class of another managed bean, the container automatically detects the problem and treats it as a definition error.

da)

Test a specializing bean extending a non simple bean.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.simple.broken.noextend3
Test archive name: 1d7078624dcf3ffc514ef34f89cb65b88a54f7d3
SpecializingClassExtendsNonSimpleBeanTest.testSpecializingClassExtendsNonSimpleBean()github
db)

Test a specializing bean extending nothing.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.simple.broken.noextend2
Test archive name: f29dc7626e7a4888f10c699716e4d5455f5e264
SpecializingBeanExtendsNothingTest.testSpecializingClassDirectlyExtendsNothing()github
dd)

Test a specializing bean implementing an interface and extending nothing.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.simple.broken.noextend1
Test archive name: 3c509cb9419caaa65facfce05fb0f62f616de455
SpecializingBeanImplementsInterfaceOnly.testSpecializingClassImplementsInterfaceAndExtendsNothing()github

#### Section 3.1.5 - Default bean name for a managed bean [managed_bean_name]

a)

The default name for a managed bean is the unqualified class name of the bean class, after converting the first character to lower case

Coverage

org.jboss.cdi.tck.tests.definition.name
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testDefaultNamed()github
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testNameStartingWithMultipleUpperCaseCharacters()github
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testNameStartingWithUnderScoreCharacter()github
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testNameStartingWithDollarCharacter()github
Test archive name: 9d9c1e656827b7ae88a4f45c576e6894daaaf63
NameDefinitionTest.testNameStartingWithLowerCaseCharacter()github

#### Section 3.2 - Producer methods [producer_method]

aa)

A producer method must be a default-access, public, protected or private, non-abstract method of a managed bean class.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testProducerOnNonBean()github
org.jboss.cdi.tck.tests.deployment.packaging.war.modules
Test archive name: dec7dc110233d80afe6c175f5fae11f3f6d78d
WebArchiveModulesTest.testProducerAndEventDuringDisposal()github
org.jboss.cdi.tck.tests.deployment.packaging.ear.modules
Test archive name: b3b0a05066d9bec3659b91c3a2413dfa351982c
EnterpriseArchiveModulesTest.testProducerAndEventDuringDisposal()github
b)

A producer method may be static.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testStaticMethod()github
c)

A producer method may be non-static.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testDefaultBindingType()github
org.jboss.cdi.tck.tests.deployment.packaging.war.modules
Test archive name: dec7dc110233d80afe6c175f5fae11f3f6d78d
WebArchiveModulesTest.testProducerAndEventDuringDisposal()github
org.jboss.cdi.tck.tests.deployment.packaging.ear.modules
Test archive name: b3b0a05066d9bec3659b91c3a2413dfa351982c
EnterpriseArchiveModulesTest.testProducerAndEventDuringDisposal()github
e)

If a producer method sometimes returns a null value, then the producer method must have scope @Dependent.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testDependentProducerReturnsNullValue()github
f)

If a producer method returns a null value at runtime, and the producer method declares scope other than @Dependent, an IllegalProductException is thrown by the container. This restriction allows the container to use a client proxy, as defined in Section 5.4, "Client proxies".

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testNonDependentProducerReturnsNullValue()github
ga)

If the producer method return type is a parameterized type, it must specify an actual type parameter or type variable for each type parameter.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testParameterizedReturnType()github
ha)

If a producer method return type contains a wildcard type parameter the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.parameterizedTypeWithWildcard
Test archive name: 7c3ee7ebd151bcebbbe1352fb61e3f4daf969a0
ParameterizedTypeWithWildcardTest.testParameterizedReturnTypeWithWildcard()github
Test archive name: 69543ee45a77fe9c384a95f3ccc8ff8b378de521
ParametrizedTypeWithWildcard02Test.testParameterizedReturnTypeWithDoubleWildcard()github
hb)

If a producer method return type is an array type whose component type contains a wildcard type parameter the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.array
Test archive name: e1ebd0a03da24ec7659e190ec628f79674667e9
ProducerMethodArrayWildcardTest.testBeanTypes()github
iaa)

If the producer method return type is a parameterized type with a type variable, it must have scope @Dependent.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testTypeVariableReturnType()github
iab)

If a producer method with a parameterized return type with a type variable declares any scope other than @Dependent, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.parameterizedTypeWithTypeParameter
Test archive name: 747aba401bdbd3a58da1ac3acd318310abb7e18d
ParameterizedReturnTypeWithTypeVariableTest.testNonDependentScopedProducerMethodWithParameterizedTypeWithTypeVariable()github
ib)

If a producer method return type is a type variable the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.typeVariableReturnType
Test archive name: d8d02bd62072ea4f7617faca2f5a37ece76ddec
TypeVariableReturnTypeTest.testTypeVariableNotAllowed()github
ic)

If a producer method return type is an array type whose component type is a type variable the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.array
Test archive name: e384bb678c457f2f4ce4df167e687c4cfa549a2
ProducerMethodArrayTypeVariableTest.testBeanTypes()github
j)

The application may call producer methods directly. However, if the application calls a producer method directly, no parameters will be passed to the producer method by the container; the returned object is not bound to any context; and its lifecycle is not managed by the container.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.lifecycle
Test archive name: f2c03b21915f64328d7c83551748411224a5
ProducerMethodLifecycleTest.testWhenApplicationInvokesProducerMethodParametersAreNotInjected()github
k)

A bean may declare multiple producer methods.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testBindingType()github
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testScopeType()github

#### Section 3.2.1 - Bean types of a producer method [producer_method_types]

a)

If the return type of a producer method is an interface, the unrestricted set of bean types contains the return type, all interfaces it extends directly or indirectly and java.lang.Object

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testApiTypeForInterfaceReturn()github

If a return type of a producer method is primitive or is a Java array type, the unrestricted set of bean types contains exactly two types: the method return type and java.lang.Object.

ba)

Check primitive return type

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testApiTypeForPrimitiveReturn()github
bb)

Check array return type

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testApiTypeForArrayTypeReturn()github
c)

If the return type of a producer method is a class, the unrestricted set of bean types contains the return type, every superclass and all interfaces it implements directly or indirectly.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testApiTypeForClassReturn()github
d)

The resulting set of bean types for a producer method consists only of legal bean types, all other types are removed from the set of bean types.

Coverage

org.jboss.cdi.tck.tests.definition.bean.types.illegal
Test archive name: f5f4945f935be2ec24ab605ac7ea8fd5068181d
BeanTypesWithIllegalTypeTest.producerMethodsetOfBeanTypesContainsOnlyLegalTypes()github

#### Section 3.2.2 - Declaring a producer method [declaring_producer_method]

a)

A producer method may be declared by annotating a method with the @jakarta.enterprise.inject.Produces annotation

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testDefaultBindingType()github
ba)

A producer method may specify a scope.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testScopeType()github
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testStereotypeSpecifiesScope()github
bb)

A producer method may specify a name.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testNamedMethod()github
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testDefaultNamedMethod()github
bd)

A producer method may specify stereotypes.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testStereotypeSpecifiesScope()github
be)

A producer method may specify qualifiers.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testBindingType()github

If a producer method is annotated @Inject, has a parameter annotated @Disposes, or has a parameter annotated @Observes, or has a parameter annotated @ObservesAsync, the container automatically detects the problem and treats it as a definition error.

ca)

Test with a producer method annotated @Inject.

Coverage

org.jboss.cdi.tck.tests.implementation.initializer.broken.methodAnnotatedProduces
Test archive name: 49341a13ced15f58414afbbc5ecf80babf29cdf
InitializerMethodAnnotatedProducesTest.testInitializerMethodAnnotatedProduces()github
da)

Test with a producer method annotated @Disposes.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.parameterAnnotatedDisposes
Test archive name: 9f10336c1babc5f6e01166f7578a77aed2608
ParameterAnnotatedDisposesTest.testProducerMethodWithParameterAnnotatedDisposes()github
ea)

Test with a producer method annotated @Observes.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.parameterAnnotatedObserves
Test archive name: ae6b4a274a08bbced4cf9e24d85a5955a49ac
ParameterAnnotatedObservesTest.testProducerMethodWithParameterAnnotatedObserves()github
fa)

Test with a producer method annotated @ObservesAsync.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.parameterAnnotatedObservesAsync
Test archive name: fc869be5e1856c4b15fecaa08bdcafd09f7d78
ParameterAnnotatedAsyncObservesTest.testProducerMethodWithParameterAnnotatedAsyncObserves()github
ga)

Interceptors and decorators may not declare producer methods. If an interceptor or decorator has a method annotated @Produces, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.interceptor
Test archive name: eeb277363313e830ddd326cbc3a7df3e14abe8
ProducerMethodOnInterceptorTest.testProducerMethodNotAllowedOnInterceptor()github
gb)

Interceptors and decorators may not declare producer methods. If an interceptor or decorator has a method annotated @Produces, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.decorator
Test archive name: 4ba2ffe4b2744b9b56645931dc83ede29fa7f116
ProducerMethodOnDecoratorTest.testProducerMethodNotAllowedOnDecorator()github
h)

A producer method may have any number of parameters.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testBindingTypesAppliedToProducerMethodParameters()github
i)

All producer method parameters are injection points.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testBindingTypesAppliedToProducerMethodParameters()github
org.jboss.cdi.tck.tests.implementation.disposal.method.definition.parameters
Test archive name: 1bcfaef31ee5f15c0c1269029afe9c27d846e
DisposedParameterPositionTest.testDisposedParameterPosition()github

#### Section 3.2.3 - Specializing a producer method [specialize_producer_method]

aa)

If a producer method X is annotated @Specializes, then it must be non-static and directly override another producer method Y. Then X directly specializes Y, as defined in Section 4.3 "Specialization".

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.producer.method
Test archive name: 4f28f962f189d1fca7bd18b0f26373f4482b94
ProducerMethodSpecializationTest.testSpecializingProducerMethod()github
ba)

If a producer method is static, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.producer.method.broken.staticmethod
Test archive name: e47f463f414181bbd53fb584e9a984601f1668c0
SpecializesStaticMethodTest.testSpecializedStaticMethod()github
ca)

If a producer method does not directly override another producer method, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.producer.method.broken.indirectoverride
Test archive name: b5329c1628d573479c6d4bd5eb49defa74df31
IndirectOverrideTest.testSpecializedMethodIndirectlyOverridesAnotherProducerMethod()github

#### Section 3.2.4 - Default bean name for a producer method [producer_method_name]

The default name for a producer method is the method name, unless the method follows the JavaBeans property getter naming convention, in which case the default name is the JavaBeans property name

a)

Test default name is the method name.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition.name
Test archive name: 14d8e85acace949c6395a499a0527eafd8537075
ProducerMethodWithDefaultNameTest.testMethodName()github
b)

Test default name is the JavaBeans property name.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition.name
Test archive name: 14d8e85acace949c6395a499a0527eafd8537075
ProducerMethodWithDefaultNameTest.testJavaBeansPropertyName()github

#### Section 3.3 - Producer fields [producer_field]

a)

A producer field must be a default-access, public, protected or private, field of a managed bean class~

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.lifecycle
Test archive name: 10bd1736b13bee917131a842e7c632016aa8bcc
ProducerFieldLifecycleTest.testProducerFieldNotAnotherBean()github
org.jboss.cdi.tck.tests.implementation.producer.field.definition.enterprise
Test archive name: ccb7962a69e63e66adf9524c274593754fe34
EnterpriseProducerFieldDefinitionTest.testStaticProducerField()github
b)

A producer field may be static.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.lifecycle
Test archive name: 10bd1736b13bee917131a842e7c632016aa8bcc
ProducerFieldLifecycleTest.testProducerStaticFieldBean()github
c)

A producer field may be non-static.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testBeanDeclaresMultipleProducerFields()github
d)

If a producer field sometimes contains a null value when accessed, then the producer field must have scope @Dependent

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.lifecycle
Test archive name: 10bd1736b13bee917131a842e7c632016aa8bcc
ProducerFieldLifecycleTest.testProducerFieldReturnsNullIsDependent()github
e)

If a producer field contains a null value at runtime, and the producer field declares any other scope, an IllegalProductException is thrown by the container. This restriction allows the container to use a client proxy, as defined in Section 5.4, "Client proxies"

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.lifecycle
Test archive name: 10bd1736b13bee917131a842e7c632016aa8bcc
ProducerFieldLifecycleTest.testProducerFieldReturnsNullIsNotDependent()github
fa)

If the producer field type is a parameterized type, it must specify an actual type parameter or type variable for each type parameter

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testParameterizedReturnType()github
fb)

If the producer field type is a parameterized type, it must specify an actual type parameter or type variable for each type parameter

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testProducerFieldWithTypeVariable()github
ga)

If a producer field type contains a wildcard type parameter the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition.broken.wildcard
Test archive name: 3220dc526f823b7195d377085f5d35d66f1595
ProducerFieldTypeWithWildcardTest.testProducerFieldTypeWithWildcard()github
gc)

If a producer field type is an array type whose component type contains a wildcard parameter the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition.broken.array
Test archive name: 3f21037b1c4bd4cd18cf66682799bc55615befd
ProducerFieldArrayWildcardTest.testBeanTypes()github
gb)

If the producer field type is a parameterized type with a type variable, it must have scope @Dependent. If a producer field with a parameterized type with a type variable declares any scope other than @Dependent, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition.broken.typeVariable2
Test archive name: ff2afc3150a233a32f7cc8884dc6dca6e776e0dd
RequestScopedProducerFieldWithTypeVariableTest.testRequestScopedProducerFieldParameterizedWithTypeVariableNotAllowed()github
ha)

If a producer field type is a type variable the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition.broken.typeVariable
Test archive name: 20e7e889a38087643381ac45e93fdeeed1f4f3
ProducerFieldWithTypeVariableTest.testProducerFieldWithTypeOfTypeVariableNotAllowed()github
hb)

If a producer field type is an array type whose component type is a type variable the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition.broken.array
Test archive name: 21c343bd65dc4d6b68e0a9f5133834b3552bc6
ProducerFieldArrayTypeVariableTest.testBeanTypes()github
i)

The application may access producer fields directly. However, if the application accesses a producer field directly, the returned object is not bound to any context; and its lifecycle is not managed by the container

j)

A bean may declare multiple producer fields

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testBeanDeclaresMultipleProducerFields()github

#### Section 3.3.1 - Bean types of a producer field [producer_field_types]

a)

The bean types of a producer field depend upon the field type. If the field type is an interface, the unrestricted set of bean types contains the field type, all interfaces it extends directly or indirectly and java.lang.Object.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testApiTypeForInterfaceReturn()github

The bean types of a producer field depend upon the field type. If a field type is primitive or is a Java array type, the unrestricted set of bean types contains exactly two types: the field type and java.lang.Object.

ba)

Check primitive type

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testApiTypeForPrimitiveReturn()github
bb)

Check array type

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testApiTypeForArrayTypeReturn()github
c)

The bean types of a producer field depend upon the field type. If the field type is a class, the unrestricted set of bean types contains the field type, every superclass and all interfaces it implements directly or indirectly

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testApiTypeForClassReturn()github
d)

The resulting set of bean types for a producer field consists only of legal bean types, all other types are removed from the set of bean types.

Coverage

org.jboss.cdi.tck.tests.definition.bean.types.illegal
Test archive name: f5f4945f935be2ec24ab605ac7ea8fd5068181d
BeanTypesWithIllegalTypeTest.producerFieldsetOfBeanTypesContainsOnlyLegalTypes()github

#### Section 3.3.2 - Declaring a producer field [declaring_producer_field]

a)

A producer field may be declared by annotating a field with the @jakarta.enterprise.inject.Produces annotation.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testBeanDeclaresMultipleProducerFields()github
b)

A producer field may specify a scope.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testScopeType()github
c)

A producer field may specify a name.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testNamedField()github
e)

A producer field may specify stereotypes.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testStereotype()github
f)

A producer field may specify qualifiers.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testBindingType()github
g)

If a producer field is annotated @Inject, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition.broken.inject
Test archive name: 372a286a9bd983e9211be8b1dc495d68db66ac
InjectAnnotatedProducerFieldTest.testInjectAnnotatedProducerFieldNotAllowed()github
ia)

Interceptors and decorators may not declare producer fields. If an interceptor or decorator has a field annotated @Produces, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition.broken.interceptor
Test archive name: 7d6df9b7f05f2b4213d63856fc56a8836175316f
ProducerFieldOnInterceptorTest.testProducerFieldNotAllowedOnInterceptor()github
ib)

Interceptors and decorators may not declare producer fields. If an interceptor or decorator has a field annotated @Produces, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition.broken.decorator
Test archive name: 3d62f986cd729a7f538a1c84781b54db6d68cfcc
ProducerFieldOnDecoratorTest.testProducerFieldNotAllowedOnDecorator()github

#### Section 3.3.3 - Default bean name for a producer field [producer_field_name]

a)

The default name for a producer field is the field name

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testDefaultNamedByStereotype()github

#### Section 3.4 - Disposer methods [disposer_method]

aa)

A disposer method must be a default-access, public, protected or private, non-abstract method of a managed bean class.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testDisposalMethodOnNonBean()github
b)

A disposer method may be static.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testStaticDisposerMethod()github
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testStaticDisposerMethodWithNonStaticProducer()github
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testNonStaticDisposerMethodWithStaticProducer()github
org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testBindingTypesAppliedToDisposalMethodParameters()github
c)

A disposer method may be non-static.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testBindingTypesAppliedToDisposalMethodParameters()github
e)

A bean may declare multiple disposer methods.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testBindingTypesAppliedToDisposalMethodParameters()github

#### Section 3.4.1 - Disposed parameter of a disposer method [disposer_method_disposed_parameter]

a)

Each disposer method must have exactly one disposed parameter, of the same type as the corresponding producer method return type or producer field type.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.multiParams
Test archive name: 064cd35a4cacbc44aaa45c862d3fb861f74ec2b
MultipleDisposeParametersDefinitionTest.testMultipleDisposeParameters()github
org.jboss.cdi.tck.tests.implementation.disposal.method.definition.parameters
Test archive name: 1bcfaef31ee5f15c0c1269029afe9c27d846e
DisposedParameterPositionTest.testDisposedParameterPosition()github
ba)

When searching for disposer methods for a producer method or producer field the container considers the type and qualifiers of the disposed parameter. If a producer method or producer field declared by the same bean class is assignable to the disposed parameter, according to the rules of typesafe resolution defined in Section 5.2, "Typesafe resolution", the container must call this method when destroying any instance returned by that producer method or producer field.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testBindingTypesAppliedToDisposalMethodParameters()github
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testDisposalMethodOnNonBean()github
org.jboss.cdi.tck.tests.implementation.disposal.method.definition.invocation
Test archive name: 2f9506ea229361b7cfb381754389afb25d7ef9
DisposesMethodCalledOnceTest.testDisposerCalledOnce1()github
Test archive name: 2f9506ea229361b7cfb381754389afb25d7ef9
DisposesMethodCalledOnceTest.testDisposerCalledOnce2()github
Test archive name: 2f9506ea229361b7cfb381754389afb25d7ef9
DisposesMethodCalledOnceTest.testDisposerCalledOnce3()github
Test archive name: 2f9506ea229361b7cfb381754389afb25d7ef9
DisposesMethodCalledOnceTest.testDisposerCalledOnce4()github
Test archive name: 2f9506ea229361b7cfb381754389afb25d7ef9
DisposesMethodCalledOnceTest.testDisposerCalledOnce5()github
Test archive name: 2f9506ea229361b7cfb381754389afb25d7ef9
DisposesMethodCalledOnceTest.testDisposerCalledOnce6()github
da)

A disposer method may resolve to multiple producer methods or producer fields declared by the bean class, in which case the container must call it when destroying any instance returned by any of these producer methods or producer fields.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testDisposalMethodForMultipleProducerMethods()github

#### Section 3.4.2 - Declaring a disposer method [declaring_disposer_method]

a)

A disposer method may be declared by annotating a parameter @jakarta.enterprise.inject.Disposes. That parameter is the disposed parameter

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testBindingTypesAppliedToDisposalMethodParameters()github
ba)

Qualifiers may be declared by annotating the disposed parameter.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testBindingTypesAppliedToDisposalMethodParameters()github
bb)

If a method has more than one parameter annotated @Disposes, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.multiParams
Test archive name: 064cd35a4cacbc44aaa45c862d3fb861f74ec2b
MultipleDisposeParametersDefinitionTest.testMultipleDisposeParameters()github
ca)

If a disposer method is annotated @Produces, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.producesUnallowed
Test archive name: 485f239cc27a8ca35a38f5f82f512431fb649d6
ProducesUnallowedDefinitionTest.testProducesUnallowed()github
da)

If a disposer method is annotated @Inject, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.initializerUnallowed
Test archive name: 60663c44f05ae270b05475513dec6dc97f8a1aad
InitializerUnallowedDefinitionTest.testInitializerUnallowed()github
ea)

If a disposer method has a parameter annotated @Observes, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.observes
Test archive name: 837616e9194e84cb4748167c8af1e625a075e3
ObserverParameterUnallowedDefinitionTest.testObserverParameterUnallowed()github
fa)

If a disposer method has a parameter annotated @ObservesAsync, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.observes.async
Test archive name: 188394fd6b41433aec52a6c43ebcd4dd7cb8fbe
DisposerMethodWithAsyncObservesTest.testObserverParameterUnallowed()github
ga)

Interceptors and decorators may not declare disposer methods. If an interceptor or decorator has a method annotated @Disposes, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.interceptor
Test archive name: aea2742120b53924a6713f2f62f74e7f5af8d3
DisposerMethodOnInterceptorTest.testDisposerMethodNotAllowedOnInterceptor()github
gb)

Interceptors and decorators may not declare disposer methods. If an interceptor or decorator has a method annotated @Disposes, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.decorator
Test archive name: d1fc0ea3348f39246c68a564c80b0529083ea
DisposerMethodOnDecoratorTest.testDisposerMethodNotAllowedOnDecorator()github
h)

In addition to the disposed parameter, a disposer method may declare additional parameters, which may also specify qualifiers. These additional parameters are injection points.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.parameters
Test archive name: 1bcfaef31ee5f15c0c1269029afe9c27d846e
DisposedParameterPositionTest.testDisposedParameterPosition()github
org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testDisposalMethodParametersGetInjected()github

#### Section 3.4.3 - Disposer method resolution [disposer_method_resolution]

aa)

A disposer method is bound to a producer method if the producer method is declared by the same bean class as the disposer method, and the producer method is assignable to the disposed parameter, according to the rules of typesafe resolution defined in Section 5.2, "Typesafe resolution".

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testBindingTypesAppliedToDisposalMethodParameters()github
ab)

A disposer method is bound to a producer field if the producer field is declared by the same bean class as the disposer method, and the producer field is assignable to the disposed parameter, according to the rules of typesafe resolution defined in Section 5.2, "Typesafe resolution".

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testDisposalMethodCalledForProducerField()github
ba)

If there are multiple disposer methods for a single producer method or producer field, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.multiple
Test archive name: f9bf66d34b70c41b445b8d69f0f7c68dc5355
MultipleDisposerMethodsForProducerMethodTest.testMultipleDisposerMethodsForProducerMethodNotAllowed()github
ca)

If there is no producer method or producer field declared by the bean class that is assignable to the disposed parameter of a disposer method, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.unresolvedMethod
Test archive name: 5e7a32f7ceb820574e69e19b9a616655f39292
UnresolvedDisposalMethodDefinitionTest.testUnresolvedDisposalMethod()github

#### Section 3.5 - Bean constructors [bean_constructors]

a)

When the container instantiates a bean, it calls the bean constructor. The bean constructor is a default-access, public, protected or private constructor of the bean class.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testEmptyConstructorUsed()github

#### Section 3.5.1 - Declaring a bean constructor [declaring_bean_constructor]

The bean constructor may be identified by annotating the constructor @Inject

aa)

Test an @Inject constructor is used on a managed bean

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testInitializerAnnotatedConstructorUsedOverEmptyConstuctor()github
org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testCreateInjectsFieldsDeclaredInJava()github
org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testInitializerAnnotatedConstructor()github
ba)

If a bean class does not explicitly declare a constructor using @Inject, the constructor that accepts no parameters is the bean constructor.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testEmptyConstructorUsed()github
ca)

If a bean class has more than one constructor annotated @Inject, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition.tooManyInitializerAnnotatedConstructors
Test archive name: 3f9e2e399ed8411ab70a6837c40e1233269c522
TooManyInitializerAnnotatedConstructorsTest.testTooManyInitializerAnnotatedConstructor()github
da)

If a bean constructor has a parameter annotated @Disposes, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition.constructorHasDisposesParameter
Test archive name: 7a30931b55d8cb2733f6d44eb88edc7261cde9b7
ConstructorHasDisposesParameterTest.testConstructorHasDisposesParameter()github
ea)

If a bean constructor has a parameter annotated @Observes, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition.constructorHasObservesParameter
Test archive name: 1a1911d9fdeba2164904412eb1a75d99d7a165e
ConstructorHasObservesParameterTest.testConstructorHasObservesParameter()github
fa)

If a bean constructor has a parameter annotated @ObservesAsync, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition.constructorHasAsyncObservesParameter
Test archive name: c2f51389d05968857f4a9129cdcaf2e0bb94bbb3
ConstructorHasAsyncObservesParameterTest.testConstructorHasAsyncObservesParameter()github
f)

A bean constructor may have any number of parameters.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testInjectionOfParametersIntoBeanConstructor()github
g)

All parameters of a bean constructor are injection points.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testInjectionOfParametersIntoBeanConstructor()github
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testQualifierTypeAnnotatedConstructor()github

#### Section 3.6 - Injected fields [injected_fields]

An injected field is a non-static, non-final field of a bean class or of any other classes supporting injection.

a)

Test a bean class.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testCreateInjectsFieldsDeclaredInJava()github

#### Section 3.6.1 - Declaring an injected field [declaring_injected_field]

aa)

An injected field may be declared by annotating the field @jakarta.inject.Inject.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testCreateInjectsFieldsDeclaredInJava()github
b)

If an injected field is annotated @Produces, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition.broken.field
Test archive name: de8989e7dbec815d1d947e5439c8fd4a65a77873
InjectedFieldAnnotatedWithProducesTest.testDeployment()github

#### Section 3.7 - Initializer methods [initializer_methods]

An initializer method is a default-access, public, protected or private, non-abstract, non-static, non-generic method of a bean class or of any other classes supporting injection.

a)

Test a bean-class.

Coverage

org.jboss.cdi.tck.tests.implementation.initializer
Test archive name: bce0b51dd9a4695bb0c886ac8d2cc34ae72c3
InitializerMethodTest.testBindingTypeOnInitializerParameter()github
f)

Method interceptors are never called when the container calls an initializer method

Coverage

org.jboss.cdi.tck.tests.interceptors.invocation
Test archive name: ab95f7838ed4b6f1ad22179e8df1a3de30fe1ed8
InterceptorInvocationTest.testInitializerMethodsNotIntercepted()github
g)

A bean class may declare multiple (or zero) initializer methods

Coverage

org.jboss.cdi.tck.tests.implementation.initializer
Test archive name: bce0b51dd9a4695bb0c886ac8d2cc34ae72c3
InitializerMethodTest.testMultipleInitializerMethodsAreCalled()github
h)

The application may call initializer methods directly, but then no parameters will be passed to the method by the container

#### Section 3.7.1 - Declaring an initializer method [declaring_initializer]

a)

An initializer method may be declared by annotating the method @jakarta.inject.Inject

Coverage

org.jboss.cdi.tck.tests.implementation.initializer
Test archive name: bce0b51dd9a4695bb0c886ac8d2cc34ae72c3
InitializerMethodTest.testMultipleInitializerMethodsAreCalled()github
ab)

If a generic method of a bean is annotated @Inject, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.initializer.broken.generic
Test archive name: c1e7c212303d9f511dbb3db5acb5372ac5b5194
GenericInitializerMethodTest.testGenericInitializerMethodNotAllowed()github
ba)

If an initializer method is annotated @Produces, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.initializer.broken.methodAnnotatedProduces
Test archive name: 49341a13ced15f58414afbbc5ecf80babf29cdf
InitializerMethodAnnotatedProducesTest.testInitializerMethodAnnotatedProduces()github
ca)

If an initializer method has a parameter annotated @Disposes, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.initializer.broken.parameterAnnotatedDisposes
Test archive name: f6f77c587801be4c4786a5ccbc9c64f9fb36532
ParameterAnnotatedDisposesTest.testInitializerMethodHasParameterAnnotatedDisposes()github
da)

If an initializer method has a parameter annotated @Observes, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.initializer.broken.parameterAnnotatedObserves
Test archive name: c3aa96d2fb9c8e5788f25345f536f9f766efbb95
ParameterAnnotatedObservesTest.testInitializerMethodHasParameterAnnotatedObserves()github
ea)

If an initializer method has a parameter annotated @ObservesAsync, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.initializer.broken.parameterAnnotatedAsyncObserves
Test archive name: 3ae3d8054fa60928d2f5ca62551679fdf880
ParameterAnnotatedAsyncObservesTest.testInitializerMethodHasParameterAnnotatedAsyncObserves()github
e)

An initializer method may have any number of parameters.

Coverage

org.jboss.cdi.tck.tests.implementation.initializer
Test archive name: bce0b51dd9a4695bb0c886ac8d2cc34ae72c3
InitializerMethodTest.testMultipleInitializerMethodsAreCalled()github
f)

All initializer method parameters are injection points.

Coverage

org.jboss.cdi.tck.tests.implementation.initializer
Test archive name: bce0b51dd9a4695bb0c886ac8d2cc34ae72c3
InitializerMethodTest.testBindingTypeOnInitializerParameter()github

#### Section 3.8 - The default qualifier at injection points [injection_point_default_qualifier]

a)

If an injection point declares no qualifier, the injection point has exactly one qualifier, the default qualifier @Default.

Coverage

org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testObserverMethodParameterInjectionPoints()github
org.jboss.cdi.tck.tests.implementation.initializer
Test archive name: bce0b51dd9a4695bb0c886ac8d2cc34ae72c3
InitializerMethodTest.testMultipleInitializerMethodsAreCalled()github
org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testDisposalMethodParametersGetInjected()github

#### Section 3.9 - The qualifier @Named at injection points [named_at_injection_point]

a)

If an injected field declares a @Named annotation that does not specify the value member, the name of the field is assumed.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.named
Test archive name: d2d4e029ac5798d28c58f0e79dedda4524823ba3
NamedAtInjectionPointTest.testFieldNameUsedAsBeanName()github
b)

If any other injection point declares a @Named annotation that does not specify the value member, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.lookup.byname.broken.injectionPointWithNamed2
Test archive name: b4b3e1b7b09482a424bc3861e975c1b69eca2c6a
NamedNonFieldInjectionPointTest.testNamedObserverMethodInjectionPointNotAllowed()github
org.jboss.cdi.tck.tests.lookup.byname.broken.injectionPointWithNamed3
Test archive name: 9ec1d5294a41595eda4c2fd9b7377e9913fee8d
NamedNonFieldInjectionPointTest.testNamedInitializerMethodInjectionPointNotAllowed()github
org.jboss.cdi.tck.tests.lookup.byname.broken.injectionPointWithNamed
Test archive name: ef4f52e8ed37e7627198e90f2d243ee7dd2959d
NamedNonFieldInjectionPointTest.testNamedProducerInjectionPointNotAllowed()github

#### Section 3.10 - @New qualified beans [new]

d)

For each managed bean, a second bean exists which has the same bean class.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testForEachSimpleBeanANewBeanExists()github
e)

For each managed bean, a second bean exists which has the same bean types.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanHasTheSameBeanTypes()github
f)

For each managed bean, a second bean exists which has the same bean constructor.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanHasSameConstructor()github
g)

For each managed bean, a second bean exists which has the same initializer methods.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanHasSameInitializers()github
h)

For each managed bean, a second bean exists which has the same injected fields.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanHasSameInjectedFields()github
i)

For each managed bean, a second bean exists which has the same interceptor bindings.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanHasTheSameInterceptorBindings()github
p)

This second bean has scope @Dependent.

Coverage

No tests exist for this assertion

r)

This second bean has exactly one qualifier: @jakarta.enterprise.inject.New(X.class) where x is the bean class.

Coverage

No tests exist for this assertion

s)

This second bean has no bean name.

Coverage

No tests exist for this assertion

t)

This second bean has no stereotypes.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanHasNoStereotypes()github
u)

This second bean has no observer methods.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanHasNoObservers()github
v)

This second bean has no producer methods.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanHasNoProducerMethods()github
w)

This second bean has no producer fields.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanHasNoProducerFields()github
x)

This second bean has no disposer methods.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanHasNoDisposerMethods()github
xb)

This second bean is not an alternative.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanIsNotAlternative()github
xc)

This second bean is enabled, in the sense of Section 5.1.2, "Enabled and disabled beans", if and only if some other enabled bean has an injection point with the qualifier @New(X.class) where X is the bean class.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testNewBeanNotEnabledWithouInjectionPoint()github
xd)

This bean is called the @New qualified bean for the class X.

Note that this second bean exists, and may be enabled and available for injection even if the first bean is disabled, as defined by Section 5.1.2, “Enabled and disabled beans” or if the bean class is deployed outside of a bean deployment archive, as defined in Section 12.1, “Bean deployment archives”, and is therefore not discovered during the bean discovery process defined in Chapter 12, Packaging and deployment. The container discovers @New qualified beans by inspecting injection points of other enabled beans.

ya)

Check that @New on a field injection point outside the BDA, but in the classpath causes a bean with qualifier @New and the given type to be created

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanCreatedForFieldInjectionPoint()github
yc)

Check that @New on a initializer method injection point outside the BDA, but in the classpath causes a bean with qualifier @New and the given type to be created

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanCreatedForInitializerInjectionPoint()github
ye)

Check that @New on a constructor injection point outside the BDA, but in the classpath causes a bean with qualifier @New and the given type to be created

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanCreatedForConstructorInjectioAnPoint()github
yg)

Check that @New on a producer method injection point outside the BDA, but in the classpath causes a bean with qualifier @New and the given type to be created

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanCreatedForProducerMethod()github
yi)

Check that @New on a observer method injection point outside the BDA, but in the classpath causes a bean with qualifier @New and the given type to be created

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanCreatedForObserverMethod()github
yk)

Check that @New on a disposer method injection point outside the BDA, but in the classpath causes a bean with qualifier @New and the given type to be created

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanCreatedForDisposerMethod()github
z)

When the qualifier @New is specified at an injection point and no value member is explicitly specified, the container defaults the value to the declared type of the injection point.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.newSimpleBean
Test archive name: 5151ead89976e1eb24fc2c56ac9405bd5b0a816
NewSimpleBeanTest.testNewBeanWithNoMemberValue()github

#### Section 3.11 - Unproxyable bean types [unproxyable]

Certain legal bean types cannot be proxied by the container. If an injection point whose declared type cannot be proxied by the container resolves to a bean with a normal scope, the container automatically detects the problem and treats it as a deployment problem.

aa)

Test a class which doesn't have a non-private constructor with no parameters.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.privateConstructor
Test archive name: 4f502a15a3e29ad53cfe407ede524f7bcf571b3d
PrivateConstructorTest.testClassWithPrivateConstructor()github
org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.beanConstructor
Test archive name: 75dce5e0aa2c47fe8229e212647e48f88466edcc
BeanConstructorWithParametersTest.testDeployment()github
baa)

Test a class which is declared final.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd.broken.normalScope
Test archive name: fad65b9088c07f6eaa1a80bc5a754f198489a
AddingNormalScopeTest.testAddingScopeType()github
org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.finalClass
Test archive name: 86141455c2c47443254d2e033fe2bed988df267
FinalClassTest.testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedBean()github
bba)

Test a class that has non-static, final method with public visibility.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.finalMethod
Test archive name: f6b6ee146c2ea4d50b66366d95e75c3b2ceb5
PublicFinalMethodNotProxyableTest.testClassWithPublicFinalMethodCannotBeProxied()github
Test archive name: 83fe85651d81ba5c73be526a4fb8dcac234ec4d8
PackagePrivateFinalMethodNotProxyableTest.testClassWithPublicFinalMethodCannotBeProxied()github
Test archive name: 9a7720aa5b3bd578f8392ec9ce5f64058e54
ProtectedFinalMethodNotProxyableTest.testClassWithPublicFinalMethodCannotBeProxied()github
bbb)

Test a class that has non-static, final method with public visibility declared on a superclass.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.finalMethod
Test archive name: 959e2ad976ec357e18e1e6da1e4e8a54397732
NonPrivateNonStaticSuperclassMethodTest.testClassWithPublicFinalMethodCannotBeProxied()github
bca)

Test with a class that has static final method with public visibility.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.finalMethod
Test archive name: db62f38d3568c4292b64e9442c982e1664ddca9
StaticFinalMethodTest.testClassWithStaticFinalMethodCanBeProxied()github
bda)

Test a class that has final method with private visibility.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.finalMethod
Test archive name: 6d214913e27ceed87102c852e5d777af17d296
PrivateFinalMethodTest.testClassWithPrivateFinalMethodCanBeProxied()github
ca)

Test primitive type.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.primitive
Test archive name: b5b49302999e7727a6eb0d154ecd72f2bd8cad
UnproxyableTest.testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedBean()github
da)

Test array type.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.array
Test archive name: 36312725acb4ceb82ed417fd7b3ba68ddd07ab8
ArrayTest.testInjectionPointWithArrayType()github

A bean type must be proxyable if an injection point resolves to a bean:

ea)

That has an associated decorator.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.decorator
Test archive name: 2668ab6fbbee8c888ec320d75e1e604c33986153
DecoratoredBeanProxyTest.testClientProxyBeanWithAssociatedDecorator()github
eb)

That has a bound interceptor.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy.unproxyable.interceptor
Test archive name: 5ca493fcd582b34649fd7cc5f3970e6a14c21
InterceptedBeanProxyTest.testClientProxyBeanWithBoundInterceptor()github

#### Section 4.1 - Inheritance of type-level metadata [type_level_inheritance]

Suppose a class X is extended directly or indirectly by the bean class of a managed bean Y. If X is annotated with a qualifier type, stereotype or interceptor binding type Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and neither Y nor any intermediate class that is a subclass of X and a superclass of Y declares an annotation of type Z.

aa)

Test qualifier type for directly extended managed bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.alternative.resolution.qualifier
Test archive name: 7043908a7d3efd5a237bde5fb35c5457428cf25
QualifierInheritedTest.testResolution()github
org.jboss.cdi.tck.tests.definition.qualifier
Test archive name: e2cc53c5a06367f3d135a5280e234a8e27ee9f
QualifierDefinitionTest.testQualifierDeclaredInheritedIsInherited()github
Test archive name: e2cc53c5a06367f3d135a5280e234a8e27ee9f
QualifierDefinitionTest.testQualifierDeclaredInheritedIsBlockedByIntermediateClass()github
aaa)

Test qualifier type for directly extended managed bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.alternative.resolution.qualifier
Test archive name: 7c7721aadffe50666c34d0b37647309ee7365eef
QualifierNotInheritedTest.testResolution()github
org.jboss.cdi.tck.tests.definition.qualifier
Test archive name: e2cc53c5a06367f3d135a5280e234a8e27ee9f
QualifierDefinitionTest.testQualifierNotDeclaredInheritedIsNotInherited()github
ab)

Test stereotype for directly extended managed bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testWebBeanScopeTypeOverridesStereotype()github
org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testStereotypeDeclaredInheritedIsInherited()github
aba)

Test stereotype for directly extended managed bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testStereotypeNotDeclaredInheritedIsNotInherited()github
ad)

Test interceptor binding type for directly extended managed bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.inheritance
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testInterceptorBindingDirectlyInheritedFromManagedBean()github
ada)

Test interceptor binding type for directly extended managed bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.inheritance
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testInterceptorBindingDirectlyInheritedFromManagedBean()github
ag)

Test qualifier type for indirectly extended managed bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.definition.qualifier
Test archive name: e2cc53c5a06367f3d135a5280e234a8e27ee9f
QualifierDefinitionTest.testQualifierDeclaredInheritedIsIndirectlyInherited()github
aga)

Test qualifier type for indirectly extended managed bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.definition.qualifier
Test archive name: e2cc53c5a06367f3d135a5280e234a8e27ee9f
QualifierDefinitionTest.testQualifierNotDeclaredInheritedIsNotIndirectlyInherited()github
ah)

Test stereotype for indirectly extended managed bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testStereotypeDeclaredInheritedIsIndirectlyInherited()github
aha)

Test stereotype for indirectly extended managed bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testStereotypeNotDeclaredInheritedIsNotIndirectlyInherited()github
aj)

Test interceptor binding type for indirectly extended managed bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.inheritance
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testInterceptorBindingIndirectlyInheritedFromManagedBean()github
aja)

Test interceptor binding type for indirectly extended managed bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.inheritance
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testInterceptorBindingIndirectlyInheritedFromManagedBean()github

Suppose a class X is extended directly or indirectly by the bean class of a managed bean Y. If X is annotated with a scope type Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and neither Y nor any intermediate class that is a subclass of X and a superclass of Y declares a scope type.

ba)

Test scope type for directly extended managed bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testScopeTypeDeclaredInheritedIsInherited()github
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testScopeTypeDeclaredInheritedIsBlockedByIntermediateScopeTypeMarkedInherited()github
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testScopeTypeDeclaredInheritedIsBlockedByIntermediateScopeTypeNotMarkedInherited()github
baa)

Test scope type for directly extended managed bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testScopeTypeNotDeclaredInheritedIsNotInherited()github
bc)

Test scope type for indirectly extended managed bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testScopeTypeDeclaredInheritedIsIndirectlyInherited()github
bca)

Test scope type for indirectly extended managed bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.definition.scope
Test archive name: ac6eab946c56a21b8fff46430d2c0907fc98c74
ScopeDefinitionTest.testScopeTypeNotDeclaredInheritedIsNotIndirectlyInherited()github
hhh)

For class X which is extended directly by the bean class of a managed bean Y, a scope type explicitly declared by X and inherited by Y from X takes precedence over default scopes of stereotypes declared or inherited by Y.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testStereotypeScopeIsOverriddenByInheritedScope()github
hhi)

For class X which is extended indirectly by the bean class of a managed bean Y, a scope type explicitly declared by X and inherited by Y from X takes precedence over default scopes of stereotypes declared or inherited by Y.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype
Test archive name: b95ad7ad22e1c58193fd36de86f6cd377d2255e9
StereotypeDefinitionTest.testStereotypeScopeIsOverriddenByIndirectlyInheritedScope()github
i)

For annotations defined by the bean specification, all built-in scope types are declared @Inherited

j)

For annotations defined by the bean specification, all built-in stereotypes are declared @Inherited

k)

For annotations defined by the bean specification, no built-in qualifier type is declared @Inherited

m)

The @Named annotation is not declared @Inherited and bean names are not inherited unless specialization is used

#### Section 4.2 - Inheritance of member-level metadata [member_level_inheritance]

Suppose a class X is extended directly or indirectly by the bean class of a managed bean. If X declares an injected field x then Y inherits x.

aa)

Check managed bean X directly extends managed bean Y

Coverage

org.jboss.cdi.tck.tests.lookup.injection
Test archive name: 7666e237b452108821298e1be845739be0136c6c
InjectionTest.testInjectionFieldsAndInitializerMethods()github
ac)

Check managed bean X indirectly extends managed bean Y

Coverage

org.jboss.cdi.tck.tests.lookup.injection
Test archive name: 7666e237b452108821298e1be845739be0136c6c
InjectionTest.testFieldDeclaredInIndirectSuperclassInjected()github

Suppose a class X is extended directly or indirectly by the bean class of a managed bean Y. If X declares an initializer, non-static observer, @PostConstruct or @PreDestroy method x() then Y inherits x() if and only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y overrides the method x().

baa)

Check managed bean X directly extends managed bean Y with @PostConstruct

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testSubClassInheritsPostConstructOnSuperclass()github
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testSubClassDoesNotInheritPostConstructOnSuperclassBlockedByIntermediateClass()github
bac)

Check managed bean X indirectly extends managed bean Y with @PostConstruct

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testIndirectSubClassInheritsPostConstructOnSuperclass()github
bba)

Check managed bean X directly extends managed bean Y with @PostDestroy

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testSubClassInheritsPreDestroyOnSuperclass()github
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testSubClassDoesNotInheritPreDestroyConstructOnSuperclassBlockedByIntermediateClass()github
bbc)

Check managed bean X indirectly extends managed bean Y with @PostDestroy

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testIndirectSubClassInheritsPreDestroyOnSuperclass()github
dc)

Check managed bean X directly extends managed bean Y with a non-static observer method

Coverage

org.jboss.cdi.tck.tests.event.observer.inheritance
Test archive name: bbb77325b8c4ef34e3d152b6397b2d97b08e72
ObserverInheritanceTest.testNonStaticObserverMethodInherited()github
org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testNonStaticObserverMethodInherited()github
di)

Check managed bean X indirectly extends managed bean Y with a non-static observer method

Coverage

org.jboss.cdi.tck.tests.event.observer.inheritance
Test archive name: bbb77325b8c4ef34e3d152b6397b2d97b08e72
ObserverInheritanceTest.testNonStaticObserverMethodInherited()github
org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testNonStaticObserverMethodIndirectlyInherited()github
dm)

Check managed bean X directly extends managed bean Y with a initializer method

Coverage

org.jboss.cdi.tck.tests.inheritance.initializer
Test archive name: cf472cf0dd531f677b343a7ff71e99a9741eb66
InitializerMethodInheritanceTest.testManagedBeanDirectlyInheritsInitializer()github
do)

Check managed bean X indirectly extends managed bean Y with a initializer method

Coverage

org.jboss.cdi.tck.tests.inheritance.initializer
Test archive name: cf472cf0dd531f677b343a7ff71e99a9741eb66
InitializerMethodInheritanceTest.testManagedBeanIndirectlyInheritsInitializer()github

Suppose a class X is extended directly or indirectly by the bean class of a managed bean. If X declares a non-static method x() annotated with an interceptor binding type Z then Y inherits the binding if and only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y overrides the method x().

ka)

Check managed bean X directly extends managed bean Y

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.inheritance
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testMethodInterceptorBindingDirectlyInheritedFromManagedBean()github
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testMethodInterceptorBindingDirectlyNotInheritedFromManagedBean()github
kc)

Check managed bean X indirectly extends managed bean Y

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.inheritance
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testMethodInterceptorBindingIndirectlyInheritedFromManagedBean()github
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testMethodInterceptorBindingIndirectlyNotInheritedFromManagedBean()github

Suppose a class X is extended directly or indirectly by the bean class of a managed bean Y. If X declares a non-static producer or disposer method x() then Y does not inherit this method.

da)

Check managed bean X directly extends managed bean Y with a non-static producer method

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testNonStaticProducerMethodNotInheritedBySpecializingSubclass()github
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testNonStaticProducerMethodNotInherited()github
db)

Check managed bean X directly extends managed bean Y with a non-static disposer method

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.inheritance
Test archive name: 17e2aee0d37719fdb6783da57eb6d1516776bbd
DisposerMethodInheritanceTest.testManagedBeanDisposerMethodNotInherited()github
dg)

Check managed bean X indirectly extends managed bean Y with a non-static producer method

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testNonStaticProducerMethodNotInherited()github
dh)

Check managed bean X indirectly extends managed bean Y with a non-static disposer method

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.inheritance
Test archive name: 17e2aee0d37719fdb6783da57eb6d1516776bbd
DisposerMethodInheritanceTest.testManagedBeanDisposerMethodNotInherited()github

Suppose a class X is extended directly or indirectly by the bean class of a managed bean or session bean Y. If X declares a non-static producer field x then Y does not inherit this field.

ea)

Check managed bean X directly extends managed bean Y

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testNonStaticProducerFieldNotInherited()github
ec)

Check managed bean X indirectly extends managed bean Y

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition
Test archive name: ad5ee76e0bee939447f302d247e0f5df6f5496
ProducerFieldDefinitionTest.testNonStaticProducerFieldNotIndirectlyInherited()github

If X is a generic type, and an injection point or observer method declared by X is inherited by Y, and the declared type of the injection point, producer method, producer field, disposed para- meter or event parameter contains type variables declared by X, the type of the injection point, producer method, producer field, disposed parameter or event parameter inherited in Y is the declared type, after substitution of actual type arguments declared by Y or any intermediate class that is a subclass of X and a superclass of Y.

f)

Check injection point

Coverage

org.jboss.cdi.tck.tests.inheritance.generics
Test archive name: 23a375bf6695e0d7ab6ee5b25d8b8043156573c4
MemberLevelInheritanceTest.testInjectionPointDefinition()github
Test archive name: 23a375bf6695e0d7ab6ee5b25d8b8043156573c4
MemberLevelInheritanceTest.testInjectionPoint()github
g)

check observer method

Coverage

org.jboss.cdi.tck.tests.inheritance.generics
Test archive name: 23a375bf6695e0d7ab6ee5b25d8b8043156573c4
MemberLevelInheritanceTest.testObserverResolution()github
Test archive name: 23a375bf6695e0d7ab6ee5b25d8b8043156573c4
MemberLevelInheritanceTest.testObserver()github

#### Section 4.3 - Specialization [specialization]

a)

If two beans both support a certain bean type, and share at least one qualifier, then they are both eligible for injection to any injection point with that declared type and qualifier.

When an enabled bean specializes a second bean, we can be certain that the second bean is never instantiated or called by the container. Even if the second bean defines a producer or observer method, the method will never be called.

ca)

The second bean is never instantiated.

Coverage

org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 7e87fcebbbaf0a51830bc1b7bd6fca4dfef5abf
Specialization03Test.testEnabledAlternativeSpecializes()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.specialization
Test archive name: f959173a26132581b2ace4f98b3a9606472b6de
VetoTest.testSpecializedBeanAvailableAfterSpecializingBeanVetoed()github
org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 39940519dcdd8296e2d94db3bec54eda59edb
Specialization02Test.testEnabledAlternativeSpecializes()github
Test archive name: 47c278019cda2a28591c2da2cd43879a89134e1
Specialization05Test.testEnabledAlternativeSpecializes()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.specialization
Test archive name: ca4d64dc82ea8f98fca0ebd5d5d14ad7bd0fe
SpecializationTest.testProcessBeanAttributesFiredProperlyForSpecializedBean()github
cb)

Producer method on specialized bean is not called.

Coverage

org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 7e87fcebbbaf0a51830bc1b7bd6fca4dfef5abf
Specialization03Test.testEnabledAlternativeSpecializes()github
Test archive name: 39940519dcdd8296e2d94db3bec54eda59edb
Specialization02Test.testEnabledAlternativeSpecializes()github
org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testNonStaticProducerMethodNotInheritedBySpecializingSubclass()github
org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 47c278019cda2a28591c2da2cd43879a89134e1
Specialization05Test.testEnabledAlternativeSpecializes()github
org.jboss.cdi.tck.tests.inheritance.specialization.simple
Test archive name: ffec67a987a90ac638f6481cbf1b541bce36067
SimpleBeanSpecializationTest.testProducerMethodOnSpecializedBeanNotCalled()github
org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 62cb7ff4a1adadbc0e4dead91e1972282aaee93
Specialization04Test.testEnabledAlternativeSpecializes()github
org.jboss.cdi.tck.tests.implementation.producer.method.lifecycle
Test archive name: f2c03b21915f64328d7c83551748411224a5
ProducerMethodLifecycleTest.testProducerMethodFromSpecializedBeanUsed()github
cc)

Observer method on specialized bean is not called.

Coverage

org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 7e87fcebbbaf0a51830bc1b7bd6fca4dfef5abf
Specialization03Test.testEvent()github
Test archive name: 39940519dcdd8296e2d94db3bec54eda59edb
Specialization02Test.testEvent()github
Test archive name: 47c278019cda2a28591c2da2cd43879a89134e1
Specialization05Test.testEvent()github
Test archive name: 62cb7ff4a1adadbc0e4dead91e1972282aaee93
Specialization04Test.testEvent()github
org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testObserverCalledOnSpecializedBeanOnly()github
cd)

Producer field on specialized bean is not used.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.lifecycle
Test archive name: 10bd1736b13bee917131a842e7c632016aa8bcc
ProducerFieldLifecycleTest.testProducerFieldFromSpecializingBeanUsed()github

#### Section 4.3.1 - Direct and indirect specialization [direct_and_indirect_specialization]

ia)

A bean X is said to specialize another bean Y if X directly specializes Y.

Coverage

org.jboss.cdi.tck.tests.lookup.modules.specialization
Test archive name: 4299de18dc775d35939fd68bad211ede351e1ac
SpecializationModularity04Test.testSpecialization()github
org.jboss.cdi.tck.tests.inheritance.specialization.simple
Test archive name: ffec67a987a90ac638f6481cbf1b541bce36067
SimpleBeanSpecializationTest.testIndirectSpecialization()github
Test archive name: ffec67a987a90ac638f6481cbf1b541bce36067
SimpleBeanSpecializationTest.testSpecializingBeanInjection()github
org.jboss.cdi.tck.tests.inheritance.specialization.producer.method
Test archive name: 4f28f962f189d1fca7bd18b0f26373f4482b94
ProducerMethodSpecializationTest.testSpecializingProducerMethod()github
Test archive name: 4f28f962f189d1fca7bd18b0f26373f4482b94
ProducerMethodSpecializationTest.testSpecializingBeanInjection()github
org.jboss.cdi.tck.tests.lookup.modules.specialization
Test archive name: 2d3aeebf46f86372dd82a3255ed47a6a8b5d975a
SpecializationModularity01Test.testSpecialization()github
Test archive name: 50d2fbff9b6daa711bab4fe8d0687de7552f1b63
SpecializationModularity02Test.testSpecialization()github
ib)

A bean X is said to specialize another bean Y if a bean Z exists, such that X directly specializes Z and Z specializes Y.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.simple
Test archive name: ffec67a987a90ac638f6481cbf1b541bce36067
SimpleBeanSpecializationTest.testIndirectSpecialization()github
j)

A bean X that specializes bean Y will include all qualifiers of Y, together with all qualifiers declared explicitly by X.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.simple
Test archive name: ffec67a987a90ac638f6481cbf1b541bce36067
SimpleBeanSpecializationTest.testSpecializingBeanHasQualifiersOfSpecializedAndSpecializingBean()github
org.jboss.cdi.tck.tests.inheritance.specialization.producer.method
Test archive name: 4f28f962f189d1fca7bd18b0f26373f4482b94
ProducerMethodSpecializationTest.testSpecializingProducerMethod()github
org.jboss.cdi.tck.tests.inheritance.specialization.qualifiers
Test archive name: e4cfecd411251a7f191030939e7151dfc8bfc2c
SpecializingBeanQualifiersTest.testQuailifiersOfSpecializingdNestedClass()github
Test archive name: e4cfecd411251a7f191030939e7151dfc8bfc2c
SpecializingBeanQualifiersTest.testQuailifiersOfSpecializingBean()github
Test archive name: e4cfecd411251a7f191030939e7151dfc8bfc2c
SpecializingBeanQualifiersTest.testQualifiersOfProducedSpecializingBean()github
k)

A bean X that specializes bean Y will have the same name as Y if Y has a name.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.simple
Test archive name: ffec67a987a90ac638f6481cbf1b541bce36067
SimpleBeanSpecializationTest.testSpecializingBeanHasNameOfSpecializedBean()github
org.jboss.cdi.tck.tests.inheritance.specialization.producer.method
Test archive name: 4f28f962f189d1fca7bd18b0f26373f4482b94
ProducerMethodSpecializationTest.testSpecializingProducerMethod()github
l)

X must have all the bean types of Y. If X does not have some bean type of Y, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.specialization.broken
Test archive name: e1b99352a5784337a5691b3e4c4da13f2f687b0
TypeConflictDetectionTest.testDeployment()github
org.jboss.cdi.tck.tests.inheritance.specialization.simple.broken.types
Test archive name: e619716066dd1793fdffd0d1855f6b21ab6d6d1
SpecializingBeanWithoutBeanTypeOfSpecializedBeanTest.testDeployment()github
org.jboss.cdi.tck.tests.inheritance.specialization.enterprise.broken.extend.sessionbean
Test archive name: c6affed3d18dbf85817b3ad217bd01fab1b89e
SessionBeanSpecializingSessionBeanWithClientViewTest.testDeployment()github

If Y has a bean name and X declares a bean name explicitly the container automatically detects the problem and treats it as a definition error.

la)

Test that a specializing producer method with a name throws a definition exception.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.producer.method.broken.name
Test archive name: e5c3e41a8ec25cc94827cfbd6f8299ac649d1fd
SpecializingAndSpecializedBeanHaveNameTest.testSpecializingAndSpecializedBeanHasName()github
lb)

Test that a specializing managed bean with a name throws a definition exception.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.simple.broken.names
Test archive name: 5c84f0adac6e60f859db3093e6a8dd1b5496b888
SpecializingAndSpecializedBeanHasNameTest.testSpecializingAndSpecializedBeanHasName()github
n)

If an interceptor or decorator is annotated @Specializes, non-portable behavior results.

#### Section 5 - Dependency injection and lookup [injection_and_resolution]

b)

The container is required to support circularities in the bean dependency graph where at least one bean participating in every circular chain of dependencies has a normal scope, as defined in Section 6.3, "Normal scopes and pseudo-scopes".

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise.chain
Test archive name: 97e97de58f814eda5b533acbba2a73aaba128d
SessionBeanInjectionChainTest.testChainOfSessionBeans()github
org.jboss.cdi.tck.tests.lookup.circular
Test archive name: 2338cd8435dd2fb466ba82013e12f7c4a97d42
CircularDependencyTest.testCircularInjectionOnTwoNormalBeans()github
Test archive name: 2338cd8435dd2fb466ba82013e12f7c4a97d42
CircularDependencyTest.testCircularInjectionOnOneNormalAndOneDependentBean()github
Test archive name: 2338cd8435dd2fb466ba82013e12f7c4a97d42
CircularDependencyTest.testNormalProducerMethodDeclaredOnNormalBeanWhichInjectsProducedBean()github
Test archive name: 2338cd8435dd2fb466ba82013e12f7c4a97d42
CircularDependencyTest.testNormalProducerMethodDeclaredOnDependentBeanWhichInjectsProducedBean()github
Test archive name: 2338cd8435dd2fb466ba82013e12f7c4a97d42
CircularDependencyTest.testNormalCircularConstructors()github
Test archive name: 2338cd8435dd2fb466ba82013e12f7c4a97d42
CircularDependencyTest.testNormalAndDependentCircularConstructors()github
Test archive name: 2338cd8435dd2fb466ba82013e12f7c4a97d42
CircularDependencyTest.testSelfConsumingConstructorsOnNormalBean()github
c)

The container is not required to support circular chains of dependencies where every bean participating in the chain has a pseudo-scope.

#### Section 5.1 - Modularity [selection]

A bean packaged in a certain module is available for injection, lookup and name resolution to classes packaged in some other module if the bean class of the bean is required to be accessible to the other module by the class accessibility requirements of the module architecture.

aa)

Test with injection.

Coverage

org.jboss.cdi.tck.tests.lookup.modules.specialization
Test archive name: 8824ce7618ede5de7375d55f1cee3a4d1c499a4
SpecializationModularity05Test.testSpecialization()github
org.jboss.cdi.tck.tests.lookup.modules
Test archive name: fd324a159cb59b51cdfb7599c62569a70cb
EnabledSessionBeanInjectionAvailability02Test.testInjection()github
org.jboss.cdi.tck.tests.lookup.modules.specialization
Test archive name: 4299de18dc775d35939fd68bad211ede351e1ac
SpecializationModularity04Test.testSpecialization()github
org.jboss.cdi.tck.tests.lookup.modules
Test archive name: 31fe9474d7f810ae88c6ae95d1277983b7e82
EnabledManagedBeanInjectionAvailability02Test.testInjection()github
Test archive name: 4985f9b283dbcadc8cb4b4babb1917a8b1a1166
EnabledSessionBeanInjectionAvailabilityTest.testInjection()github
org.jboss.cdi.tck.tests.lookup.modules.specialization
Test archive name: df65a050399e394984b15b4724e3a21b89791d25
SpecializationModularity06Test.testSpecialization()github
Test archive name: 2d3aeebf46f86372dd82a3255ed47a6a8b5d975a
SpecializationModularity01Test.testSpecialization()github
org.jboss.cdi.tck.tests.lookup.modules
Test archive name: 6183e0d715fbe1f2653daee0d0a61590548743c
EnabledManagedBeanInjectionAvailabilityTest.testInjection()github
org.jboss.cdi.tck.tests.lookup.modules.specialization
Test archive name: 50d2fbff9b6daa711bab4fe8d0687de7552f1b63
SpecializationModularity02Test.testSpecialization()github
Test archive name: b6867892329e19fc4e7864de0889c158e20eda
SpecializationModularity03Test.testSpecialization()github
org.jboss.cdi.tck.tests.lookup.modules.interceptors
Test archive name: cc537d34de6bd8be6356342d0bf74f980a9c77e
InterceptorModularityTest.testInterceptorEnvironment()github
ab)

Test with lookup.

Coverage

org.jboss.cdi.tck.tests.lookup.modules
Test archive name: 3634ccfcc09080a8f91c91cb10e895ebd765a420
InterModuleLookupTest.testEnabledManagedBeanAvailableForInjection()github
Test archive name: 7297fcdb9f7ad2ac074f937d6c07924144ac30
InterModuleLookup02Test.testEnabledManagedBeanAvailableForInjection()github
ac)

Test with name resolution.

Coverage

org.jboss.cdi.tck.tests.lookup.modules
Test archive name: 6d07e98f31ae12e5b75aeebd814dee1de4a68
InterModuleELResolutionTest.testEnabledManagedBeanAvailableForELResolution()github
d)

An alternative is never available for injection, lookup or name resolution in a module unless the module is a bean archive and the alternative is explicitly selected for the bean archive or the application..

e)

Nor is an alternative available for injection, lookup or name resolution in every bean deployment archive. An alternative must be explicitly selected in every bean deployment archive in which the alternative should be available for injection, lookup and name resolution.

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testAlternativeAvailability()github

#### Section 5.1.1 - Declaring selected alternatives [declaring_selected_alternatives]

a)

This specification defines two methods of selecting alternatives. From Contexts and Dependency Injection 1.1 onwards the @Priority annotation allows an alternative to be selected for an entire application. Contexts and Dependency Injection 1.0 allowed only for an alternative to be selected for a bean archive.

#### Section 5.1.1.1 - Declaring selected alternatives for an application [declaring_selected_alternatives_application]

An alternative may be given a priority for the application by placing the @Priority annotation on the bean class of a managed bean.

aa)

Test @Priority on the bean class of a managed bean.

Coverage

org.jboss.cdi.tck.tests.alternative.selection.enterprise
Test archive name: 55235f7e53868a8211b745f8d2d2a9bbe379e668
EnterpriseSelectedAlternative03Test.testAlternativeManagedBeanAvailable()github
org.jboss.cdi.tck.tests.alternative.selection
Test archive name: d1360ae8b5cb578f15cdbc2b9865fe983da67e9
SelectedAlternative01Test.testAlternativeManagedBeanSelected()github

An alternative may be given a priority for the application by placing the @Priority annotation on the bean class that declares the producer method, field or resource.

ba)

Test @Priority on the bean class of a producer method.

Coverage

org.jboss.cdi.tck.tests.alternative.selection.enterprise
Test archive name: 55235f7e53868a8211b745f8d2d2a9bbe379e668
EnterpriseSelectedAlternative03Test.testAlternativeProducerSelected()github
org.jboss.cdi.tck.tests.alternative.selection
Test archive name: d1360ae8b5cb578f15cdbc2b9865fe983da67e9
SelectedAlternative01Test.testAlternativeProducerSelected()github
bb)

Test @Priority on the bean class of a producer field.

Coverage

org.jboss.cdi.tck.tests.alternative.selection.enterprise
Test archive name: 55235f7e53868a8211b745f8d2d2a9bbe379e668
EnterpriseSelectedAlternative03Test.testAlternativeProducerSelected()github
org.jboss.cdi.tck.tests.alternative.selection
Test archive name: d1360ae8b5cb578f15cdbc2b9865fe983da67e9
SelectedAlternative01Test.testAlternativeProducerSelected()github
bc)

Test @Priority on the resource.

Coverage

org.jboss.cdi.tck.tests.alternative.selection.resource
Test archive name: 6daaf2fcff375f036efc51eaf45d6cd8e543bb2
ResourceAlternative01Test.testAlternativeResourceSelected()github

#### Section 5.1.1.2 - Declaring selected alternatives for a bean archive [declaring_selected_alternatives_bean_archive]

a)

An alternative may be explicitly declared using the <alternatives> element of the beans.xml file of the bean archive. The <alternative> element contains a list of bean classes and stereotypes.

An alternative is selected for the bean archive if the alternative is a managed bean and the bean class of the bean is listed.

ba)

Test selected managed bean.

Coverage

org.jboss.cdi.tck.tests.alternative.resolution.qualifier
Test archive name: 7c7721aadffe50666c34d0b37647309ee7365eef
QualifierNotInheritedTest.testResolution()github
org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testAlternativeAvailability()github
org.jboss.cdi.tck.tests.extensions.alternative.deployment
Test archive name: 8a325680be2ac764a8125cd1ce5fe777f5f3533c
AlternativeInLibraryWithExtensionTest.testAlternative()github
org.jboss.cdi.tck.tests.alternative.resolution.qualifier
Test archive name: dad477c476b124b2387879b55a8c89da96a8bb
QualifierNotDeclaredTest.testResolution()github
Test archive name: 7043908a7d3efd5a237bde5fb35c5457428cf25
QualifierInheritedTest.testResolution()github
org.jboss.cdi.tck.tests.alternative.selection.stereotype
Test archive name: 278f7c0d31bd47bfeb27fd2c4c76f21b8d3032
SelectedBeanWithUnselectedStereotypeTest.testSingleAlternativeIsSelected()github

An alternative is selected for the bean archive if the alternative is a producer method, field or resource, and the bean class that declares the method or field is listed.

ca)

Test selected producer method.

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testProducerAlternativesOnMethodAndField()github
cb)

Test selected producer field.

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testProducerAlternativesOnMethodAndField()github
cc)

Test selected resource.

Coverage

org.jboss.cdi.tck.tests.alternative.enterprise.resource
Test archive name: c49adefb5cf35d25736173c1547ae0985c377dda
ResourceAlternativeAvailabilityTest.testResourceAvailability()github
d)

An alternative is selected for the bean archive if any @Alternative stereotype of the alternative is listed.

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testAnyEnabledAlternativeStereotypeMakesAlternativeEnabled()github
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testStereotypeAlternativeOnProducerMethodAndField()github
e)

For each child <class> element the container verifies that either a class with the specified name exists and is annotated with @Alternative or an @Alternative stereotype, or a class with the specified name exists and declares a field or method annotated with @Produces and, at the same time, annotated with @Alternative or an @Alternative stereotype, or an alternative bean whose bean class has the specified name exists. Otherwise, the container automatically detects the problem and treats it as a deployment problem.

Coverage

org.jboss.cdi.tck.tests.alternative.broken.incorrect.name
Test archive name: 4cafe73060563e246eb5c9aa9e6dddb3b8168b19
NoClassWithSpecifiedNameTest.test()github
org.jboss.cdi.tck.tests.alternative.veto
Test archive name: 753c6ade8c7d88d641b1d77f5c366a4feca66f
VetoedAlternativeTest.mockAlternativeIsVetoed()github
Test archive name: 753c6ade8c7d88d641b1d77f5c366a4feca66f
VetoedAlternativeTest.alternativeStereotypeIsVetoed()github
org.jboss.cdi.tck.tests.alternative.broken.not.alternative
Test archive name: 2dc0927fc21809841501a567c8f3bf924ec1ac7
ClassIsNotAlternativeTest.test()github
f)

Each child <stereotype> element must specify the name of a @Alternative stereotype annotation. If there is no annotation with the specified name, or the annotation is not a @Alternative stereotype, the container automatically detects the problem and treats it as a deployment problem.

Coverage

org.jboss.cdi.tck.tests.alternative.broken.incorrect.name.stereotype
Test archive name: aaa0effc748757aff231ca982d3fc373b833c6
NoAnnotationWithSpecifiedNameTest.test()github
org.jboss.cdi.tck.tests.alternative.broken.not.alternative.stereotype
Test archive name: 9fec5e67bb50678adba62104aa76fd054446d3f
ClassIsNotAlternativeTest.test()github
g)

If the same type is listed twice under the <alternatives> element, the container automatically detects the problem and treats it as a deployment problem.

Coverage

org.jboss.cdi.tck.tests.alternative.broken.same.type.twice
Test archive name: b3d4163e54618a1e58a91f6e8160e32d5b7aa33
SameTypeListedTwiceTest.test()github
h)

For a custom implementation of the Bean interface defined in Section "bean", the container calls isAlternative() to determine whether the bean is an alternative, and getBeanClass() and getStereotypes() to determine whether an alternative is selected in a certain bean deployment archive.

Coverage

org.jboss.cdi.tck.tests.definition.bean.custom
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testGetBeanClassCalled()github
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testGetStereotypesCalled()github
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testIsPolicyCalled()github
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testCustomBeanNotAutomaticallySelected()github
The following assertion is not made explicitly by the spec, however it is implied i)

An alternative selected only for a specific bean archive is not selected for an application.

Coverage

org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 7e87fcebbbaf0a51830bc1b7bd6fca4dfef5abf
Specialization03Test.testEnabledAlternativeSpecializes()github
Test archive name: 39940519dcdd8296e2d94db3bec54eda59edb
Specialization02Test.testEnabledAlternativeSpecializes()github
Test archive name: 47c278019cda2a28591c2da2cd43879a89134e1
Specialization05Test.testEnabledAlternativeSpecializes()github
org.jboss.cdi.tck.tests.deployment.packaging.war.modules
Test archive name: dec7dc110233d80afe6c175f5fae11f3f6d78d
WebArchiveModulesTest.testAlternatives()github

#### Section 5.1.2 - Enabled and disabled beans [enablement]

a)

A bean is said to be enabled if it is deployed in a bean deployment archive, and it is not a producer method or field of a disabled bean, and it is not specialized by any other enabled bean, as defined in Section 4.3, "Specialization", and either it is not an alternative, or it is not an alternative, or it is a selected alternative of at least one bean archive or the application. Otherwise, the bean is said to be disabled.

#### Section 5.1.3 - Inconsistent specialization [inconsistent_specialization]

a)

Suppose an enabled bean X specializes a second bean Y. If there is another enabled bean that specializes Y we say that inconsistent specialization exists. The container automatically detects inconsistent specialization and treats it as a deployment problem.

Coverage

org.jboss.cdi.tck.tests.lookup.modules.specialization
Test archive name: 67e53fc6764fe1be211938ae6ce871069e9a77
SpecializationModularity07Test.testSpecialization()github
org.jboss.cdi.tck.tests.inheritance.specialization.enterprise.broken.twobeans
Test archive name: 4d7ec59976ab0a8e18dcff1025bc257e8155cf
TwoBeansSpecializeTheSameBeanTest.testTwoSessionBeansSpecializeTheSameBean()github
org.jboss.cdi.tck.tests.inheritance.specialization.simple.broken.inconsistent
Test archive name: c5bdbb72fed6211b55a3e0692e9c2af4da148d
InconsistentSpecializationTest.testInconsistentSpecialization()github
org.jboss.cdi.tck.tests.inheritance.specialization.producer.method.broken.twobeans
Test archive name: cd70881ae6851426cec7cc67e204baff9d2782c
TwoBeansSpecializeTheSameBeanTest.testTwoBeansSpecializeTheSameBean()github

#### Section 5.1.4 - Inter-module injection [inter_module_injection]

A bean is available for injection in a certain module if the bean is not an interceptor or decorator, the bean is enabled, the bean is either not an alternative, or the module is a bean archive and the bean is a selected alternative of the bean archive, and the bean class is required to be accessible to classes in the module, according to the class accessibility requirements of the module architecture.

a)

Check a decorator can not be injected

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution.decorator
Test archive name: 4ee3571386cc3abf777c767ff16154858acfcb4f
DecoratorNotInjectedTest.testDecoratorNotResolved()github
b)

Check an interceptor can not be injected

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution.interceptor
Test archive name: 6873765b468e51e4cdcc5ef6a15445426679150
InterceptorNotResolvedTest.testInterceptorNotAvailableForInjection()github
Test archive name: f824b41c717f26c802d74a9548edece449ba113
InterceptorNotResolvedInterModuleTest.testInterceptorNotAvailableForInjection()github
c)

Check an enabled managed bean can be injected

Coverage

org.jboss.cdi.tck.tests.lookup.modules
Test archive name: 31fe9474d7f810ae88c6ae95d1277983b7e82
EnabledManagedBeanInjectionAvailability02Test.testInjection()github
Test archive name: 6183e0d715fbe1f2653daee0d0a61590548743c
EnabledManagedBeanInjectionAvailabilityTest.testInjection()github
e)

Check an enabled producer field can be injected

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testProducersOnAlternativeClass()github
org.jboss.cdi.tck.tests.lookup.modules
Test archive name: d46cd62a1a668591dd754e36467d2e493dcb598
EnabledProducerFieldInjectionAvailabilityTest.testInjection()github
Test archive name: 93eb886cf05e4be62d192c478d883940ac16b5a5
EnabledProducerFieldInjectionAvailability02Test.testInjection()github
f)

Check an enabled producer method can be injected

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testProducersOnAlternativeClass()github
org.jboss.cdi.tck.tests.lookup.modules
Test archive name: b6c9606348acf1ca5d8f72ec68bf359bb39620b5
EnabledProducerMethodInjectionAvailability02Test.testInjection()github
Test archive name: c15c39c7aaed37816664942fb81372146d8ec9f
EnabledProducerMethodInjectionAvailabilityTest.testInjection()github
g)

Check producer method of a disabled bean is not injectable

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testProducersOnAlternativeClass()github
org.jboss.cdi.tck.tests.lookup.modules.broken
Test archive name: da5a52c7d5bbdf88cfe1fdef0c4ca2d001ee5
DisabledProducerMethodInjectionNotAvailableTest.testInjection()github
h)

Check producer field of a disabled bean is not injectable

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testProducersOnAlternativeClass()github
org.jboss.cdi.tck.tests.lookup.modules.broken
Test archive name: 2472f3b2ec766ce28e6d9db5397dbdbb4856b
DisabledProducerFieldInjectionNotAvailableTest.testInjection()github
i)

Check a disabled managed bean is not injectable

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution.broken.disabled
Test archive name: 9db7a82a9f015b59971ffada2ea5efb2ba9645
DisabledBeanNotAvailableForInjectionTest.testDeployment()github
l)

Check a specialized managed bean is not injectable

Coverage

org.jboss.cdi.tck.tests.lookup.modules.specialization
Test archive name: 8824ce7618ede5de7375d55f1cee3a4d1c499a4
SpecializationModularity05Test.testSpecialization()github
Test archive name: df65a050399e394984b15b4724e3a21b89791d25
SpecializationModularity06Test.testSpecialization()github
Test archive name: b6867892329e19fc4e7864de0889c158e20eda
SpecializationModularity03Test.testSpecialization()github
org.jboss.cdi.tck.tests.lookup.modules
Test archive name: 888557d736a5211315aed65e95da41de20df7df4
SpecializedBeanInjectionNotAvailable02Test.testManagedBeanInjection()github
Test archive name: 95e9877b16b34ba4f070edc4c04681e1e81aff1e
SpecializedBeanInjectionNotAvailableTest.testManagedBeanInjection()github
m)

Check a specialized producer field is not injectable

n)

Check a specialized producer method is not injectable

Coverage

org.jboss.cdi.tck.tests.lookup.modules
Test archive name: 3fa98beaaccdce37fc63ebcd9f7bad95b39ab
SpecializedProducerMethodInjectionNotAvailable02Test.testManagedBeanInjection()github
Test archive name: 714b2c123d3899ea251c1c5d29fdf27168da8
SpecializedProducerMethodInjectionNotAvailableTest.testManagedBeanInjection()github
o)

Check a selected alternative being managed bean is injected

Coverage

org.jboss.cdi.tck.tests.lookup.modules
Test archive name: 11d97e1e9911c260ec8eb148cb7979161ccc
SelectedAlternativeManagedBeanInjectionAvailability02Test.testInjection()github
Test archive name: a33bdd2f2c3edcd7292fcb4810273c6f73397d4
SelectedAlternativeManagedBeanInjectionAvailabilityTest.testInjection()github

For a custom implementation of the Bean interface defined in Section 11.1, "The Bean interface, the container calls getBeanClass() to determine the bean class of the bean and InjectionPoint.getMember() and then Member.getDeclaringClass() to determine the class that declares an injection point.

q)

Check Bean.getBeanClass() is used to determine the bean class

Coverage

org.jboss.cdi.tck.tests.definition.bean.custom
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testGetBeanClassCalled()github
r)

Check InjectionPoint.getMember().getDeclaringClass() is used to determine the class declaring the injection point

Coverage

No tests exist for this assertion

#### Section 5.2.1 - Performing typesafe resolution [performing_typesafe_resolution]

A bean is assignable to a given injection point if the bean has a bean type that matches the required type. For this purpose, primitive types are considered to match their corresponding wrapper types in java.lang and array types are considered to match only if their element types are identical. Parameterized and raw types are considered to match if they are identical or if the bean type is assignable to the required type, as defined in Section 5.2.3, "Assignability of raw and parameterized types".

i)

Test with a primitive type.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testResolveByTypeWithPrimitives()github
j)

Test with an array type.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testResolveByTypeWithArray()github
ka)

Test with a parameterized type.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testResolveByTypeWithTypeParameter()github
kb)

Test with a raw type.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityToRawType()github
kc)

Test with a @Named bean.

Coverage

org.jboss.cdi.tck.tests.lookup.injection
Test archive name: 7666e237b452108821298e1be845739be0136c6c
InjectionTest.testInjectionOfNamedBean()github

A bean is assignable to a given injection point if the bean has all the required qualifiers. If no required qualifiers were explicitly specified, the container assumes the required qualifier @Default. A bean has the required qualifier if it has a qualifier with (a) the same type and (b) the same annotation member value for each member which is not annotated @jakarta.enterprise.util.NonBinding.

la)

Test with beans with required qualifiers.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testAllQualifiersSpecifiedForResolutionMustAppearOnBean()github
org.jboss.cdi.tck.tests.alternative.resolution.qualifier
Test archive name: 7043908a7d3efd5a237bde5fb35c5457428cf25
QualifierInheritedTest.testResolution()github
lb)

Test with beans without required qualifiers.

Coverage

org.jboss.cdi.tck.tests.alternative.resolution.qualifier
Test archive name: 7c7721aadffe50666c34d0b37647309ee7365eef
QualifierNotInheritedTest.testResolution()github
Test archive name: dad477c476b124b2387879b55a8c89da96a8bb
QualifierNotDeclaredTest.testResolution()github
org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testDefaultBindingTypeAssumed()github
lc)

Test with matching beans with matching qualifier with same type.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testAllQualifiersSpecifiedForResolutionMustAppearOnBean()github
ld)

Test with matching beans with matching qualifier with same annotation member value for each member which is not annotated @jakarta.enterprise.util.NonBinding.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testResolveByTypeWithNonBindingMembers()github
n)

A bean is eligible for injection to a certain injection point if it is available for injection in the module that contains the class that declares the injection point, and it is assignable to the injection point.

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.visibility
Test archive name: c03fa4c4fef93a191f7164347ebb6ccb7bc6b0d4
JarToJarReverseAlphaVisibilityTest.testDeployment()github
org.jboss.cdi.tck.tests.deployment.packaging.war.modules
Test archive name: dec7dc110233d80afe6c175f5fae11f3f6d78d
WebArchiveModulesTest.testInjectionChainVisibilityAndInterceptorEnablement()github
org.jboss.cdi.tck.tests.deployment.packaging.ear.modules
Test archive name: b3b0a05066d9bec3659b91c3a2413dfa351982c
EnterpriseArchiveModulesTest.testVisibilityAndInterceptorEnablement()github
org.jboss.cdi.tck.tests.deployment.packaging.visibility
Test archive name: 894ff426d641b7dbc1837447342eb38bf66619
JarToJarAlphaVisibilityTest.testDeployment()github

For a custom implementation of the Bean interface defined in Section 11.1, "The Bean interface", the container calls getTypes() and getQualifiers() to determine the bean types and qualifiers.

na)

Test getTypes() determines bean types.

Coverage

org.jboss.cdi.tck.tests.definition.bean.custom
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testGetTypesCalled()github
nb)

Test getQualifiers() determines qualifiers.

Coverage

org.jboss.cdi.tck.tests.definition.bean.custom
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testGetBindingsCalled()github

#### Section 5.2.2 - Unsatisfied and ambiguous dependencies [unsatisfied_and_ambig_dependencies]

When an ambiguous dependency exists, the container attempts to resolve the ambiguity. The container eliminates all eligible beans that are not alternatives selected for the bean archive or selected for the application, except for producer methods and fields of beans that are alternatives.

ca)

If there is exactly one bean remaining, the container will select this bean, and the ambiguous dependency is called resolvable.

Coverage

org.jboss.cdi.tck.tests.lookup.dependency.resolution
Test archive name: 1553651a11ce131010b7c339b1e69133fd5ad76
AmbiguousDependencyResolutionTest.testProducerMethodOnAlternativeIsNotEliminated()github
Test archive name: 1553651a11ce131010b7c339b1e69133fd5ad76
AmbiguousDependencyResolutionTest.testProducerFieldOnAlternativeIsNotEliminated()github
cb)

If all the beans left are alternatives with a priority, then the container will determine the highest priority value, and eliminate all beans, except for producer methods and fields of beans that are alternatives with the highest priority value. If there is exactly one bean remaining, the container will select this bean, and the ambiguous dependency is called resolvable.

Coverage

org.jboss.cdi.tck.tests.alternative.selection.enterprise
Test archive name: 55235f7e53868a8211b745f8d2d2a9bbe379e668
EnterpriseSelectedAlternative03Test.testDependencyResolvable()github
org.jboss.cdi.tck.tests.alternative.selection.resource
Test archive name: aecf56c64aabdb0705cbd1813f2a018578e743
ResourceAlternative04Test.testAlternativeResourceSelected()github
org.jboss.cdi.tck.tests.alternative.selection
Test archive name: 9410b6bee602f768aebb6850704cab32d42caf
SelectedAlternative02Test.testDependencyResolvable()github

The container must validate all injection points of all enabled beans, all observer methods and all disposer methods when the application is initialized to ensure that there are no unsatisfied or ambiguous dependencies. If an unsatisfied or ambiguous dependency exists, the container automatically detects the problem and treats it as a deployment problem.

aa)

Test unsatisfied dependency for enabled bean.

Coverage

org.jboss.cdi.tck.tests.lookup.dependency.resolution.broken.unsatisfied
Test archive name: 721b42aed2e2632cab54fdb16cdaf58e43668024
UnsatisfiedDependencyTest.testUnsatisfiedDependency()github
ab)

Test unsatisfied dependency for observer method.

Coverage

org.jboss.cdi.tck.tests.event.observer.broken.validation.unsatisfied
Test archive name: d7eae584819b8d2af89ac828f421feb86bed36
ObserverMethodParameterInjectionValidationTest.test()github
ac)

Test unsatisfied dependency for disposer method.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.validation.unsatisfied
Test archive name: e1261c44aa2ad76edf4f5ee34be94c0c81fd77
DisposerMethodParameterInjectionValidationTest.test()github
ae)

Test ambiguous dependency for enabled bean.

Coverage

org.jboss.cdi.tck.tests.lookup.dependency.resolution.broken.ambiguous
Test archive name: aa93e6badd5b2ee8a8c38550bc2efb21e13914ce
AmbiguousDependencyTest.testAmbiguousDependency()github
org.jboss.cdi.tck.tests.lookup.dependency.resolution.broken.ambiguous.ear
Test archive name: 78ac89b4d8a5e43723326e28d87b713c17be22d
MultiModuleSessionBeanAmbiguousDependencyTest.testAmbiguousDependencyDetected()github
af)

Test ambiguous dependency for observer method.

Coverage

org.jboss.cdi.tck.tests.event.observer.broken.validation.ambiguous
Test archive name: f17420c2d4f08c9b3fa39534fa4cc1f57279f96
ObserverMethodParameterInjectionValidationTest.test()github
ag)

Test ambiguous dependency for disposer method.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.validation.ambiguous
Test archive name: c49ac758bfb7de6abfa54b49c07a4af6c1728625
DisposerMethodParameterInjectionValidationTest.test()github
b)

For a custom implementation of the Bean interface defined in Section 11.1, "The Bean interface", the container calls getInjectionPoints() to determine the set of injection points.

Coverage

org.jboss.cdi.tck.tests.definition.bean.custom
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testGetInjectionPointsCalled()github

#### Section 5.2.3 - Legal injection point types [legal_injection_point_types]

a)

Any legal bean type, as defined in Section 2.2.1, "Legal bean types" may be the required type of an injection point.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.requiredtype
Test archive name: eca8e8f0de84c9d2abccea59f54698f086299a
LegalRequiredTypeTest.testLegalRequiredType()github
b)

The required type of an injection point may contain a wildcard type parameter.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityOfParameterizedTypeWithActualTypesToParameterizedTypeWithWildcardsAtInjectionPoint()github
c)

If an injection point type is a type variable, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution.broken.type.variable
Test archive name: 75fac3edd95e9f279e463358d1a7bd763438f87
TypeVariableInjectionPointTest.testTypeVariableInjectionPoint()github

#### Section 5.2.4 - Assignability of raw and parameterized types [assignable_parameters]

a)

A parameterized bean type is considered assignable to a raw required type if the raw types are identical and all type parameters of the bean type are either unbounded type variables or java.lang.Object.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityToRawType()github
org.jboss.cdi.tck.tests.lookup.injection.parameterized
Test archive name: 81d9f9635eebf1d7c7184d565b44ae78deecdba
ParameterizedTypesInjectionToRawTypeTest.testInjection()github
org.jboss.cdi.tck.tests.lookup.injection.parameterized.broken.raw
Test archive name: 19834052ecb8ad9cca91a7f3b079e73cdff387c9
ParameterizedTypesInjectionRawAmbiguousTest.testInjection()github

A parameterized bean type is considered assignable to a parameterized required type if they have identical raw type and for each parameter: the required type parameter and the bean type parameter are actual types with identical raw type, and, if the type is parameterized, the bean type parameter is assignable to the required type parameter according to these rules, or the required type parameter is a wildcard, the bean type parameter is an actual type and the actual type is assignable to the upper bound, if any, of the wildcard and assignable from the lower bound, if any, of the wildcard, or the required type parameter is a wildcard, the bean type parameter is a type variable and the upper bound of the type variable is assignable to or assignable from the upper bound, if any, of the wildcard and assignable from the lower bound, if any, of the wildcard, or the required type parameter is an actual type, the bean type parameter is a type variable and the actual type is as- signable to the upper bound, if any, of the type variable, or the required type parameter and the bean type parameter are both type variables and the upper bound of the required type parameter is assignable to the upper bound, if any, of the bean type parameter.

ba)

Check the required type parameter and the bean type parameter are actual types with identical raw type

Coverage

org.jboss.cdi.tck.tests.lookup.injection.parameterized
Test archive name: 58c5beb5fac88c3741b8bea6af4dc777ae478657
ParameterizedTypesInjectionToParameterizedWithActualTypeTest.testInjection()github
org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityOfParameterizedTypeWithActualTypesToParameterizedTypeWithActualTypes()github
bb)

Check the required type parameter and the bean type parameter are actual types with identical raw type for nested type parameters

Coverage

org.jboss.cdi.tck.tests.lookup.injection.parameterized
Test archive name: 58c5beb5fac88c3741b8bea6af4dc777ae478657
ParameterizedTypesInjectionToParameterizedWithActualTypeTest.testInjection()github
c)

Check the required type parameter is a wildcard, the bean type parameter is an actual type and the actual type is assignable to the upper bound of the wildcard and assignable from the lower bound of the wildcard

Coverage

org.jboss.cdi.tck.tests.lookup.injection.parameterized
Test archive name: aa6f34c03b6724aab64d6d4674a363a68dbfb2e
ParameterizedTypesInjectionToParameterizedWithWildcardTest.testInjection()github
org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityOfParameterizedTypeWithActualTypesToParameterizedTypeWithWildcards()github
da)

Check the required type parameter is a wildcard, the bean type parameter is a type variable and the upper bound of the type variable is assignable to the upper bound of the wildcard

Coverage

org.jboss.cdi.tck.tests.lookup.injection.parameterized
Test archive name: aa6f34c03b6724aab64d6d4674a363a68dbfb2e
ParameterizedTypesInjectionToParameterizedWithWildcardTest.testInjection()github
org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityOfParameterizedTypeWithTypeVariablesToParameterizedTypeWithWildcards()github
db)

Check the required type parameter is a wildcard, the bean type parameter is a type variable and the upper bound of the type variable is assignable from the upper bound of the wildcard

Coverage

org.jboss.cdi.tck.tests.lookup.injection.parameterized
Test archive name: aa6f34c03b6724aab64d6d4674a363a68dbfb2e
ParameterizedTypesInjectionToParameterizedWithWildcardTest.testInjection()github
org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityOfParameterizedTypeWithTypeVariablesToParameterizedTypeWithWildcards2()github
dc)

Check the required type parameter is a wildcard, the bean type parameter is a type variable and the upper bound of the type variable is assignable from the lower bound of the wildcard

Coverage

org.jboss.cdi.tck.tests.lookup.injection.parameterized.multiple.bounds
Test archive name: e6757516d7127f70112e11dda8d09ff9f7bbb2
ParameterizedTypesWithTypeVariableWithMultipleBoundsTest.testInjectionOfBeanWithWildcardWithTypeVariableAsLowerBound()github
org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityOfParameterizedTypeWithTypeVariablesToParameterizedTypeWithWildcards()github
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityOfParameterizedTypeWithTypeVariablesToParameterizedTypeWithWildcards2()github
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityOfParameterizedTypeWithTypeVariablesToParameterizedTypeWithWildcardWithLowerBound()github
e)

Check the required type parameter is an actual type, the bean type parameter is a type variable and the actual type is assignable to the upper bound of the type variable

Coverage

org.jboss.cdi.tck.tests.lookup.injection.parameterized.multiple.bounds
Test archive name: e6757516d7127f70112e11dda8d09ff9f7bbb2
ParameterizedTypesWithTypeVariableWithMultipleBoundsTest.testInjectionOfBeanWithTypeVariableWithMultipleBoundsToParameterizedTypeWithActualType()github
org.jboss.cdi.tck.tests.lookup.injection.parameterized
Test archive name: 58c5beb5fac88c3741b8bea6af4dc777ae478657
ParameterizedTypesInjectionToParameterizedWithActualTypeTest.testInjection()github
org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityOfParameterizedTypeWithTypeVariablesToParameterizedTypeWithActualTypes()github
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityOfParameterizedTypeWithTypeVariablesWithMultipleBoundsToParameterizedTypeWithActualTypes()github
f)

Check the required type parameter and the bean type parameter are both type variables and the upper bound of the required type parameter is assignable to the upper bound of the bean type parameter.

Coverage

org.jboss.cdi.tck.tests.lookup.injection.parameterized.multiple.bounds
Test archive name: e6757516d7127f70112e11dda8d09ff9f7bbb2
ParameterizedTypesWithTypeVariableWithMultipleBoundsTest.testInjectionOfBeanWithTypeVariableWithMultipleBounds()github
org.jboss.cdi.tck.tests.lookup.injection.parameterized
Test archive name: aaa0da6ef686aeb6145b0f48068da66799c843d
ParameterizedTypesInjectionToParameterizedWithTypeVariableTest.testInjection()github
Test archive name: 44454758a466607cd28bfd1cf68e75b69ffbd8
ParameterizedTypesInjectionToParameterizedWithTypeVariableUpperBoundTest.testInjection()github
org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityOfParameterizedTypeWithTypeVariablesToParameterizedTypeWithTypeVariable()github
Test archive name: e276ac2f6d93b3eb0fd4e7b8eb2fedeb51b
AssignabilityOfRawAndParameterizedTypesTest.testAssignabilityOfParameterizedTypeWithTypeVariableWithMultipleBoundsToParameterizedTypeWithTypeVariable()github
g)

A raw bean type is considered assignable to a parameterized required type if the raw types are identical and all type parameters of the required type are either unbounded type variables or java.lang.Object.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution.parameterized.raw
Test archive name: ce601760804d72f1aa3cf4d7be699b7f2e9714d
RawBeanTypeParameterizedRequiredTypeTest.testNotAssignableTypeParams()github
Test archive name: ce601760804d72f1aa3cf4d7be699b7f2e9714d
RawBeanTypeParameterizedRequiredTypeTest.testAssignableTypeParams()github

#### Section 5.2.5 - Primitive types and null values [primitive_types_and_null_values]

If necessary, the container performs boxing or unboxing when it injects a value to a field or parameter of primitive or wrapper type.

aa)

Test boxing.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testResolveByTypeWithPrimitives()github
org.jboss.cdi.tck.tests.lookup.injection
Test archive name: 7666e237b452108821298e1be845739be0136c6c
InjectionTest.testInjectionPerformsBoxingIfNecessary()github
ab)

Test unboxing.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testResolveByTypeWithPrimitives()github
b)

If an injection point of primitive type resolves to a producer method or producer field that returns a null value at runtime, the container must inject the primitive type's default value as defined by the Java Language Specification.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution.primitive
Test archive name: 5de386e986a9913fd88d9c4af422a82831e2e8
PrimitiveInjectionPointTest.testPrimitiveInjectionPointResolvedToNonPrimitiveProducerMethod()github

#### Section 5.2.6 - Qualifier annotations with members [qualifier_annotation_members]

a)

Qualifier types may have annotation members.

b)

An annotation member may be excluded from consideration using the @NonBinding annotation.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testResolveByTypeWithNonBindingMembers()github
org.jboss.cdi.tck.tests.lookup.binding.members.annotation
Test archive name: 654bbdd6146b74675114288c092593dc3a6ab1
BindingAnnotationWithMemberTest.testAnnotationMemberWithNonBinding()github
org.jboss.cdi.tck.tests.lookup.binding.members.array
Test archive name: a8317c69f4b64268bafe24bf80618989ecfe13
BindingAnnotationWithMemberTest.testArrayMemberWithNonBinding()github
c)

Array-valued or annotation-valued members of a qualifier type should be annotated @NonBinding in a portable application. If an array-valued or annotation-valued member of a qualifier is not annotated @NonBinding, non-portable behavior results.

#### Section 5.2.7 - Multiple qualifiers [multiple_qualifiers]

a)

A bean class may declare multiple qualifiers.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testAllQualifiersSpecifiedForResolutionMustAppearOnBean()github
b)

A producer method may declare multiple qualifiers.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testResolveByTypeWithPrimitives()github
c)

A producer field may declare multiple qualifiers.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testResolveByTypeWithPrimitives()github
d)

A bean must declare all of the qualifiers that are specified at the injection point to be considered a candidate for injection.

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: ac18a74afa968b86c9ff96c618213c237878d46
ResolutionByTypeTest.testAllQualifiersSpecifiedForResolutionMustAppearOnBean()github

#### Section 5.3 - EL name resolution [name_resolution]

d)

An name resolves to a bean if the bean has the given bean name, and the bean is available for injection in the module where the name resolution is requested.

Coverage

org.jboss.cdi.tck.tests.lookup.el.integration
Test archive name: f9eea6a29feaafb7f3b246d62cac6bb2dbdb91
IntegrationWithUnifiedELTest.testELResolverRegisteredWithJsf()github
Test archive name: f9eea6a29feaafb7f3b246d62cac6bb2dbdb91
IntegrationWithUnifiedELTest.testELResolverRegisteredWithServletContainer()github
e)

For a custom implementation of the Bean interface defined in Section 11.1, "The Bean interface", the container calls getName() to determine the bean name.

Coverage

org.jboss.cdi.tck.tests.definition.bean.custom
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testGetNameCalled()github

#### Section 5.3.1 - Ambiguous EL names [ambig_names]

An ambiguous name exists when a name resolves to multiple beans. When an ambiguous name exists, the container attempts to resolve the ambiguity. The container eliminates all eligible beans that are not alternatives selected for the bean archive or selected for the application, except for producer methods and fields of beans that are alternatives.

ca)

If there is exactly one bean remaining, the container will select this bean, and the ambiguous dependency is called resolvable.

Coverage

org.jboss.cdi.tck.tests.lookup.byname
Test archive name: fa98ae886924f427d98e271ce11b3cd0343ca7
ResolutionByNameTest.testAmbiguousELNamesResolved()github
cb)

If all the beans left are alternatives with a priority, then the container will determine the highest priority value, and eliminate all beans, except for producer methods and fields of beans that are alternatives with the highest priority value. If there is exactly one bean remaining, the container will select this bean, and the ambiguous dependency is called resolvable.

Coverage

org.jboss.cdi.tck.tests.lookup.byname.ambiguous
Test archive name: a0e78dc358f71b814d0fa8e5cc25136f112dae1
AmbiguousELNamesTest.testAmbiguousELNamesResolved()github
org.jboss.cdi.tck.tests.lookup.byname.ambiguous.broken
Test archive name: 7ec8972ecb7a63781c2b8e0fc5c26259adb4672
AmbiguousELNamesTest.testAmbiguousELNamesResolved()github

All unresolvable ambiguous names are detected by the container when the application is initialized. Suppose two beans are both available for injection in a certain module, and either

da)

Test two beans have the same bean name and the name is not resolvable.

Coverage

org.jboss.cdi.tck.tests.lookup.byname.ambiguous.broken
Test archive name: 7ec8972ecb7a63781c2b8e0fc5c26259adb4672
AmbiguousELNamesTest.testAmbiguousELNamesResolved()github
org.jboss.cdi.tck.tests.lookup.byname.broken.duplicity
Test archive name: 398e803373f7182ff0dc293d25c39e56a766b69d
DuplicitNameTest.testDuplicateNamedBeans()github
db)

Test the bean name of one bean is of the form x.y , where y is a valid bean name, and x is the bean name of the other bean.

Coverage

org.jboss.cdi.tck.tests.lookup.byname.broken.prefix
Test archive name: 7737414eb7401a9fbd30960bcc20b0cc12c455
ExpandedNamePrefix2Test.testDuplicateBeanNamePrefix()github
Test archive name: bb79d8afe124de5a750d4c24b8d3ca32792a4
ExpandedNamePrefixTest.testDuplicateBeanNamePrefix()github
Test archive name: e7e682ff2970c72e52fcc0a825a32cba302b4894
NamePrefixTest.testDuplicateBeanNamePrefix()github

#### Section 5.4 - Client proxies [client_proxies]

b)

A contextual reference to a bean with a normal scope, as defined in Section 6.3, “Normal scopes and pseudo-scopes”, is not a direct reference to a contextual instance of the bean (the object returned by Contextual.create()). Instead, the contextual reference is a client proxy object.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy
Test archive name: 20c0833c7d1ff36f7166beb3a4d473ac3108b
ClientProxyTest.testClientProxyUsedForNormalScope()github
a)

Client proxies are never required for a bean whose scope is a pseudo-scope such as @Dependent.

The following assertion is not made explicitly by the spec, however it is implied c)

Client proxies are serializable

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy
Test archive name: 20c0833c7d1ff36f7166beb3a4d473ac3108b
ClientProxyTest.testSimpleBeanClientProxyIsSerializable()github
d)

The container must guarantee that when any valid injected reference to a bean of normal scope is invoked, the invocation is always processed by the current instance of the injected bean.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy.incontainer
Test archive name: e6b6bfea53169365d582da6ac06eaaac4af6b932
ClientProxyTest.testInvocationIsProcessedOnCurrentInstance()github
e)

Client proxies may be shared between multiple injection points.

#### Section 5.4.1 - Client proxy invocation [client_proxy_invocation]

aa)

Every time a method of the bean is invoked upon a client proxy, the client proxy must obtain a contextual instance of the bean, as defined in Section 6.5.2, "Contextual instance of a bean", and invoke the method upon this instance.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy
Test archive name: 20c0833c7d1ff36f7166beb3a4d473ac3108b
ClientProxyTest.testClientProxyInvocation()github
ab)

If the scope is not active, as specified in Section 6.5.1, "The active context object for a scope", the client proxy rethrows ContextNotActiveException or IllegalStateException.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy
Test archive name: 20c0833c7d1ff36f7166beb3a4d473ac3108b
ClientProxyTest.testInactiveScope()github
b)

The behavior of all methods declared by java.lang.Object, except for toString(), is undefined for a client proxy.

#### Section 5.5 - Dependency injection [injection]

b)

The container is required to perform dependency injection whenever it creates a contextual instance of a managed bean.

Coverage

org.jboss.cdi.tck.tests.lookup.injection
Test archive name: 7666e237b452108821298e1be845739be0136c6c
InjectionTest.testInjectionOfNamedBean()github
d)

The container is required to perform dependency injection whenever it instantiates non-contextual instances of managed beans.

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoJSFManagedBean()github
g)

The container interacts with instances of beans or objects supporting injection by calling methods and getting and setting the field values.

Coverage

No tests exist for this assertion

h)

The object injected by the container may not be a direct reference to a contextual instance of the bean. Instead, it is an injectable reference, as defined by Section 6.5.5, "Injectable references".

Coverage

No tests exist for this assertion

#### Section 5.5.1 - Injection using the bean constructor [instantiation]

When the container instantiates a managed bean with a constructor annotated @Inject, the container calls this constructor, passing an injectable reference to each parameter. If there is no constructor annotated @Inject, the container calls the constructor with no parameters.

aa)

Test managed bean with a constructor annotated @Inject.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testInitializerAnnotatedConstructorUsedOverEmptyConstuctor()github
ba)

Test constructor with no parameters is used for a managed bean

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 2463bc51d14e8324f3b6b1876edba975d2746
SimpleBeanDefinitionTest.testEmptyConstructorUsed()github

#### Section 5.5.2 - Injection of fields and initializer methods [fields_initializer_methods]

When the container creates a new instance of a managed bean the container must: Initialize the values of all injected fields. The container sets the value of each injected field to an injectable reference. Call all initializer methods, passing an injectable reference to each parameter.

ac)

Test managed bean fields injected

Coverage

org.jboss.cdi.tck.tests.lookup.injection
Test archive name: 7666e237b452108821298e1be845739be0136c6c
InjectionTest.testInjectionOfNamedBean()github
ad)

Test managed bean initializer methods called

Coverage

org.jboss.cdi.tck.tests.implementation.initializer
Test archive name: bce0b51dd9a4695bb0c886ac8d2cc34ae72c3
InitializerMethodTest.testMultipleInitializerMethodsAreCalled()github

The container must ensure that: Initializer methods declared by a class X in the type hierarchy of the bean are called after all injected fields declared by X or by superclasses of X have been initialized. Any @PostConstruct callback declared by a class X in the type hierarchy of the bean is called after all initializer methods declared by X or by superclasses of X have been called, after all injected fields declared by X or by superclasses of X have been initialized.

bg)

Test managed bean initializer methods called after injected field of X

Coverage

org.jboss.cdi.tck.tests.lookup.injection
Test archive name: 7666e237b452108821298e1be845739be0136c6c
InjectionTest.testInjectionFieldsAndInitializerMethods()github
bh)

Test managed bean initializer methods called after injected field of superclass of X

Coverage

org.jboss.cdi.tck.tests.lookup.injection
Test archive name: 7666e237b452108821298e1be845739be0136c6c
InjectionTest.testInjectionFieldsAndInitializerMethods()github
bk)

Test managed bean @PostConstruct called after initializer of X

Coverage

org.jboss.cdi.tck.tests.lookup.injection
Test archive name: 7666e237b452108821298e1be845739be0136c6c
InjectionTest.testInjectionFieldsAndInitializerMethods()github
bl)

Test managed bean @PostConstruct called after initializer of superclass of X

Coverage

org.jboss.cdi.tck.tests.lookup.injection
Test archive name: 7666e237b452108821298e1be845739be0136c6c
InjectionTest.testInjectionFieldsAndInitializerMethods()github

#### Section 5.5.3 - Destruction of dependent objects [dependent_objects_destruction]

a)

When the container destroys an instance of a bean, the container destroys all dependent objects, as defined in Section 6.4.2, "Destruction of objects with scope @Dependent", after the @PreDestroy callback completes.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testDependentsDestroyedAfterPreDestroy()github

#### Section 5.5.4 - Invocation of producer or disposer methods [producer_or_disposer_methods_invocation]

a)

When the container calls a producer method, if the method is static, the container must invoke the method.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testStaticMethod()github
b)

When the container calls a disposer method, if the method is static, the container must invoke the method.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testBindingTypesAppliedToDisposalMethodParameters()github
c)

When the container calls a producer method, if the method is non-static the container must obtain a contextual instance of the bean which declares the method, as defined by Section 6.5.2 "Contextual instance of a bean", then invoke the method upon this instance.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.lifecycle
Test archive name: f2c03b21915f64328d7c83551748411224a5
ProducerMethodLifecycleTest.testProducerMethodFromSpecializedBeanUsed()github
org.jboss.cdi.tck.tests.inheritance.specialization.producer.method
Test archive name: 4f28f962f189d1fca7bd18b0f26373f4482b94
ProducerMethodSpecializationTest.testSpecializingProducerMethod()github
d)

When the container calls a disposer method, if the method is non-static the container must obtain a contextual instance of the bean which declares the method, as defined by Section 6.5.2 "Contextual instance of a bean", then invoke the method upon this instance.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentsDestroyedWhenDisposerMethodCompletes()github
e)

The container passes an injectable reference to each injected method parameter.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition
Test archive name: aa20da177a0303dabe3b50b0455aeb5f669f2f
ProducerMethodDefinitionTest.testBindingTypesAppliedToProducerMethodParameters()github
org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testDisposalMethodParametersGetInjected()github
f)

The container is also responsible for destroying dependent objects created during this invocation, as defined in Section 6.4.2, "Destruction of objects with scope @Dependent".

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentsDestroyedWhenProducerMethodCompletes()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentsDestroyedWhenDisposerMethodCompletes()github

#### Section 5.5.5 - Access to producer field values [producer_fields_access]

a)

When the container accesses the value of a producer field, if the producer field is static, the container must access the field value.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.lifecycle
Test archive name: 10bd1736b13bee917131a842e7c632016aa8bcc
ProducerFieldLifecycleTest.testProducerStaticFieldBean()github
b)

When the container accesses the value of a producer field, if the producer field is non-static, the container must obtain a contextual instance of the bean which declares the producer field, as defined by Section 6.5.2 "Contextual instance of a bean", then access the field value of this instance.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.lifecycle
Test archive name: 10bd1736b13bee917131a842e7c632016aa8bcc
ProducerFieldLifecycleTest.testProducerFieldBeanCreate()github

#### Section 5.5.6 - Invocation of observer methods [observers_method_invocation]

a)

When the container calls an observer method (defined in Section 10.4 "Observer methods"), if the observer method is static, the container must invoke the method.

Coverage

org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testStaticObserverMethodInvoked()github
baa)

When the container calls an observer method (defined in Section 10.4 "Observer methods"), if the observer method is non-static, the container must obtain a contextual instance of the bean according to Section 6.5.2 "Contextual instance of a bean". If this observer method is a conditional observer method, obtain the contextual instance that already exists, only if the scope of the bean that declares the observer method is currently active, without creating a new contextual instance. Finally, the container must invoke the observer method on the resulting instance, if any, as a business method invocation, as defined in Section 7.2 "Container invocations and interception".

Coverage

org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testObserverCalledOnSpecializedBeanOnly()github
org.jboss.cdi.tck.tests.event.observer.conditional
Test archive name: edc79bba85bf68897d5e2de322439c6524f5bc
ConditionalObserverTest.testConditionalObserver()github
Test archive name: edc79bba85bf68897d5e2de322439c6524f5bc
ConditionalObserverTest.testObserverMethodInvokedOnReturnedInstanceFromContext()github
c)

The container must pass the event object to the event parameter and an injectable instance to each injected method parameter.

Coverage

org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testObserverMethodParameterInjectionPoints()github
d)

The container is also responsible for destroying dependent objects created during this invocation, as defined in Section 6.4.2, "Destruction of objects with scope @Dependent".

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentsDestroyedWhenObserverMethodEvaluationCompletes()github

#### Section 5.5.7 - Injection point metadata [injection_point]

aa)

The getBean() method returns the Bean object representing the bean that defines the injection point.

Coverage

org.jboss.cdi.tck.tests.event.metadata.injectionpoint
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testGetBean()github
org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testGetBean()github
org.jboss.cdi.tck.tests.lookup.injectionpoint.non.contextual
Test archive name: c7cdd99f296b23ee7c8724c2595b5828a3f7f66d
NonContextualInjectionPointTest.testContextualEjbInjectionPointGetBean()github
aaa)

If the injection point does not belong to a bean, getBean() returns a null value.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.non.contextual
Test archive name: c7cdd99f296b23ee7c8724c2595b5828a3f7f66d
NonContextualInjectionPointTest.testNonContextualEjbInjectionPointGetBean()github
aab)

If the injection point represents a dynamically obtained instance, the getBean() method should return the Bean object representing the bean that defines the Instance injection point.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.dynamic
Test archive name: cbb853c6fcab987e59efad838b508035d5b0aa
DynamicInjectionPointTest.testInjectionPointGetBean()github
ba)

The getType() method returns the required type of the injection point.

Coverage

org.jboss.cdi.tck.tests.event.metadata.injectionpoint
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testGetType()github
org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testGetType()github
baa)

If the injection point represents a dynamically obtained instance, the getType() method returns the required type (as defined by Instance.select()).

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.dynamic
Test archive name: cbb853c6fcab987e59efad838b508035d5b0aa
DynamicInjectionPointTest.testInjectionPointGetType()github
bc)

The getQualifiers() method returns the required qualifiers of the injection point.

Coverage

org.jboss.cdi.tck.tests.event.metadata.injectionpoint
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testGetQualifiers()github
org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testGetBindingTypes()github
bca)

If the injection point represents a dynamically obtained instance, the getQualifiers() method returns required qualifiers of the injection point including any additional required qualifers (as defined by Instance.select()).

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.dynamic
Test archive name: cbb853c6fcab987e59efad838b508035d5b0aa
DynamicInjectionPointTest.testInjectionPointGetQualifiers()github
ca)

The getMember() method returns the Field object in the case of field injection.

Coverage

org.jboss.cdi.tck.tests.event.metadata.injectionpoint
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testGetMember()github
org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testGetMemberField()github
caa)

If the injection point represents a dynamically obtained instance, the getMember() method returns the Field object representing the field that defines the Instance injection point in the case of field injection.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.dynamic
Test archive name: cbb853c6fcab987e59efad838b508035d5b0aa
DynamicInjectionPointTest.testInjectionPointGetMember()github
cb)

The getMember() method returns the Method object in the case of method parameter injection.

Coverage

org.jboss.cdi.tck.tests.event.metadata.injectionpoint
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testGetMember()github
org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testGetMemberMethod()github
cba)

If the injection point represents a dynamically obtained instance, the getMember() method returns the Method object representing the method that defines the Instance injection point in the case of method parameter injection.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.dynamic
Test archive name: cbb853c6fcab987e59efad838b508035d5b0aa
DynamicInjectionPointTest.testInjectionPointGetMember()github
cc)

The getMember() method returns the Constructor object in the case of constructor parameter injection.

Coverage

org.jboss.cdi.tck.tests.event.metadata.injectionpoint
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testGetMember()github
org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testGetMemberConstructor()github
cca)

If the injection point represents a dynamically obtained instance, the getMember() method returns the Constructor object representing the constructor that defines the Instance injection point in the case of constructor parameter injection.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.dynamic
Test archive name: cbb853c6fcab987e59efad838b508035d5b0aa
DynamicInjectionPointTest.testInjectionPointGetMember()github
daa)

The getAnnotated() method returns an instance of jakarta.enterprise.inject.spi.AnnotatedField or jakarta.enterprise.inject.spi.AnnotatedParameter, depending upon whether the injection point is an injected field or a constructor/method parameter.

Coverage

org.jboss.cdi.tck.tests.event.metadata.injectionpoint
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testGetAnnotatedType()github
org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testGetAnnotatedField()github
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testGetAnnotatedParameter()github
dab)

If the injection point represents a dynamically obtained instance, then the getAnnotated() method returns an instance of jakarta.enterprise.inject.spi.AnnotatedField or jakarta.enterprise.inject.spi.AnnotatedParameter representing the Instance injection point, depending upon whether the injection point is an injected field or a constructor/method parameter.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.dynamic
Test archive name: cbb853c6fcab987e59efad838b508035d5b0aa
DynamicInjectionPointTest.testInjectionPointGetAnnotated()github
dba)

The isDelegate() method returns true if the injection point is a decorator delegate injection point, and false otherwise.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testIsDelegate()github
dbb)

If the injection point represents a dynamically obtained instance then isDelegate() returns false.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.dynamic
Test archive name: cbb853c6fcab987e59efad838b508035d5b0aa
DynamicInjectionPointTest.testInjectionPointIsDelegate()github
dca)

The isTransient() method returns true if the injection point is a transient field, and false otherwise.

Coverage

org.jboss.cdi.tck.tests.event.metadata.injectionpoint
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testIsTransient()github
org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testIsTransient()github
dcb)

If the injection point represents a dynamically obtained instance then the isTransient() method returns true if the Instance injection point is a transient field, and false otherwise.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.dynamic
Test archive name: cbb853c6fcab987e59efad838b508035d5b0aa
DynamicInjectionPointTest.testInjectionPointIsTransient()github
ea)

The container must provide a bean with scope @Dependent, bean type InjectionPoint and qualifier @Default, allowing dependent objects, as defined in Section 6.4.1, "Dependent objects", to obtain information about the injection point to which they belong.

Coverage

org.jboss.cdi.tck.tests.extensions.afterBeanDiscovery
Test archive name: 69c08051d15243f4def07d9335e6f77bde2633d
AfterBeanDiscoveryTest.testCustomDependentBeanInjectionPointIsAvailable()github
org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testDependentScope()github
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testApiTypeInjectionPoint()github
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testCurrentBinding()github
eb)

The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testPassivationCapability()github
f)

If a bean that declares any scope other than @Dependent has an injection point of type InjectionPoint and qualifier @Default, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.broken.normal.scope
Test archive name: 9cac3d92459c522e17531aa197daf7a02d1e
NormalScopedBeanWithInjectionPoint.testRequestScopedBeanWithInjectionPoint()github
g)

If a disposer method has an injection point of type InjectionPoint and qualifier @Default, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.broken.disposer
Test archive name: 555e8b9e5cf22b2dfa3696cf4d6fce46c8b0843c
DisposerInjectionPointMetadataTest.testDisposerWithInjectionPointMetadata()github
h)

If a class supporting injection that is not a bean has an injection point of type InjectionPoint and qualifier @Default, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.broken.not.bean
Test archive name: ced4f4df95a18dc329c1f978d6475b751756d
InjectionPointTest.testDefinitionErrorDetected()github

#### Section 5.5.8 - Bean metadata [bean_metadata]

The container must provide beans allowing a bean instance to obtain a Bean, Interceptor or Decorator instance containing its metadata.

a)

Bean with scope @Dependent, qualifier @Default and type Bean can be injected into any bean instance.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata
Test archive name: 6130177e493f041567bb85f87d51eccbe4d917
BuiltinMetadataBeanTest.testBeanMetadata()github
Test archive name: 6130177e493f041567bb85f87d51eccbe4d917
BuiltinMetadataBeanTest.testProducerMethodMetadata()github
b)

Bean with scope @Dependent, qualifier @Default and type Interceptor can be injected into any interceptor instance.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.session
Test archive name: 8efed96f5e92e09dd141bb75518415c6e32b054
BuiltinMetadataSessionBeanTest.testInterceptorMetadata()github
org.jboss.cdi.tck.tests.implementation.builtin.metadata
Test archive name: 6130177e493f041567bb85f87d51eccbe4d917
BuiltinMetadataBeanTest.testInterceptorMetadata()github
c)

Bean with scope @Dependent, qualifier @Default and type Decorator which can be injected into any decorator instance.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.session
Test archive name: 8efed96f5e92e09dd141bb75518415c6e32b054
BuiltinMetadataSessionBeanTest.testDecoratorMetadata()github
org.jboss.cdi.tck.tests.implementation.builtin.metadata
Test archive name: 6130177e493f041567bb85f87d51eccbe4d917
BuiltinMetadataBeanTest.testDecoratorMetadata()github

Additionally, the container must provide beans allowing interceptors and decorators to obtain information about the beans they intercept and decorate.

d)

Bean with scope @Dependent, qualifier @Intercepted and type Bean which can be injected into any interceptor instance.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.session
Test archive name: 8efed96f5e92e09dd141bb75518415c6e32b054
BuiltinMetadataSessionBeanTest.testInterceptorMetadata()github
org.jboss.cdi.tck.tests.implementation.builtin.metadata
Test archive name: 6130177e493f041567bb85f87d51eccbe4d917
BuiltinMetadataBeanTest.testInterceptorMetadata()github
e)

Bean with scope @Dependent, qualifier @Decorated and type Bean can be injected into any decorator instance.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.session
Test archive name: 8efed96f5e92e09dd141bb75518415c6e32b054
BuiltinMetadataSessionBeanTest.testDecoratorMetadata()github
org.jboss.cdi.tck.tests.implementation.builtin.metadata
Test archive name: 6130177e493f041567bb85f87d51eccbe4d917
BuiltinMetadataBeanTest.testDecoratorMetadata()github
f)

These beans are passivation capable dependencies, as defined in Section 6.6.2, "Passivation capable dependencies".

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.session
Test archive name: 8efed96f5e92e09dd141bb75518415c6e32b054
BuiltinMetadataSessionBeanTest.testInterceptorMetadata()github
Test archive name: 8efed96f5e92e09dd141bb75518415c6e32b054
BuiltinMetadataSessionBeanTest.testDecoratorMetadata()github
org.jboss.cdi.tck.tests.implementation.builtin.metadata
Test archive name: 6130177e493f041567bb85f87d51eccbe4d917
BuiltinMetadataBeanTest.testBeanMetadata()github
Test archive name: 6130177e493f041567bb85f87d51eccbe4d917
BuiltinMetadataBeanTest.testProducerMethodMetadata()github
Test archive name: 6130177e493f041567bb85f87d51eccbe4d917
BuiltinMetadataBeanTest.testInterceptorMetadata()github
Test archive name: 6130177e493f041567bb85f87d51eccbe4d917
BuiltinMetadataBeanTest.testDecoratorMetadata()github
h)

If an Interceptor instance is injected into a bean instance other than an interceptor instance, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.broken.injection
Test archive name: fd333421fcfe1bc54f5229bcb667e38c13969e8
BuiltinInterceptorInjectionTest.testDeploymentFails()github
i)

If a Decorator instance is injected into a bean instance other than a decorator instance, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.broken.injection
Test archive name: d7cbecfd3073f24279d45d9633f33dd1d8da102f
BuiltinDecoratorInjectionTest.testDeploymentFails()github
r)

If a Bean instance with qualifier @Intercepted is injected into a bean instance other than an interceptor instance, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.broken.injection.intercepted
Test archive name: 288d2aefcfe77c6daf091cbb0a95ee62778c8b
InterceptedBeanInitializerInjectionTest.testDeploymentFails()github
Test archive name: b79fe3f8114198851dd21bf38183a79d5f596d3
InterceptedBeanFieldInjectionTest.testDeploymentFails()github
Test archive name: 795111b52d6efa33aaf9afd1eb30b1ead2ff9
InterceptedBeanConstructorInjectionTest.testDeploymentFails()github
s)

If a Bean instance with qualifier @Decorated is injected into a bean instance other than an interceptor instance, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.broken.injection.decorated
Test archive name: d222664e5bd5877c9532479c9833955f9e990
DecoratedBeanInitializerInjectionTest.testDeploymentFails()github
Test archive name: a5a6e35a3363affcefbbe7952deb43f57d3d5
DecoratedBeanConstructorInjectionTest.testDeploymentFails()github
Test archive name: d225640b43547525955d89da025fef53f8d8454
DecoratedBeanFieldInjectionTest.testDeploymentFails()github

The injection of bean metadata is restricted.

j)

If the injection point is a field, an initializer method parameter or a bean constructor, with qualifier @Default and type parameter of the injected Bean is not the same as the type declaring the injection point, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.broken.typeparam
Test archive name: 29a6046f827aa549844d4137d3e2fa6ae6d18
BeanTypeParamInitializerTest.testDeploymentFails()github
Test archive name: 3f3021fa28aaae50598475619ce9f9c22d5ea99d
BeanTypeParamConstructorTest.testDeploymentFails()github
Test archive name: a53ed499102584f99ef8bf34fe4b5f416781
BeanTypeParamFieldTest.testDeploymentFails()github
k)

If the injection point is a field, an initializer method parameter or a bean constructor, with qualifier @Default and type parameter of the injected Interceptor is not the same as the type declaring the injection point, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.broken.typeparam.interceptor
Test archive name: e054bdb689d2e46e2833dd057bbb34eddfad1b7
InterceptorTypeParamFieldTest.testDeploymentFails()github
Test archive name: 29d3ae8e2f8bec4250b693fc566456b2d144e56a
InterceptorTypeParamConstructorTest.testDeploymentFails()github
Test archive name: 20489511ba19cf7c5450e97e57174a374acd1a3
InterceptorTypeParamInitializerTest.testDeploymentFails()github
l)

If the injection point is a field, an initializer method parameter or a bean constructor, with qualifier @Default and type parameter of the injected Decorator is not the same as the type declaring the injection point, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.broken.typeparam.decorator
Test archive name: 5daccb14c9ec0f5a84242c9b7d75c38de385e7b
DecoratorTypeParamFieldTest.testDeploymentFails()github
Test archive name: 77f79b9fd91b86c8c5d9119d87ac5bf893c3db
DecoratorTypeParamInitializerTest.testDeploymentFails()github
Test archive name: 8fb35b5e1dc53d6cc72fe42dc3c186e81484a6
DecoratorTypeParamConstructorTest.testDeploymentFails()github
m)

If the injection point is a field, an initializer method parameter or a bean constructor of an interceptor, with qualifier @Intercepted and the type parameter of the injected Bean is not an unbounded wildcard, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.broken.typeparam.interceptor
Test archive name: bed881dc834d28e31b7a3a544a6ebb3af39c1459
InterceptedBeanTypeParamFieldTest.testDeploymentFails()github
Test archive name: 9693c8a5ea3184fe3a60c8d32bcbb5dd5b9cefc3
InterceptedBeanTypeParamConstructorTest.testDeploymentFails()github
Test archive name: 12fd11c9ed3406195daec051a016e136b7bca2
InterceptedBeanTypeParamInitializerTest.testDeploymentFails()github
n)

If he injection point is a field, an initializer method parameter or a bean constructor of a decorator, with qualifier @Decorated and the type parameter of the injected Bean is not the same as the delegate type, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.broken.typeparam.decorator
Test archive name: 7b38bbf41225bdd1231e29fd78c8b311d18aef87
DecoratoredBeanTypeParamInitializerTest.testDeploymentFails()github
Test archive name: 2ef75bcd694868d71565ceb30277c45c162cb6
DecoratoredBeanTypeParamFieldTest.testDeploymentFails()github
Test archive name: 2c3b132be0f293d99a8daf1f642c1fecfbfb39ae
DecoratoredBeanTypeParamConstructorTest.testDeploymentFails()github
o)

If the injection point is a producer method parameter and the type parameter of the injected Bean is not the same as the producer method return type, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.broken.typeparam
Test archive name: 9296f7571a6274cb38b5e515fcef438c99d6
BeanTypeParamProducerTest.testDeploymentFails()github
p)

If the injection point is a disposer method parameter then no Bean instance can be injected, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.broken.typeparam
Test archive name: a9797cfea47c229d653df899a74eebfbe9a88e3
BeanTypeParamDisposerTest.testDeploymentFails()github

#### Section 5.6 - Programmatic lookup [programmatic_lookup]

aa)

An instance of the jakarta.enterprise.inject.Instance interface may be injected.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testObtainsInjectsInstanceOfInstance()github
ba)

The method jakarta.enterprise.inject.Instance.get() returns a contextual reference.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testGetMethod()github
ca)

Any combination of qualifiers may be specified at the injection point.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testGetMethod()github
da)

The @Any qualifier may be used to allow the application to specify qualifiers dynamically.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testIsAmbiguous()github
e)

The @New qualifier may be used, allowing the application to obtain a @New qualified bean, as defined in Section 3.12, "@New qualified beans".

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testNewBean()github

#### Section 5.6.1 - The Instance interface [dynamic_lookup]

aa)

The Instance interface provides a method for obtaining instances of beans with a specified combination of required type and qualifiers, and inherits the ability to iterate beans with that combination of required type and qualifiers from java.lang.Iterable.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testGetMethod()github
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testIteratorMethod()github
ab)

For an injected Instance, the required type is the type parameter specified at the injection point, and the required qualifiers are the qualifiers specified at the injection point.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testGetMethod()github
ba)

The select() method returns a child Instance for a given required type and additional required qualifiers. If no required type is given, the required type is the same as the parent.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testIteratorMethod()github
bb)

Rules specified at "The default qualifier at injection points" are applied before performing typesafe resolution.

c)

If an injection point of raw type Instance is defined, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic.broken.raw
Test archive name: 4e068d2d098f86683b93ef9c355b18b4fde221c
RawInstanceConstructorInjectionTest.testDefinitionError()github
Test archive name: 5bdc97df93627625fe7545c1dfe78be71e8702e
RawInstanceProcessInjectionPointTest.testDefinitionError()github
Test archive name: 465cc0f02056fede534b8b6eeef8ec7b3b36e7
RawInstanceCustomBeanTest.testDefinitionError()github
Test archive name: d2a3e0aaebb2d2af9c47173f34db02ccd9da8d1
RawInstanceDisposerInjectionTest.testDefinitionError()github
Test archive name: 8a6ab7387b33ae47ffbff389d5460f3afc59f85
RawInstanceInitMethodInjectionTest.testDefinitionError()github
Test archive name: 42657dafd58d5430e4916305e4dc669a85a687
RawInstanceObserverInjectionTest.testDefinitionError()github
Test archive name: cd2195c0ea21b63131a5b8c53aaa8a7e752a857
RawInstanceProducerMethodInjectionTest.testDefinitionError()github
Test archive name: 4a1a92e5f32632c52a78bd3c119b7f2944a3a0
RawInstanceFieldInjectionTest.testDefinitionError()github
da)

If two instances of the same non repeating qualifier type are passed to select(), an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testDuplicateBindingsThrowsException()github
e)

If an instance of an annotation that is not a qualifier type is passed to select(), an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testNonBindingThrowsException()github
fa)

The get() method must identify a bean that has the required type and required qualifiers and is eligible for injection into the class into which the parent Instance was injected, according to the rules of typesafe resolution, as defined in Section 5.2, "Typesafe resolution", resolving ambiguities according to Section 5.2.1, "Unsatisfied and ambiguous dependencies".

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testGetMethod()github
fba)

If typesafe resolution results in an unsatisfied dependency, throw an UnsatisfiedResolutionException.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testUnsatisfiedDependencyThrowsException()github
fbb)

If typesafe resolution results in an unresolvable ambiguous dependency, throw an AmbiguousResolutionException.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testAmbiguousDependencyThrowsException()github
fc)

Otherwise, obtain a contextual reference for the bean and the required type, as defined in Section 6.5.3, "Contextual reference for a bean".

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testGetMethod()github
ia)

The iterator() method must identify the set of beans that have the required type and required qualifiers and are eligible for injection into the class into which the parent Instance was injected, according to the rules of typesafe resolution, as defined in Section 5.2, "Typesafe resolution".

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testIteratorMethod()github
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testAlternatives()github
ib)

The iterator() method must return an Iterator, that iterates over the set of contextual references for the resulting beans and required type, as defined in Section 6.5.3, "Contextual reference for a bean".

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testIteratorMethod()github
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testAlternatives()github
ja)

The stream() method must identify the set of beans that have the required type and required qualifiers and are eligible for injection into the class into which the parent Instance was injected, according to the rules of typesafe resolution, as defined in Section 5.2.1, "Performing typesafe resolution", resolving ambiguities according to Section 5.2.2 "Unsatisfied and ambiguous dependencies".

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testStream()github
jb)

The stream() method must return a Stream, that can stream over the set of contextual references for the resulting beans and required type, as defined in Section 6.5.3, "Contextual reference for a bean".

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testStream()github

The methods isUnsatisfied(), isAmbiguous() and isResolvable() must:

la)

Identify the set of beans that have the required type and required qualifiers and are eligible for injection into the class into which the parent Instance was injected, according to the rules of typesafe resolution, as defined in Performing typesafe resolution, resolving ambiguities according to Unsatisfied and ambiguous dependencies.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testAlternatives()github
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testIsUnsatisfied()github
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testIsAmbiguous()github
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testStream()github
l)

The method isUnsatisfied() returns true if there is no bean found, or false otherwise.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testIsUnsatisfied()github
m)

The method isAmbiguous() returns true if there is more than one bean found, or false otherwise.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testAlternatives()github
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testIsAmbiguous()github
ma)

The method isResolvable() returns true if there is exactly one bean found, or false otherwise.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testNewBean()github
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testStream()github

The method destroy() instructs the container to destroy the instance. The bean instance passed to destroy() should be a dependent scoped bean instance, or a client proxy for a normal scoped bean. Applications are encouraged to always call destroy() when they no longer require an instance obtained from Instance.

n)

Test dependent scoped bean instance passed to destroy().

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic.destroy.dependent
Test archive name: 1d9c41f19331db638ef6408123fcdab3b0cda6
DestroyingDependentInstanceTest.testDestroyingDependentInstances()github
Test archive name: 1d9c41f19331db638ef6408123fcdab3b0cda6
DestroyingDependentInstanceTest.testDestroyingInterceptedDependentBean()github
o)

Test client proxy passed to destroy().

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic.destroy.normal
Test archive name: e624ed2a324c79ffae3df5292e45e2ecd1b35ad
DestroyingNormalScopedInstanceTest.testApplicationScopedComponent()github
Test archive name: e624ed2a324c79ffae3df5292e45e2ecd1b35ad
DestroyingNormalScopedInstanceTest.testRequestScopedComponent()github
Test archive name: e624ed2a324c79ffae3df5292e45e2ecd1b35ad
DestroyingNormalScopedInstanceTest.testCustomScopedComponent()github
Test archive name: e624ed2a324c79ffae3df5292e45e2ecd1b35ad
DestroyingNormalScopedInstanceTest.testContextDestroyCalled()github
Test archive name: e624ed2a324c79ffae3df5292e45e2ecd1b35ad
DestroyingNormalScopedInstanceTest.testNullParameter()github
The following assertion is not made explicitly by the spec, however it is implied p)

Test UnsupportedOperationException is thrown when if the active context object for the scope type of the bean does not support destroying bean instances.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic.destroy.normal
Test archive name: e624ed2a324c79ffae3df5292e45e2ecd1b35ad
DestroyingNormalScopedInstanceTest.testUnsupportedOperationExceptionThrownIfUnderlyingContextNotAlterable()github

#### Section 5.6.2 - The built-in Instance [builtin_instance]

a)

The container must provide a built-in bean that is eligible for injection to any injection point with required type Instance <X> or Provider<>, for any legal bean type X.

b)

The container must provide a built-in bean that has any qualifiers.

d)

The container must provide a built-in bean with scope @Dependent.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic.builtin
Test archive name: 429c50e58c9751403f8160c0bb6a479bd593d645
BuiltinInstanceTest.testScopeOfBuiltinInstance()github
e)

The container must provide a built-in bean with no bean name.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic.builtin
Test archive name: 429c50e58c9751403f8160c0bb6a479bd593d645
BuiltinInstanceTest.testNameOfBuiltinInstance()github
f)

The container must provide a built-in bean with an implementation provided automatically by the container.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic.builtin
Test archive name: 429c50e58c9751403f8160c0bb6a479bd593d645
BuiltinInstanceTest.testInstanceProvidedForEveryLegalBeanType()github
g)

The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic.builtin
Test archive name: 429c50e58c9751403f8160c0bb6a479bd593d645
BuiltinInstanceTest.testInstanceIsPassivationCapable()github

#### Section 5.6.3 - Using AnnotationLiteral and TypeLiteral [annotationliteral_typeliteral]

The following assertion is not made explicitly by the spec, however it is implied a)

Test jakarta.enterprise.util.AnnotationLiteral when using Instance.select() to specify qualifiers.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testIteratorMethod()github
The following assertion is not made explicitly by the spec, however it is implied b)

Test jakarta.enterprise.util.TypeLiteral when specifying a parameterized type with actual type parameters when calling Instance.select().

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.testNewBean()github

#### Section 6.1 - The Contextual interface [contextual]

aa)

If an exception occurs while creating an instance, the exception is rethrown by the create() method. If the exception is a checked exception, it must be wrapped and rethrown as an (unchecked) CreationException.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.lifecycle
Test archive name: f2c03b21915f64328d7c83551748411224a5
ProducerMethodLifecycleTest.testCreateRethrowsUncheckedException()github
Test archive name: f2c03b21915f64328d7c83551748411224a5
ProducerMethodLifecycleTest.testCreateWrapsCheckedExceptionAndRethrows()github
org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testCreationExceptionWrapsCheckedExceptionThrownFromCreate()github
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testUncheckedExceptionThrownFromCreateNotWrapped()github
ab)

If an exception occurs while destroying an instance, the exception must be caught by the destroy() method.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testContextualDestroyCatchesException()github
ac)

If the application invokes a contextual instance after it has been destroyed, the behavior is undefined.

a)

The container and portable extensions may define implementations of the Contextual interface that do not extend Bean, but it is not recommended that applications directly implement Contextual.

#### Section 6.1.1 - The CreationalContext interface [creational_context]

ca)

The interface jakarta.enterprise.context.spi.CreationalContext provides operations that are used by the Contextual implementation during instance creation and destruction.

d)

push() registers an incompletely initialized contextual instance with the container. A contextual instance is considered incompletely initialized until it is returned by the create() method.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testCreateReturnsSameBeanPushed()github
e)

release() destroys all dependent objects, as defined in Section 6.4.1, "Dependent objects", of the instance which is being destroyed, by passing each dependent object to the destroy() method of its Contextual object.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testCallingCreationalContextReleaseDestroysDependents()github
f)

The implementation of Contextual is not required to call push(). However, for certain bean scopes, invocation of push() between instantiation and injection helps the container minimize the use of client proxy objects (which would otherwise be required to allow circular dependencies).

g)

If Contextual.create() calls push(), it must also return the instance passed to push().

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testCreateReturnsSameBeanPushed()github
h)

Contextual.create() should use the given CreationalContext when obtaining contextual references to inject, as defined in Section 6.5.3, "Contextual reference for a bean", in order to ensure that any dependent objects are associated with the contextual instance that is being created.

i)

Contextual.destroy() should call release() to allow the container to destroy dependent objects of the contextual instance.

#### Section 6.2 - The Context interface [context]

aa)

The jakarta.enterprise.context.spi.Context interface provides an operation for obtaining contextual instances with a particular scope of any contextual type.

ab)

The method getScope() returns the scope type of the context object.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextScopeType()github
ha)

When a context object is active the isActive() method returns true. Otherwise, we say that the context object is inactive and the isActive() method returns false.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextIsActive()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextIsActiveWhenInvokingProducerMethod()github
j)

The Context.get() method may either return an existing instance of the given contextual type, or if no CreationalContext is given, return a null value, or if a CreationalContext is given, create a new instance of the given contextual type by calling Contextual.create() and return the new instance.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: 4f9124f2a066e879f0d77360cefd861c55bd95f
NormalContextTest.testGetReturnsExistingInstance()github
k)

The Context.get() method may either return an existing instance of the given contextual type, or if no CreationalContext is given, return a null value, or if a CreationalContext is given, create a new instance of the given contextual type by calling Contextual.create() and return the new instance.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: 6e1e2f47d7a3372af5526a8cd726967223dd733
GetWithNoCreationalContextTest.testGetWithoutCreationalContextReturnsNull()github
l)

The Context.get() method may either return an existing instance of the given contextual type, or if no CreationalContext is given, return a null value, or if a CreationalContext is given, create a new instance of the given contextual type by calling Contextual.create() and return the new instance.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: 4f9124f2a066e879f0d77360cefd861c55bd95f
NormalContextTest.testGetReturnsExistingInstance()github
org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testContextCreatesNewInstanceForInjection()github
org.jboss.cdi.tck.tests.context
Test archive name: 4f9124f2a066e879f0d77360cefd861c55bd95f
NormalContextTest.testGetWithCreationalContextReturnsNewInstance()github
m)

If the context object is inactive, the get() method must throw a ContextNotActiveException.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: a69fd9f5843fa94261c55b6bb9a8a5fa326a4f
GetOnInactiveContextTest.testInvokingGetOnInactiveContextFails()github
na)

The get() method may not return a null value unless no CreationalContext is given, or Contextual.create() returns a null value.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: 6e1e2f47d7a3372af5526a8cd726967223dd733
GetWithNoCreationalContextTest.testGetWithoutCreationalContextReturnsNull()github
nb)

The get() method may not return a null value unless no CreationalContext is given, or Contextual.create() returns a null value.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: 4f9124f2a066e879f0d77360cefd861c55bd95f
NormalContextTest.testGetMayNotReturnNullUnlessContextualCreateReturnsNull()github
o)

The get() method may not create a new instance of the given contextual type unless a CreationalContext is given.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: 6d46f111deebb61488e9e67ac9827dc46fe621
GetFromContextualTest.testGetMayNotCreateNewInstanceUnlessCreationalContextGiven()github
s)

When the container calls get() for a context that is associated with a passivating scope it must ensure that the given instance of Contextual and the instance of CreationalContext, if given, are serializable.

Coverage

org.jboss.cdi.tck.tests.context.passivating.custom
Test archive name: 4ae8766ee647c2f5e16c6a2c4588988276412910
CustomPassivatingScopeCalledWithSerializableParametersTest.testWithImplicitBean()github
Test archive name: 4ae8766ee647c2f5e16c6a2c4588988276412910
CustomPassivatingScopeCalledWithSerializableParametersTest.testWithExtensionProvidedBean()github
t)

The destroy() method destroys an existing contextual instance, removing it from the context instance.

Coverage

org.jboss.cdi.tck.tests.context.alterable
Test archive name: 418e7ed04fac80d51e0a529782a1344485fc67a
AlterableContextTest.testApplicationScopedComponent()github
Test archive name: 418e7ed04fac80d51e0a529782a1344485fc67a
AlterableContextTest.testRequestScopedComponent()github
Test archive name: 418e7ed04fac80d51e0a529782a1344485fc67a
AlterableContextTest.testCustomScopedComponent()github
Test archive name: 418e7ed04fac80d51e0a529782a1344485fc67a
AlterableContextTest.testNothingHappensIfNoInstanceToDestroy()github
p)

The context object is responsible for destroying any contextual instance it creates by passing the instance to the destroy() method of the Contextual object representing the contextual type.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: e7e995f3bca4a7f16e354b93e96f81a9420afe
ContextDestroysBeansTest.testContextDestroysBeansWhenDestroyed()github
q)

A destroyed instance must not subsequently be returned by the get() method.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: d67bcedb76556c373b327fe17d9e7e6f6b28dd2
DestroyedInstanceReturnedByGetTest.testDestroyedInstanceMustNotBeReturnedByGet()github
r)

The context object must pass the same instance of CreationalContext to Contextual.destroy() that it passed to Contextual.create() when it created the instance.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: f2ebd34a276567104a1b50fee58cf25d3a46
DestroyForSameCreationalContextTest.testDestroyForSameCreationalContextOnly()github
Test archive name: cd837d3534364ec579e53b944da354cdfe599d7
DestroyForSameCreationalContext2Test.testDestroyForSameCreationalContextOnly()github

#### Section 6.3 - Normal scopes and pseudo-scopes [normal_scope]

a)

There may be no more than one mapped instance of a context object per contextual type per thread

b)

A context may be associated with one or more threads

c)

The get() operation of the Context object for an active normal scope returns the current instance of the given contextual type.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: 4f9124f2a066e879f0d77360cefd861c55bd95f
NormalContextTest.testGetReturnsExistingInstance()github
d)

When a context is destroyed, all mapped instances belonging to that context are destroyed by passing them to the Contextual.destroy() method.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: e7e995f3bca4a7f16e354b93e96f81a9420afe
ContextDestroysBeansTest.testContextDestroysBeansWhenDestroyed()github
e)

Contexts with normal scopes must obey the following rule: Suppose beans A, B and Z all have normal scopes. Suppose A has an injection point x, and B has an injection point y. Suppose further that both x and y resolve to bean Z according to the typesafe resolution algorithm. If a is the current instance of A, and b is the current instance of B, then both a.x and b.y refer to the same instance of Z. This instance is the current instance of Z.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: 4f9124f2a066e879f0d77360cefd861c55bd95f
NormalContextTest.testSameNormalScopeBeanInjectedEverywhere()github
ea)

All normal scopes must be explicitly declared @NormalScope, to indicate to the container that a client proxy is required.

fa)

All pseudo-scopes must be explicitly declared @Scope, to indicate to the container that no client proxy is required.

g)

All scopes defined by this specification, except for the @Dependent pseudo-scope, are normal scopes

#### Section 6.4 - Dependent pseudo-scope [dependent_context]

a)

When a bean is declared to have @Dependent scope, no injected instance of the bean is ever shared between multiple injection points.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testInstanceNotSharedBetweenInjectionPoints()github
b)

When a bean is declared to have @Dependent scope, any instance of the bean injected into an object that is being created by the container is bound to the lifecycle of the newly created object.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDestroyingSimpleParentDestroysDependents()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDestroyingManagedParentDestroysDependentsOfSameBean()github

When a bean is declared to have @Dependent scope, any instance of the bean that receives a producer method, producer field, disposer method or observer method invocation exists to service that invocation only

da)

Test with a producer method.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testInstanceUsedForProducerMethodNotShared()github
db)

Test with a producer field.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testInstanceUsedForProducerFieldNotShared()github
dc)

Test with a disposer method.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testInstanceUsedForDisposalMethodNotShared()github
dd)

Test with an observer method.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testInstanceUsedForObserverMethodNotShared()github
dg)

When a bean is declared to have @Dependent scope, any instance of the bean injected into method parameters of a disposer method or observer method exists to service the method invocation only (except for observer methods of container lifecycle events).

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testInstanceUsedForDisposalMethodNotShared()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testInstanceUsedForObserverMethodNotShared()github
e)

Every invocation of the get() operation of the Context object for the @Dependent scope with a CreationalContext returns a new instance of the given bean.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextGetWithCreationalContextReturnsNewInstance()github
f)

Every invocation of the get() operation of the Context object for the @Dependent scope with no CreationalContext returns a null value.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextGetWithCreateFalseReturnsNull()github
g)

The @Dependent scope is always active.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextIsActive()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextIsActiveWhenInvokingProducerMethod()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextIsActiveWhenInvokingDisposalMethod()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextIsActiveWhenInvokingProducerField()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextIsActiveWhenCreatingObserverMethodInstance()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextIsActiveWhenEvaluatingElExpression()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextIsActiveDuringBeanCreation()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextIsActiveDuringInjection()github

#### Section 6.4.1 - Dependent objects [dependent_objects]

Instances of interceptors or decorators with scope @Dependent are dependent objects of the bean instance they decorate.

aa)

Test with a @Dependent-scoped interceptor.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentScopedInterceptorsAreDependentObjectsOfBean()github
ab)

Test with a @Dependent-scoped decorator.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentScopedDecoratorsAreDependentObjectsOfBean()github

An instance of a bean with scope @Dependent injected into a field, bean constructor or initializer method is a dependent object of the bean into which it was injected.

ga)

Test with @Dependent-scoped bean injected into field.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testInstanceNotSharedBetweenInjectionPoints()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentBeanIsDependentObjectOfBeanInjectedInto()github
gb)

Test with @Dependent-scoped bean injected into bean constructor.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentBeanIsDependentObjectOfBeanInjectedInto()github
gc)

Test with @Dependent-scoped bean injected into initializer method.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentBeanIsDependentObjectOfBeanInjectedInto()github
h)

An instance of a bean with scope @Dependent injected into a producer method is a dependent object of the producer method bean instance that is being produced.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentsDestroyedWhenProducerMethodCompletes()github
i)

An instance of a bean with scope @Dependent obtained by direct invocation of an Instance is a dependent object of the instance of Instance.

Coverage

org.jboss.cdi.tck.tests.context.dependent.instance
Test archive name: 79bbcc8ffba3f24e7c69c95f7f0918ce1fa234d
BuiltinInstanceDependentObjectTest.testInstanceDependentObject()github

#### Section 6.4.2 - Destruction of objects with scope @Dependent [dependent_destruction]

The container must ensure that all dependent objects of a non-contextual instance of a bean are destroyed when the instance is destroyed by the container.

aaaa)

Test with a managed bean.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDestroyingSimpleParentDestroysDependents()github
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDestroyingManagedParentDestroysDependentsOfSameBean()github

The container must ensure that all @Dependent scoped contextual instances injected into method parameters of a disposer method or observer method of any other event are destroyed when the invocation completes.

ccc)

Check disposer method.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentsDestroyedWhenDisposerMethodCompletes()github
ccd)

Check observer method.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentsDestroyedWhenObserverMethodEvaluationCompletes()github
org.jboss.cdi.tck.tests.context.dependent.instance
Test archive name: 79bbcc8ffba3f24e7c69c95f7f0918ce1fa234d
BuiltinInstanceDependentObjectTest.testInstanceDependentObject()github

The container must ensure that all @Dependent scoped contextual instances injected into method or constructor parameters that are annotated with @TransientReference are destroyed when the invocation completes.

fa)

Test producer method parameter.

Coverage

org.jboss.cdi.tck.tests.context.dependent.transientreference
Test archive name: 34cbdfed42a6c67c18e16669f336bdfc83abb4
DependentTransientReferenceDestroyedTest.testProducerMethod()github
fb)

Test initializer method parameter.

Coverage

org.jboss.cdi.tck.tests.context.dependent.transientreference
Test archive name: 34cbdfed42a6c67c18e16669f336bdfc83abb4
DependentTransientReferenceDestroyedTest.testConstructorAndInitializer()github
fc)

Test bean constructor parameter.

Coverage

org.jboss.cdi.tck.tests.context.dependent.transientreference
Test archive name: 34cbdfed42a6c67c18e16669f336bdfc83abb4
DependentTransientReferenceDestroyedTest.testConstructorAndInitializer()github

The container must ensure that any @Dependent scoped contextual instance created to receive a producer method, producer field, disposer method or observer method invocation is destroyed when the invocation completes.

ddd)

Check producer method.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentsDestroyedWhenProducerMethodCompletes()github
dde)

Check producer field.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentsDestroyedWhenProducerFieldCompletes()github
ddf)

Check disposer method.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentsDestroyedWhenDisposerMethodCompletes()github
ddg)

Check observer method.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentsDestroyedWhenObserverMethodEvaluationCompletes()github
e)

The container is permitted to destroy any @Dependent scoped contextual instance at any time if the instance is no longer referenced by the application (excluding weak, soft and phantom references).

#### Section 6.5.1 - The active context object for a scope [active_context]

a)

From time to time, the container must obtain an active context object for a certain scope type. The container must search for an active instance of Context associated with the scope type. If no active context object exists for the scope type, the container throws a ContextNotActiveException.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: e1f37e12834f0f7a056c88ecde97ed1d85f35
ContextTest.testGetContextWithNoRegisteredContextsFails()github
b)

If more than one active context object exists for the given scope type, the container must throw an IllegalStateException.

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: e1f37e12834f0f7a056c88ecde97ed1d85f35
ContextTest.testGetContextWithTooManyActiveContextsFails()github

#### Section 6.5.2 - Activating Built In Contexts [activating_builtin_contexts]

a)

Certain built in contexts support the ability to be activated and deactivated. This allows developers to control built-in contexts in ways that they could also manage custom built contexts. When activating and deactivating built in contexts, it is important to realize that they can only be activated if not already active within a given thread.

#### Section 6.5.2.1 - 6.5.2.1. Activating a Request Context [activating_request_context]

a)

Request contexts can be managed either programmatically or via interceptor.

Coverage

org.jboss.cdi.tck.tests.se.context.activation.interceptor
Test archive name: c276b92b6549608af057d6a6e22b28949f0fe95
ActivateRequestContextByInterceptorTest.classInterceptorRequestContextActivation()github
Test archive name: c276b92b6549608af057d6a6e22b28949f0fe95
ActivateRequestContextByInterceptorTest.methodInterceptorRequestContextActivation()github
org.jboss.cdi.tck.tests.se.context.activation.programmatic
Test archive name: 7bd92213a8285129ee6bb58f8467bdd5cd36bf1
ActivateRequestContextProgrammaticallyTest.programmaticRequestContextActivation()github
b)

To programmatically manage request contexts, the container provides a built in bean that is @Dependent scoped and of type RequestContextController that allows you to activate and deactivate a request context on the current thread. The object should be considered stateful, invoking the same instance on different threads may not work properly, non-portable behavior may occur.

Coverage

org.jboss.cdi.tck.tests.se.context.activation.programmatic
Test archive name: 7bd92213a8285129ee6bb58f8467bdd5cd36bf1
ActivateRequestContextProgrammaticallyTest.requestControllerBuiltInBeanAvailable()github
c)

When the activate() method is called, if the request context is not already active on the current thread then it will be activated and the method returns true. Otherwise, the method returns false.

Coverage

org.jboss.cdi.tck.tests.se.context.activation.programmatic
Test archive name: 7bd92213a8285129ee6bb58f8467bdd5cd36bf1
ActivateRequestContextProgrammaticallyTest.programmaticRequestContextActivation()github

When the deactivate() method is called,

da)

if this controller started the request context then the request context is stopped

Coverage

org.jboss.cdi.tck.tests.se.context.activation.programmatic
Test archive name: 7bd92213a8285129ee6bb58f8467bdd5cd36bf1
ActivateRequestContextProgrammaticallyTest.programmaticRequestContextActivation()github
db)

The method does nothing if this controller did not activate the context and the context is active.

Coverage

org.jboss.cdi.tck.tests.context.activation
Test archive name: c4736810557984b95885db5667fc5840605248a
ActivateRequestContextinEETest.requestContextCannotBeActivatedTwice()github
dc)

This method throws a ContextNotActiveException if there is no request context active.

Coverage

org.jboss.cdi.tck.tests.se.context.activation.programmatic
Test archive name: 7bd92213a8285129ee6bb58f8467bdd5cd36bf1
ActivateRequestContextProgrammaticallyTest.requestControllerDeactivatedThrowsException()github
e)

If within the same thread the activate() and deactivate() methods are invoked repeatedly, the instances between the activations are not the same instances, each request context should be assumed to be new.

Coverage

org.jboss.cdi.tck.tests.se.context.activation.programmatic
Test archive name: 7bd92213a8285129ee6bb58f8467bdd5cd36bf1
ActivateRequestContextProgrammaticallyTest.programmaticRequestContextActivation()github
f)

To automatically start a request context via interceptor binding, the container provides an interceptor @ActivateRequestContext which will activate a request context if not already active prior to the method’s invocation, and deactivate it upon method completion, with the same rules as in RequestContextController.

Coverage

org.jboss.cdi.tck.tests.se.context.activation.interceptor
Test archive name: c276b92b6549608af057d6a6e22b28949f0fe95
ActivateRequestContextByInterceptorTest.classInterceptorRequestContextActivation()github
Test archive name: c276b92b6549608af057d6a6e22b28949f0fe95
ActivateRequestContextByInterceptorTest.methodInterceptorRequestContextActivation()github
g)

When the requestContext is managed via interceptor binding, the interceptor is automatically registered with a priority of PLATFORM_BEFORE + 100

Coverage

org.jboss.cdi.tck.tests.se.context.activation.interceptor
Test archive name: c276b92b6549608af057d6a6e22b28949f0fe95
ActivateRequestContextByInterceptorTest.builtInInterceptorHasGivenPriority()github

#### Section 6.5.3 - Contextual instance of a bean [contextual_instance]

a)

From time to time, the container must obtain a contextual instance of a bean. The container must obtain the active context object for the bean scope, then obtain an instance of the bean by calling Context.get(), passing the Bean instance representing the bean and an instance of CreationalContext.

Coverage

org.jboss.cdi.tck.tests.lookup.el
Test archive name: 402292eb879ff8fb0441e41749ec64751e41a94
ResolutionByNameTest.testContextCreatesNewInstanceForInjection()github
b)

From time to time, the container attempts to obtain a contextual instance of a bean that already exists, without creating a new contextual instance. The container must determine if the scope of the bean is active and if it is, obtain the active context object for the bean scope, then attempt to obtain an instance of the bean by calling Context.get(), passing the Bean instance representing the bean without passing any instance of CreationalContext.

Coverage

org.jboss.cdi.tck.tests.lookup.el
Test archive name: 402292eb879ff8fb0441e41749ec64751e41a94
ResolutionByNameTest.testContextCreatesNewInstanceForInjection()github
c)

If the scope is not active, or if Context.get() returns a null value, there is no contextual instance that already exists.

e)

For a custom implementation of the Bean interface defined in Section 11.1, "The Bean interface", the container calls getScope() to determine the bean scope.

Coverage

org.jboss.cdi.tck.tests.definition.bean.custom
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testGetScopeTypeCalled()github

#### Section 6.5.4 - Contextual reference for a bean [contextual_reference]

aa)

Contextual references must be obtained with a given CreationalContext, allowing any instance of scope @Dependent that is created to be later destroyed.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testContextualDestroyDisposesWhenNecessary()github
a)

If the bean has a normal scope and the given bean type cannot be proxied by the container, as defined in Section 5.4.1, "Unproxyable bean types", the container throws an UnproxyableResolutionException.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle.unproxyable
Test archive name: dc2bc9bb42d0e5dedd99f0266dfd128f1c99d355
UnproxyableManagedBeanTest.testNormalScopedUnproxyableBeanWithPrivateConstructorResolution()github
Test archive name: dc2bc9bb42d0e5dedd99f0266dfd128f1c99d355
UnproxyableManagedBeanTest.testNormalScopedUnproxyableBeanWithFinalClassResolution()github
Test archive name: dc2bc9bb42d0e5dedd99f0266dfd128f1c99d355
UnproxyableManagedBeanTest.testNormalScopedUnproxyableBeanWithPublicFinalMethodResolution()github
Test archive name: dc2bc9bb42d0e5dedd99f0266dfd128f1c99d355
UnproxyableManagedBeanTest.testNormalScopedUnproxyableBeanWithProtectedFinalMethodResolution()github
Test archive name: dc2bc9bb42d0e5dedd99f0266dfd128f1c99d355
UnproxyableManagedBeanTest.testNormalScopedUnproxyableBeanWithPackagePrivateFinalMethodResolution()github
b)

If the bean has a normal scope, then the contextual reference for the bean is a client proxy, as defined in Section 5.4, "Client proxies", created by the container, that implements the given bean type and all bean types of the bean which are Java interfaces.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testCreateSFSB()github
c)

If the bean has a pseudo-scope, the container must obtain a contextual instance of the bean. If the bean has scope @Dependent, the container must associate it with the CreationalContext.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testContextualDestroyDisposesWhenNecessary()github

The container must ensure that every injection point of type InjectionPoint and qualifier @Default of any dependent object instantiated during this process receives an instance of InjectionPoint representing the injection point into which the dependent object will be injected, or a null value if it is not being injected into any injection point.

da)

Test an injected dependent object.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testGetBean()github
db)

Test a non-injected dependent object.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: c21dbfaa3647699ec77eebee1565c8c990b2e3
InjectionPointTest.testNullInjectionPointInjectedIntoNonInjectedObject()github

#### Section 6.5.5 - Contextual reference validity [contextual_reference_validity]

a)

Any reference to a bean with a normal scope is valid as long as the application maintains a hard reference to it. However, it may only be invoked when the context associated with the normal scope is active. If it is invoked when the context is inactive, a ContextNotActiveException is thrown by the container.

Coverage

org.jboss.cdi.tck.tests.lookup.clientProxy
Test archive name: 20c0833c7d1ff36f7166beb3a4d473ac3108b
ClientProxyTest.testInactiveScope()github
b)

Any reference to a bean with a normal scope is invalid after CDI container shutdown. Maintaining such reference and attempting to use it after container shutdown results in an IllegalStateException.

Coverage

org.jboss.cdi.tck.tests.se.container.contextualReference
Test archive name: 1c7aa3f957ab2eee8e74ab5f44c7f96c087ca61
InvalidContextualReferenceTest.testReferenceUsedAfterContainerShutdown()github
c)

Any reference to a bean with a pseudo-scope (such as @Dependent) is valid until the bean instance to which it refers is destroyed. It may be invoked even if the context associated with the pseudo-scope is not active. If the application invokes a method of a reference to an instance that has already been destroyed, the behavior is undefined.

#### Section 6.5.6 - Injectable references [injectable_reference]

a)

From time to time, the container must obtain an injectable reference for an injection point. The container must identify a bean according to the rules defined in Section 5.2, "Typesafe resolution" and resolving ambiguities according to Section 5.2.1, "Unsatisfied and ambiguous dependencies", then obtain a contextual reference for this bean and the type of the injection point according to Section 6.5.3, "Contextual reference for a bean".

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: e05ac82e36cb7191fd256479e46a0e552c732
InjectableReferenceTest.testGetInjectableReferenceOnBeanManager()github
b)

For certain combinations of scopes, the container is permitted to optimize the procedure for obtaining an injectable reference for an injection point - the container is permitted to directly inject a contextual instance of the bean, as defined in Section 6.5.2, "Contextual instance of a bean", and if an incompletely initialized instance of the bean is registered with the current CreationalContext, as defined in Section 6.1, "The Contextual interface", the container is permitted to directly inject this instance.

#### Section 6.5.7 - Injectable reference validity [injectable_reference_validity]

a)

Injectable references to a bean must respect the rules of contextual reference validity, with the following exceptions - a reference to a bean injected into a field, bean constructor or initializer method is only valid until the object into which it was injected is destroyed, a reference to a bean injected into a producer method is only valid until the producer method bean instance that is being produced is destroyed, and a reference to a bean injected into a disposer method or observer method is only valid until the invocation of the method completes.

Coverage

No tests exist for this assertion

b)

The application should not invoke a method of an invalid injected reference. If the application invokes a method of an invalid injected reference, the behavior is undefined.

#### Section 6.6 - Passivation and passivating scopes [passivating_scope]

The following assertion is not made explicitly by the spec, however it is implied a)

Test that passivation occurs.

Coverage

org.jboss.cdi.tck.tests.context.passivating
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testManagedBeanWithSerializableInterceptorClassOK()github
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testPassivationOccurs()github

#### Section 6.6.1 - Passivation capable beans [passivation_capable]

A managed bean is passivation capable if and only if the bean class is serializable and all interceptors and decorators of the bean are passivation capable.

ba)

Tests with a serializable bean class.

Coverage

org.jboss.cdi.tck.tests.context.passivating
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testManagedBeanWithSerializableImplementationClassOK()github
bb)

Tests with a serializable interceptor.

Coverage

org.jboss.cdi.tck.tests.context.passivating
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testManagedBeanWithSerializableInterceptorClassOK()github
bc)

Tests with a serializable decorator.

Coverage

org.jboss.cdi.tck.tests.context.passivating
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testManagedBeanWithSerializableDecoratorOK()github
c)

A producer method is passivation capable if and only if it never returns a value which is not passivation capable at runtime.

d)

A producer field is passivation capable if and only if it never refers to a value which is not passivation capable at runtime.

A producer method is passivation capable if and only if it never returns a value which is not passivation capable at runtime.

caa)

Test that a producer method with a primitive return type is passivation capable.

A test exists for this untestable assertion!
ca)

Test that a producer method with a serializable return type is passivation capable.

Coverage

org.jboss.cdi.tck.tests.context.passivating
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testPassivationCapableProducerMethodIsOK()github

A producer field is passivation capable if and only if it never refers to a value which is not passivation capable at runtime.

daa)

Test that a producer field with a primitive type is passivation capable.

Coverage

org.jboss.cdi.tck.tests.context.passivating.producer
Test archive name: e145beb8eef2a381b88f563446591bd5d121e38
ProducerWithPrimitiveFieldTypePassivationTest.testProducerFieldWithPrimitiveType()github
da)

Test that a producer field with a serializable type is passivation capable.

Coverage

org.jboss.cdi.tck.tests.context.passivating
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testPassivationCapableProducerFieldIsOK()github
ea)

A custom implementation of Bean is passivation capable if it implements the interface PassivationCapable.

Coverage

org.jboss.cdi.tck.tests.definition.bean.custom
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testCustomBeanIsPassivationCapable()github
f)

An implementation of Contextual that is not a bean is passivation capable if it implements both PassivationCapable and Serializable.

Coverage

No tests exist for this assertion

g)

The getId() method of the PassivationCapable implementation must return a value that uniquely identifies the instance of Bean or Contextual.

h)

The getId() method of the PassivationCapable implementation must return a value that uniquely identifies the instance of Bean or Contextual. It is recommended that the string contain the package name of the class that implements Bean or Contextual.

#### Section 6.6.2 - Passivation capable injection points [passivation_capable_injection_points]

a)

An injection point of a bean is passivation capable if the injection point is a transient field.

Coverage

org.jboss.cdi.tck.tests.context.passivating
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testBeanWithNonSerializableImplementationInjectedIntoTransientFieldOK()github
b)

An injection point of a bean is passivation capable if the injection point is a non-transient field which resolves to a bean that is a passivation capable dependency.

Coverage

org.jboss.cdi.tck.tests.context.passivating.injection.point
Test archive name: 14a9e17f32e3117755b1e03d8c82e38d99a5a
PassivationCapableInjectionPointTest.testPassivationCapableInjectionPoints()github
org.jboss.cdi.tck.tests.context.passivating.broken.field
Test archive name: 3556ccc72bdcee8dab3f46754cf8f88f59ff53
NonPassivatingInjectedFieldTest.testBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfBeanWithPassivatingScopeFails()github
c)

An injection point of a bean is passivation capable if the injection point is a bean constructor parameter which is annotated with @TransientReference.

Coverage

org.jboss.cdi.tck.tests.context.passivating.transientreference
Test archive name: 9adf0565b373e34373d27769060246423709b
TransientReferenceParameterTest.testParamInjectionPoints()github
d)

An injection point of a bean is passivation capable if the injection point is a bean constructor parameter which resolves to a bean that is a passivation capable dependency.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.constructor
Test archive name: 363b43e32ee27af1154b64f8675ab35c3214c9e
NonPassivatingConstructorParamTest.testBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfBeanWithPassivatingScopeFails()github
org.jboss.cdi.tck.tests.context.passivating.injection.point
Test archive name: 14a9e17f32e3117755b1e03d8c82e38d99a5a
PassivationCapableInjectionPointTest.testPassivationCapableInjectionPoints()github
e)

An injection point of a bean is passivation capable if the injection point is a method parameter which is annotated with @TransientReference.

Coverage

org.jboss.cdi.tck.tests.context.passivating.transientreference
Test archive name: 9adf0565b373e34373d27769060246423709b
TransientReferenceParameterTest.testParamInjectionPoints()github
f)

An injection point of a bean is passivation capable if the injection point is a method parameter which resolves to a bean that is a passivation capable dependency.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.initializer
Test archive name: e525296e14ed1d683112e71b788cf05a0831594
NonPassivatingInitParamTest.testBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfBeanWithPassivatingScopeFails()github
org.jboss.cdi.tck.tests.context.passivating.injection.point
Test archive name: 14a9e17f32e3117755b1e03d8c82e38d99a5a
PassivationCapableInjectionPointTest.testPassivationCapableInjectionPoints()github

#### Section 6.6.3 - Passivation capable dependencies [passivation_capable_dependency]

b)

The container must guarantee that all beans with normal scope are passivation capable dependencies.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testSerializeRequestScoped()github
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testSerializeSessionScoped()github
c)

The container must guarantee that all passivation capable beans with scope @Dependent are passivation capable dependencies.

Coverage

org.jboss.cdi.tck.tests.context.passivating
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testInjectionOfDependentPrimitiveProductIntoNormalBean()github
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testInjectionOfDependentSerializableProductIntoNormalBean()github

The container must guarantee that the built-in beans of type Instance, Event, InjectionPoint and BeanManager are passivation capable dependencies.

ea)

Test built-in Instance.

Coverage

org.jboss.cdi.tck.tests.context.passivating.dependency.builtin
Test archive name: bd1dfd9393a6fa4d2c83536f12df1fc4e2f18
BuiltinBeanPassivationDependencyTest.testInstance()github
eb)

Test built-in Event.

Coverage

org.jboss.cdi.tck.tests.event.implicit
Test archive name: 7b54c3f5425976edb47f44148ac6c497b5e32c
ImplicitEventTest.testImplicitEventIsPassivationCapable()github
ec)

Test built-in InjectionPoint.

Coverage

org.jboss.cdi.tck.tests.context.passivating.dependency.builtin
Test archive name: bd1dfd9393a6fa4d2c83536f12df1fc4e2f18
BuiltinBeanPassivationDependencyTest.testInjectionPoint()github
ed)

Test built-in BeanManager.

Coverage

org.jboss.cdi.tck.tests.context.passivating.dependency.builtin
Test archive name: bd1dfd9393a6fa4d2c83536f12df1fc4e2f18
BuiltinBeanPassivationDependencyTest.testBeanManager()github
fa)

A custom implementation of Bean is a passivation capable dependency if it implements PassivationCapable.

Coverage

org.jboss.cdi.tck.tests.definition.bean.custom
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testCustomBeanIsPassivationCapableDependency()github

#### Section 6.6.4 - Passivating scopes [passivating_scopes]

A passivating scope requires that beans with the scope are passivation capable, and implementations of Contextual passed to any context object for the scope are passivation capable.

a)

Test that a bean with the scope is passivation capable.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken
Test archive name: 3ed381359aa18eba3d7b2bfee688352f5056
NonPassivationManagedBeanHasPassivatingScopeTest.testSimpleWebBeanWithNonSerializableImplementationClassFails()github
org.jboss.cdi.tck.tests.context.passivating
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testManagedBeanWithSerializableImplementationClassOK()github
b)

Test that an implementation of Contextual passed to the context object for the scope is passivation capable.

b)

Passivating scopes must be explicitly declared @NormalScope(passivating=true).

#### Section 6.6.5 - Validation of passivation capable beans and dependencies [passivation_validation]

If a managed bean which declares a passivating scope, or a built-in bean is not passivation capable then the container automatically detects the problem and treats it as a deployment problem.

a)

Test managed bean.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken
Test archive name: 3ed381359aa18eba3d7b2bfee688352f5056
NonPassivationManagedBeanHasPassivatingScopeTest.testSimpleWebBeanWithNonSerializableImplementationClassFails()github
org.jboss.cdi.tck.tests.extensions.lifecycle.bbd.broken.passivatingScope
Test archive name: fe2e44b4fc98ee93a48fcb745aca949bd881a
AddingPassivatingScopeTest.testAddingScopeType()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.broken.passivation
Test archive name: c576567e9ca869bed84888468e1203ba2a1d0
PassivationCapabilityErrorTest.test()github

If a managed bean which declares a passivating scope, or a built-in bean has has an injection point that is not passivation capable, then the container automatically detects the problem and treats it as a deployment problem.

aa)

Test non-transient injected field.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.field
Test archive name: 3556ccc72bdcee8dab3f46754cf8f88f59ff53
NonPassivatingInjectedFieldTest.testBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfBeanWithPassivatingScopeFails()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.broken.passivation
Test archive name: b88f84b6636b32f4eb165dc2e8ab3dd13eafcb1
PassivationCapableDependencyErrorTest.test()github
ab)

Test transient injected field.

Coverage

org.jboss.cdi.tck.tests.context.passivating
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testBeanWithNonSerializableImplementationInjectedIntoTransientFieldOK()github
ac)

Test bean constructor parameter which is not annotated with @TransientReference.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.constructor
Test archive name: 363b43e32ee27af1154b64f8675ab35c3214c9e
NonPassivatingConstructorParamTest.testBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfBeanWithPassivatingScopeFails()github
ad)

Test bean constructor parameter which is annotated with @TransientReference.

Coverage

org.jboss.cdi.tck.tests.context.passivating.transientreference
Test archive name: 9adf0565b373e34373d27769060246423709b
TransientReferenceParameterTest.testParamInjectionPoints()github
ae)

Test initializer method parameter which is not annotated with @TransientReference.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.initializer
Test archive name: e525296e14ed1d683112e71b788cf05a0831594
NonPassivatingInitParamTest.testBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfBeanWithPassivatingScopeFails()github
af)

Test initializer method parameter which is annotated with @TransientReference.

Coverage

org.jboss.cdi.tck.tests.context.passivating.transientreference
Test archive name: 9adf0565b373e34373d27769060246423709b
TransientReferenceParameterTest.testParamInjectionPoints()github
ag)

If a managed bean which declares a passivating scope, or a built-in bean has a non-transient injected field, bean constructor parameter or initializer method parameter that resolves to a bean that is not a dependent scoped bean and that is not a passivation capable dependency then the container automatically detects the problem and treats it as a deployment problem.

If a managed bean which declares a passivating scope, or a built-in bean has an interceptor or decorator with a non-transient injected field that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem.

aac)

Test interceptor with a non-transient injected field that does not resolve to a passivation capable dependency.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.interceptor.field
Test archive name: df87f62ab872558d8acf7753852ace1ba964261
PassivationCapableBeanWithNonPassivatingInterceptorTest.testPassivationCapableBeanWithNonPassivatingInterceptorFails()github
aaf)

Test decorator with a non-transient injected field that does not resolve to a passivation capable dependency.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.decorator.field
Test archive name: 4ae0748650d14aef9dd44598f9833cd86ab9d77
DecoratorWithNonPassivatingInjectedFieldTest.testPassivationCapableBeanWithNonPassivatingDecoratorInjectedFieldFails()github
ca)

If a producer method declares a passivating scope and has a return type that is declared final and does not implement or extend Serializable then the container automatically detects the problem and treats it as a deployment problem.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.producer.method.managed
Test archive name: 43c88e523e5bbe199d6eba237dc5ce3fafdd1193
NonPassivationCapableProducerMethodTest.testNonPassivationCapableProducerMethodNotOk()github
ea)

If a producer method declares a passivating scope and doesn't only return Serializable types at runtime, then the container must throw an IllegalProductException.

Coverage

org.jboss.cdi.tck.tests.context.passivating
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testPassivatingScopeProducerMethodReturnsUnserializableObjectNotOk()github
d)

If a producer field declares a passivating scope and has a type that is declared final and does not implement or extend Serializable then the container automatically detects the problem and treats it as a deployment problem.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.producer.field.managed
Test archive name: b9fdc4a53a44b08e8928305fabc4b57b9ab2df3
NonPassivationCapableProducerFieldTest.testNonPassivationCapableProducerFieldNotOk()github
eb)

If a producer field declares a passivating scope and doesn't only contain Serializable values at runtime then the container must throw anIllegalProductException.

Coverage

org.jboss.cdi.tck.tests.context.passivating
Test archive name: 60fa793a8d99cae016599c36b978ba1baa263193
PassivatingContextTest.testNonSerializableProducerFieldDeclaredPassivatingThrowsIllegalProductException()github

If a producer method or field of scope @Dependent returns an unserializable object for injection into an injection point that requires a passivation capable dependency, the container must throw an IllegalProductException

fab)

Test for a runtime exception with a producer method.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.producer.method.managed.dependent
Test archive name: 4d2fdac1b15a48ab525f439d51877e5aac333d
ManagedBeanWithIllegalDependencyTest.testFieldInjectionPointRequiringPassivationCapableDependency()github
Test archive name: 4d2fdac1b15a48ab525f439d51877e5aac333d
ManagedBeanWithIllegalDependencyTest.testSetterInjectionPointRequiringPassivationCapableDependency()github
Test archive name: 4d2fdac1b15a48ab525f439d51877e5aac333d
ManagedBeanWithIllegalDependencyTest.testConstructorInjectionPointRequiringPassivationCapableDependency()github
Test archive name: 4d2fdac1b15a48ab525f439d51877e5aac333d
ManagedBeanWithIllegalDependencyTest.testProducerMethodParamInjectionPointRequiringPassivationCapableDependency()github
fbb)

Test for a runtime exception with a producer field.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.producer.field.managed.dependent
Test archive name: 723f7ff5f94d5efea3e372894353677564dd041
ManagedBeanWithIllegalDependencyTest.testFieldInjectionPointRequiringPassivationCapableDependency()github
Test archive name: 723f7ff5f94d5efea3e372894353677564dd041
ManagedBeanWithIllegalDependencyTest.testSetterInjectionPointRequiringPassivationCapableDependency()github
Test archive name: 723f7ff5f94d5efea3e372894353677564dd041
ManagedBeanWithIllegalDependencyTest.testConstructorInjectionPointRequiringPassivationCapableDependency()github

For a custom implementation of Bean, the container calls getInjectionPoints() to determine the injection points, and InjectionPoint.isTransient() to determine whether the injected point is a transient field.

ga)

Test calling getInjectionPoints().

Coverage

org.jboss.cdi.tck.tests.definition.bean.custom
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testGetInjectionPointsCalled()github
gb)

Test calling InjectionPoint.isTransient().

Coverage

org.jboss.cdi.tck.tests.definition.bean.custom
Test archive name: ecd3ca1675688affa2ec5b5134d68416a8c5ef6
CustomBeanImplementationTest.testGetInjectionPointsCalled()github

If a bean which declares a passivating scope type has a decorator or interceptor which is not a passivation capable dependency, the container automatically detects the problem and treats it as a deployment problem.

ha)

Test a bean with decorator which is not a passivation capable dependency.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.decorator
Test archive name: 92b430f7ed7aadc591fa6b6c9947cf97d6bb269c
ManagedBeanWithNonPassivatingDecoratorTest.testManagedBeanWithNonPassivatingDecoratorFails()github
hc)

Test a bean with interceptor which is not a passivation capable dependency.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.interceptor
Test archive name: ab15cbf1c827c8d65b9ae9d2ab35289121b3d
ManagedBeanWithNonSerializableInterceptorClassTest.testManagedBeanWithNonSerializableInterceptorClassNotOK()github
The following assertion is not made explicitly by the spec, however it is implied k)

Passivation capable interceptor with non-passivation capable dependencies is allowed unless it intercepts a bean declaring passivation scope.

Coverage

org.jboss.cdi.tck.tests.context.passivating.validation
Test archive name: 6a99672c44f9e4c5dffdbab5b801967c57c9eb
InterceptorWithNonPassivationCapableDependenciesTest.test()github
The following assertion is not made explicitly by the spec, however it is implied l)

Passivation capable decorator with non-passivation capable dependencies is allowed unless it decorates a bean declaring passivation scope.

Coverage

org.jboss.cdi.tck.tests.context.passivating.validation
Test archive name: c2b2611afd2a2eabc2b5a6aa42405b8be9cd9b
DecoratorWithNonPassivationCapableDependenciesTest.testDeploymentValid()github

#### Section 6.7 - Context management for built-in scopes [builtin_contexts]

a)

A portable extension may define a custom context object for any or all of the built-in scopes. For example, a remoting framework might provide a request context object for the built-in request scope.

Coverage

org.jboss.cdi.tck.tests.se.context.custom
Test archive name: ed628c8f0a588fb51585b15d555177c0cc2eeb
CustomRequestContextSETest.defineCustomRequestContext()github
b)

The context associated with a built-in normal scope propagates across local, synchronous Java method calls. The context does not propagate across remote method invocations or to asynchronous processes.

Coverage

org.jboss.cdi.tck.tests.se.context.custom
Test archive name: ed628c8f0a588fb51585b15d555177c0cc2eeb
CustomRequestContextSETest.defineCustomRequestContext()github

Portable extensions are encouraged to synchronously fire (where X is the scope type associated with the context.):

ea)

an event with qualifier @Initialized(X.class) when a custom context is initialized, i.e. ready for use,

eb)

an event with qualifier @BeforeDestroyed(X.class) when a custom context is about to be destroyed, i.e. before the actual destruction,

ec)

an event with qualifier @Destroyed(X.class) when a custom context is destroyed, i.e. after the actual destruction,

#### Section 6.7.1 - Request context lifecycle [request_context]

a)

An event with qualifier @Initialized(RequestScoped.class) is synchronously fired when the request context is initialized.

Coverage

org.jboss.cdi.tck.tests.se.context.activation.interceptor
Test archive name: c276b92b6549608af057d6a6e22b28949f0fe95
ActivateRequestContextByInterceptorTest.classInterceptorRequestContextActivation()github
Test archive name: c276b92b6549608af057d6a6e22b28949f0fe95
ActivateRequestContextByInterceptorTest.methodInterceptorRequestContextActivation()github
org.jboss.cdi.tck.tests.context.request.event.jms
Test archive name: 24366694ab54ddc83623ef655667ac266c465c4
RequestScopeEventMessageDeliveryTest.testEventsFired()github
org.jboss.cdi.tck.tests.context.request.event.async
Test archive name: d76da9be13cf608bb9c779a562f09235197a86
RequestScopeEventAsyncTest.testEventsFired()github
org.jboss.cdi.tck.tests.context.request.event
Test archive name: a67016e87586e111fce443d6ad1d2f7fd24b2d3
RequestScopeEventTest.test()github
b)

An event with qualifier @BeforeDestroyed(RequestScoped.class) is synchronously fired when the request context is about to be destroyed, i.e. before the actual destruction.

Coverage

org.jboss.cdi.tck.tests.se.context.activation.interceptor
Test archive name: c276b92b6549608af057d6a6e22b28949f0fe95
ActivateRequestContextByInterceptorTest.classInterceptorRequestContextActivation()github
Test archive name: c276b92b6549608af057d6a6e22b28949f0fe95
ActivateRequestContextByInterceptorTest.methodInterceptorRequestContextActivation()github
org.jboss.cdi.tck.tests.context.request.event
Test archive name: a67016e87586e111fce443d6ad1d2f7fd24b2d3
RequestScopeEventTest.test()github
c)

An event with qualifier @Destroyed(RequestScoped.class) is synchronously fired when the request context is destroyed, i.e. after the actual destruction.

Coverage

org.jboss.cdi.tck.tests.se.context.activation.interceptor
Test archive name: c276b92b6549608af057d6a6e22b28949f0fe95
ActivateRequestContextByInterceptorTest.classInterceptorRequestContextActivation()github
Test archive name: c276b92b6549608af057d6a6e22b28949f0fe95
ActivateRequestContextByInterceptorTest.methodInterceptorRequestContextActivation()github
org.jboss.cdi.tck.tests.context.request.event.jms
Test archive name: 24366694ab54ddc83623ef655667ac266c465c4
RequestScopeEventMessageDeliveryTest.testEventsFired()github
org.jboss.cdi.tck.tests.context.request.event.async
Test archive name: d76da9be13cf608bb9c779a562f09235197a86
RequestScopeEventAsyncTest.testEventsFired()github
org.jboss.cdi.tck.tests.context.request.event
Test archive name: a67016e87586e111fce443d6ad1d2f7fd24b2d3
RequestScopeEventTest.test()github

The request context is active:

da)

during notification of an asynchronous observer method

Coverage

org.jboss.cdi.tck.tests.event.observer.context.async
Test archive name: 388d5cdeef7386ecee546837de9ecce548502c
AsyncObserverMethodInvocationContextTest.testAsyncObserverIsCalledInNewRequestContext()github
org.jboss.cdi.tck.tests.se.context.request
Test archive name: 82c041a8107dfc499f79aa956f10165bf423e85
RequestContextTest.requestContextIsActiveDuringAsyncObserverNotification()github
db)

during @PostConstruct callback of any bean.

Coverage

org.jboss.cdi.tck.tests.context.request.postconstruct
Test archive name: c355b61973f5ae3aed29d7629cdfafe235a55c73
EagerSingletonPostConstructCallbackTest.testEagerSingletonPostConstructCallback()github
Test archive name: 162a615cf59018aaff2afc8d92764e7a3ada477c
SimpleBeanPostConstructCallbackTest.testSimplePostConstructCallback()github
org.jboss.cdi.tck.tests.se.context.request
Test archive name: 82c041a8107dfc499f79aa956f10165bf423e85
RequestContextTest.requestContextIsActiveDuringPostConstructCallback()github

The request context is destroyed:

ea)

after the invocation of an asynchronous observer method completes

Coverage

org.jboss.cdi.tck.tests.se.context.request
Test archive name: 82c041a8107dfc499f79aa956f10165bf423e85
RequestContextTest.requestContextIsActiveDuringAsyncObserverNotification()github
eb)

after the @PostConstruct callback completes, if it did not already exist when the @PostConstruct callback occurred

Coverage

org.jboss.cdi.tck.tests.context.request.postconstruct
Test archive name: c355b61973f5ae3aed29d7629cdfafe235a55c73
EagerSingletonPostConstructCallbackTest.testEagerSingletonPostConstructCallback()github
Test archive name: 162a615cf59018aaff2afc8d92764e7a3ada477c
SimpleBeanPostConstructCallbackTest.testSimplePostConstructCallback()github
org.jboss.cdi.tck.tests.se.context.request
Test archive name: 82c041a8107dfc499f79aa956f10165bf423e85
RequestContextTest.requestContextIsActiveDuringPostConstructCallback()github

#### Section 6.7.3 - Application context lifecycle [application_context]

a)

An event with qualifier @Initialized(ApplicationScoped.class) is synchronously fired when the application context is initialized.

Coverage

org.jboss.cdi.tck.tests.context.application.event
Test archive name: 9a18dd27d7c11ff48282628ffc2b5e14d25be65b
ApplicationScopeEventTest.testServletContextInitializedInvoked()github
org.jboss.cdi.tck.tests.se.context
Test archive name: 305ce66e67ba9336a12df18219ff373ee34df
ContextSETest.testEventIsFiredWhenAplicationContextInitialized()github
b)

An event with qualifier @BeforeDestroyed(ApplicationScoped.class) is synchronously fired when the application context is about to be destroyed, i.e. before the actual destruction.

Coverage

org.jboss.cdi.tck.tests.se.context
Test archive name: 305ce66e67ba9336a12df18219ff373ee34df
ContextSETest.testEventIsFiredWhenAplicationContextDestroyed()github
c)

An event with qualifier @Destroyed(ApplicationScoped.class) is synchronously fired when the application context is destroyed, i.e. after the actual destruction.

Coverage

org.jboss.cdi.tck.tests.context.application.event
Test archive name: 9a18dd27d7c11ff48282628ffc2b5e14d25be65b
ApplicationScopeEventTest.testServletContextInitializedInvoked()github
org.jboss.cdi.tck.tests.se.context
Test archive name: 305ce66e67ba9336a12df18219ff373ee34df
ContextSETest.testEventIsFiredWhenAplicationContextDestroyed()github

#### Section 6.7.5 - The Conversation interface [conversation]

The container provides a built-in bean with bean type Conversation, scope @RequestScoped, and qualifier @Default, named jakarta.enterprise.context.conversation.

iaa)

Test the bean type is correct.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testBeanWithRequestScope()github
ib)

Test the scope is correct.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testBeanWithRequestScope()github
id)

Test the qualifier is correct.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testBeanWithDefaultQualifier()github
ie)

Test the bean name is correct.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testBeanWithNameJavaxEnterpriseContextConversation()github
j)

begin() marks the current transient conversation long-running. A conversation identifier may, optionally, be specified. If no conversation identifier is specified, an identifier is generated by the container.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationIdMayBeSetByApplication()github
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationIdMayBeSetByContainer()github
k)

end() marks the current long-running conversation transient.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationEndMakesConversationTransient()github
l)

getId() returns the identifier of the current long-running conversation, or a null value if the current conversation is transient.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testTransientConversationHasNullId()github
m)

getTimeout() returns the timeout, in milliseconds, of the current conversation.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testSetConversationTimeoutOverride()github
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationHasDefaultTimeout()github
n)

setTimeout() sets the timeout of the current conversation.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testSetConversationTimeoutOverride()github
o)

isTransient() returns true if the conversation is marked transient, or false if it is marked long-running.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationEndMakesConversationTransient()github
p)

If any method of Conversation is called when the conversation scope is not active, a ContextNotActiveException is thrown.

Coverage

org.jboss.cdi.tck.tests.context.conversation.inactive
Test archive name: 77b7e7e3fba3c4aa417119d58428efe7316f19
InactiveConversationTest.testContextNotActiveExceptionThrown()github
q)

If end() is called, and the current conversation is marked transient, an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testEndTransientConversationThrowsException()github
r)

If begin() is called, and the current conversation is already marked long-running, an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testBeginAlreadyLongRunningConversationThrowsException()github
s)

If begin() is called with an explicit conversation identifier, and a long-running conversation with that identifier already exists, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testBeginConversationWithExplicitIdAlreadyUsedByDifferentConversation()github

#### Section 7.2 - Container invocations and interception [biz_method]

aa)

When the application invokes a method of a bean via a contextual reference to the bean, as defined in Section 6.5.3, "Contextual reference for a bean", the invocation is treated as a business method invocation.

Coverage

org.jboss.cdi.tck.tests.decorators.invocation
Test archive name: 9fe2373b45278ff4395c68d246fdddf36b6383ee
DecoratorInvocationTest.testDecoratorInvocation()github
org.jboss.cdi.tck.tests.interceptors.invocation
Test archive name: ab95f7838ed4b6f1ad22179e8df1a3de30fe1ed8
InterceptorInvocationTest.testManagedBeanIsIntercepted()github
org.jboss.cdi.tck.tests.interceptors.definition.enterprise.simpleInterception
Test archive name: ea44d453fcf0ff33b2bba0a4fef26411a7a1b02a
SessionBeanInterceptorDefinitionTest.testSessionBeanIsIntercepted()github
ab)

When the application invokes a method of a bean via a non-contextual reference to the bean, if the instance was created by the container, the invocation is treated as a business method invocation.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.enterprise.nonContextualReference
Test archive name: ae113a1e31c8fe2ad9cac50bb81c111e89a5552
SessionBeanInterceptorOnNonContextualEjbReferenceTest.testNonContextualSessionBeanReferenceIsIntercepted()github
ac)

When the application invokes a method of a bean via a non-contextual reference to the bean, if the instance was enhanced with the InterceptionFactory interface as defined in `Apply interceptor programmatically`, the invocation is treated as a business method invocation.

Coverage

No tests exist for this assertion

ad)

Invocations of initializer methods by the container are not business method invocations.

Coverage

org.jboss.cdi.tck.tests.interceptors.invocation
Test archive name: ab95f7838ed4b6f1ad22179e8df1a3de30fe1ed8
InterceptorInvocationTest.testInitializerMethodsNotIntercepted()github

Invocations of producer, disposer and observer methods by the container are business method invocations are are intercepted by method interceptors and decorators.

ia)

Verify producer methods are intercepted

Coverage

org.jboss.cdi.tck.tests.interceptors.invocation
Test archive name: ab95f7838ed4b6f1ad22179e8df1a3de30fe1ed8
InterceptorInvocationTest.testProducerMethodsAreIntercepted()github
ib)

Verify producer methods are decorated

Coverage

org.jboss.cdi.tck.tests.decorators.invocation.producer.method
Test archive name: 1ba914e1e4977e37e8f7658e3c59f2c6f8e4426
DecoratorInvocationTest.testDecoratorInvocation()github
ic)

Verify disposer methods are intercepted

Coverage

org.jboss.cdi.tck.tests.interceptors.invocation
Test archive name: ab95f7838ed4b6f1ad22179e8df1a3de30fe1ed8
InterceptorInvocationTest.testDisposerMethodsAreIntercepted()github
id)

Verify disposer methods are decorated

Coverage

org.jboss.cdi.tck.tests.decorators.invocation.producer.method
Test archive name: 1ba914e1e4977e37e8f7658e3c59f2c6f8e4426
DecoratorInvocationTest.testDecoratorInvocation()github
ie)

Verify observer methods are intercepted

Coverage

org.jboss.cdi.tck.tests.interceptors.invocation
Test archive name: ab95f7838ed4b6f1ad22179e8df1a3de30fe1ed8
InterceptorInvocationTest.testObserverMethodsAreIntercepted()github
if)

Verify observer methods are decorated

Coverage

org.jboss.cdi.tck.tests.decorators.invocation.observer
Test archive name: 2a93eaff651dcc943ab8e39a613a4b9558ca44
DecoratorInvocationTest.testDecoratorInvocation()github
j)

Invocation of lifecycle callbacks by the container are not business method invocations, but are intercepted by interceptors for lifecycle callbacks.

Coverage

org.jboss.cdi.tck.tests.interceptors.invocation
Test archive name: ab95f7838ed4b6f1ad22179e8df1a3de30fe1ed8
InterceptorInvocationTest.testLifecycleCallbacksAreIntercepted()github

Invocations of interceptors and decorator methods during method or lifecycle callback interception are not business method invocations, and therefore no recursive interception occurs.

ka)

Verify decorators callbacks are not intercepted

Coverage

org.jboss.cdi.tck.tests.decorators.interceptor
Test archive name: 553f9c7bbadf72a0457b48a023c8b8803f66e5dc
DecoratorAndInterceptorTest.testMethodCallbacks()github
kb)

Verify decorators callbacks are not decorated

Coverage

org.jboss.cdi.tck.tests.decorators.invocation
Test archive name: 9fe2373b45278ff4395c68d246fdddf36b6383ee
DecoratorInvocationTest.testChainedDecoratorInvocation()github
org.jboss.cdi.tck.tests.decorators.interceptor
Test archive name: 553f9c7bbadf72a0457b48a023c8b8803f66e5dc
DecoratorAndInterceptorTest.testMethodCallbacks()github
kc)

Verify interceptor callbacks are not intercepted

Coverage

org.jboss.cdi.tck.tests.decorators.interceptor
Test archive name: 553f9c7bbadf72a0457b48a023c8b8803f66e5dc
DecoratorAndInterceptorTest.testMethodCallbacks()github
Test archive name: 553f9c7bbadf72a0457b48a023c8b8803f66e5dc
DecoratorAndInterceptorTest.testLifecycleCallbacks()github
kd)

Verify interceptor callbacks are not decorated

Coverage

org.jboss.cdi.tck.tests.decorators.interceptor
Test archive name: 553f9c7bbadf72a0457b48a023c8b8803f66e5dc
DecoratorAndInterceptorTest.testMethodCallbacks()github
Test archive name: 553f9c7bbadf72a0457b48a023c8b8803f66e5dc
DecoratorAndInterceptorTest.testLifecycleCallbacks()github
m)

Invocations of methods declared by java.lang.Object are not business method invocations.

Coverage

org.jboss.cdi.tck.tests.interceptors.invocation
Test archive name: ab95f7838ed4b6f1ad22179e8df1a3de30fe1ed8
InterceptorInvocationTest.testObjectMethodsAreNotIntercepted()github

If, and only if, the invocation is a business method invocation it passes through method interceptors and decorators.

a)

Verify that a managed bean's business methods are intercepted

Coverage

org.jboss.cdi.tck.tests.interceptors.invocation
Test archive name: ab95f7838ed4b6f1ad22179e8df1a3de30fe1ed8
InterceptorInvocationTest.testManagedBeanIsIntercepted()github
b)

Verify that a managed bean's business methods are decorated

Coverage

org.jboss.cdi.tck.tests.decorators.invocation
Test archive name: 9fe2373b45278ff4395c68d246fdddf36b6383ee
DecoratorInvocationTest.testDecoratorInvocation()github
g)

If the invocation is not a business method invocation, it is treated as a normal Java method call and is not intercepted by the container.

Coverage

org.jboss.cdi.tck.tests.interceptors.invocation
Test archive name: ab95f7838ed4b6f1ad22179e8df1a3de30fe1ed8
InterceptorInvocationTest.testObjectMethodsAreNotIntercepted()github

#### Section 7.3.1 - Lifecycle of managed beans [managed_bean_lifecycle]

aa)

When the create() method of the Bean object that represents a managed bean is called, the container obtains an instance of the bean, as defined by the Managed Beans specification, calling the bean constructor as defined by Section 5.5.1, "Injection using the bean constructor", and performing dependency injection as defined in Section 5.5.2, "Injection of fields and initializer methods".

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testBeanCreateInjectsDependenciesAndInvokesInitializerToInstantiateInstance()github
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testCreateInjectsFieldsDeclaredInJava()github
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testPostConstructPreDestroy()github
ba)

When the destroy() method is called, the container destroys the instance, as defined by the Managed Beans specification, and any dependent objects, as defined in Section 5.5.3, "Destruction of dependent objects".

Coverage

org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testPostConstructPreDestroy()github
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testContextualDestroyDisposesWhenNecessary()github

#### Section 7.3.2 - Lifecycle of producer methods [producer_method_lifecycle]

ea)

When the create() method of a Bean object that represents a producer method is called, the container must invoke the producer method as defined by Section 5.5.4, "Invocation of producer or disposer methods". The return value of the producer method, after method interception completes, is the new contextual instance to be returned by Bean.create().

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.lifecycle
Test archive name: f2c03b21915f64328d7c83551748411224a5
ProducerMethodLifecycleTest.testProducerMethodInvokedOnCreate()github
Test archive name: f2c03b21915f64328d7c83551748411224a5
ProducerMethodLifecycleTest.testProducerMethodBeanCreate()github
k)

If the producer method returns a null value and the producer method bean has the scope @Dependent, the create() method returns a null value.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.lifecycle
Test archive name: f2c03b21915f64328d7c83551748411224a5
ProducerMethodLifecycleTest.testCreateReturnsNullIfProducerDoesAndDependent()github
l)

If the producer method returns a null value, and the scope of the producer method is not @Dependent, the create() method throws an IllegalProductException.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.lifecycle
Test archive name: f2c03b21915f64328d7c83551748411224a5
ProducerMethodLifecycleTest.testCreateFailsIfProducerReturnsNullAndNotDependent()github
ma)

When the destroy() method is called, and if there is a disposer method for this producer method, the container must invoke the disposer method as defined by Section 5.5.4, "Invocation of producer or disposer methods", passing the instance given to destroy() to the disposed parameter.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.lifecycle
Test archive name: f2c03b21915f64328d7c83551748411224a5
ProducerMethodLifecycleTest.testProducerMethodBeanDestroy()github
r)

Finally, the container destroys dependent objects, as defined in Section 5.5.3, "Destruction of dependent objects".

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.lifecycle
Test archive name: f2c03b21915f64328d7c83551748411224a5
ProducerMethodLifecycleTest.testProducerMethodBeanDestroy()github

#### Section 7.3.3 - Lifecycle of producer fields [producer_field_lifecycle]

ga)

When the create() method of a Bean object that represents a producer field is called, the container must access the producer field as defined by Section 5.5.5, "Access to producer field values" to obtain the current value of the field. The value of the producer field is the new contextual instance to be returned by Bean.create().

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.lifecycle
Test archive name: 10bd1736b13bee917131a842e7c632016aa8bcc
ProducerFieldLifecycleTest.testProducerFieldBeanCreate()github
m)

If the producer field contains a null value and the producer field bean has the scope @Dependent, the create() method returns a null value.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.lifecycle
Test archive name: 10bd1736b13bee917131a842e7c632016aa8bcc
ProducerFieldLifecycleTest.testProducerFieldReturnsNullIsDependent()github
n)

If the producer field contains a null value, and the scope of the producer method is not @Dependent, the create() method throws an IllegalProductException.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.lifecycle
Test archive name: 10bd1736b13bee917131a842e7c632016aa8bcc
ProducerFieldLifecycleTest.testProducerFieldForNullValueNotDependent()github
Test archive name: 10bd1736b13bee917131a842e7c632016aa8bcc
ProducerFieldLifecycleTest.testProducerFieldReturnsNullIsNotDependent()github
o)

When the destroy() method is called, and if there is a disposer method for this producer field, the container must invoke the disposer method as defined by Section 5.5.4, "Invocation of producer or disposer methods", passing the instance given to destroy() to the disposed parameter.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.lifecycle
Test archive name: 10bd1736b13bee917131a842e7c632016aa8bcc
ProducerFieldLifecycleTest.testProducerFieldBeanDestroy()github
org.jboss.cdi.tck.tests.implementation.disposal.method.definition
Test archive name: 5fca6bd44e89e62d58edd5acc7e35ccca4de99
DisposalMethodDefinitionTest.testDisposalMethodCalledForProducerField()github

#### Section 8 - Decorators [decorators]

a)

Decorators may be associated with any managed bean that is not itself an interceptor or decorator, with any EJB session bean or with any built-in bean other than the built-in bean with type BeanManager and qualifier @Default.

b)

Decorators are not applied to the return value of a producer method or the current value of a producer field.

Coverage

org.jboss.cdi.tck.tests.decorators.definition.producer
Test archive name: 7636854df957e4bbfdb219f340df9089b3d8bfb
DecoratorNotAppliedToResultOfProducerTest.testDecoratorNotAppliedToResultOfProducerMethod()github
Test archive name: 7636854df957e4bbfdb219f340df9089b3d8bfb
DecoratorNotAppliedToResultOfProducerTest.testDecoratorNotAppliedToResultOfProducerField()github
c)

A decorator instance is a dependent object of the object it decorates.

Coverage

org.jboss.cdi.tck.tests.decorators.definition.lifecycle
Test archive name: cf8782b4137b11cbb0faa7a28e182d396c6e7c72
DecoratorInstanceIsDependentObjectTest.testDecoratorInstanceIsDependentObject()github

#### Section 8.1 - Decorator beans [decorator_bean]

a)

A decorator is a managed bean.

b)

The set of decorated types of a decorator includes all bean types of the managed bean which are Java interfaces, except for java.io.Serializable.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratedTypes()github
c)

The decorator bean class and its superclasses are not decorated types of the decorator.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratedTypes()github
d)

The decorator class may be abstract.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratorIsManagedBean()github
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testAbstractDecoratorNotImplementingMethodOfDecoratedType()github
e)

If the set of decorated types of a decorator is empty, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.decorators.definition.broken.nodecoratedtypes
Test archive name: 2fea4e92ef1679e3f8eaf0cc2ce557a56f68cb26
DecoratorWithNoDecoratedTypes1Test.testDeploymentFails()github
Test archive name: 72d6cd51f13e8eaf44ceb43862bc738ebbbfed7
DecoratorWithNoDecoratedTypes2Test.testDeploymentFails()github
Test archive name: e83391ce4c52c2cf235bcaaa3bfc7017c2f9e
DecoratorWithNoDecoratedTypes3Test.testDeploymentFails()github
f)

If a decorator declares any scope other than @Dependent, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.decorators.definition.broken.nonDependent
Test archive name: 86314cbc9d331c1db743f61e68e0cf915fa9f3
NonDependentDecoratorTest.testDeploymentWithScopedDecorator()github

#### Section 8.1.1 - Declaring a decorator [decorator_annotation]

a)

A decorator is declared by annotating the bean class with the @jakarta.decorator.Decorator stereotype.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratorIsManagedBean()github

#### Section 8.1.2 - Decorator delegate injection points [delegate_attribute]

a)

All decorators have a delegate injection point. A delegate injection point is an injection point of the bean class. The type and qualifiers of the injection point are called the delegate type and delegate qualifiers. The decorator applies to beans that are assignable to the delegate injection point. The delegate injection point must be be declared by annotating the injection point with the annotation @jakarta.decorator.Delegate.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDelegateInjectionPoint()github

A decorator must have exactly one delegate injection point. If a decorator has more than one delegate injection point, or does not have a delegate injection point, the container automatically detects the problem and treats it as a definition error.

ca)

Test with more than one delegate injection point.

Coverage

org.jboss.cdi.tck.tests.decorators.custom.broken.toomanydelegateinjectionpoints
Test archive name: 96e9ffd28f1eeff55e88852ff3a2e6ddbd9e44f
CustomDecoratorWithTooManyDelegateInjectionPointsTest.testDeploymentFails()github
org.jboss.cdi.tck.tests.decorators.definition.broken.multipleDelegateInjectionPoints
Test archive name: 41a36b6066de6c7d09edd87c3718333495c52d2
MultipleDelegateInjectionPointsTest.testMultipleDelegateInjectionPoints()github
cb)

Test a decorator without a delegate injection point.

Coverage

org.jboss.cdi.tck.tests.decorators.custom.broken.nodelegateinjectionpoint
Test archive name: b59615b81b626b1e82d474c9bfaf935642a5269
CustomDecoratorWithNoDelegateInjectionPointTest.testDeploymentFails()github
org.jboss.cdi.tck.tests.decorators.definition.broken.noDelegateInjectionPoints
Test archive name: 64a5d82fa0e3f11a52735f32c29820d34fe096b1
NoDelegateInjectionPointsTest.testNoDelegateInjectionPoints()github

The delegate injection point must be an injected field, initializer method parameter or bean constructor method parameter. If an injection point that is not an injected field, initializer method parameter or bean constructor method parameter is annotated @Delegate, the container automatically detects the problem and treats it as a definition error.

cc)

Check an injected field is ok

Coverage

org.jboss.cdi.tck.tests.decorators.invocation.enterprise
Test archive name: 2e4637abe583a75d09825e0dbff163a9a8aa34e
EnterpriseDecoratorInvocationTest.testContextualDecorated()github
org.jboss.cdi.tck.tests.decorators.definition.inject.delegateField
Test archive name: 73c314cc1a4c5d54785839874332e43ec91b45fa
DelegateFieldInjectionPointTest.testDecoratorDelegateInjectionPoints()github
cd)

Check an initializer method parameter is ok

Coverage

org.jboss.cdi.tck.tests.decorators.definition.inject.delegateInitializerMethod
Test archive name: 94f68e19246268643c071b260ef4dc3287163
DelegateInjectionPointTest.testDecoratorDelegateInjectionPoints()github
ce)

Check a bean constructor method parameter is ok

Coverage

org.jboss.cdi.tck.tests.decorators.definition.inject.delegateConstructor
Test archive name: c0818a63e49977a68ac48a7935f1acaf9189211c
DelegateInjectionPointTest.testDecoratorDelegateInjectionPoints()github
cf)

Check that a producer method parameter is not ok

Coverage

No tests exist for this assertion

cg)

If a bean class that is not a decorator has an injection point annotated @Delegate, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.decorators.definition.broken.nonDecoratorWithDecorates
Test archive name: 7a1b3e1e48a2c5aac1381a4422539b2a368
NonDecoratorWithDecoratesTest.testNonDecoratorWithDecoratesAnnotationNotOK()github
f)

The container must inject a delegate object to the delegate injection point. The delegate object implements the delegate type and delegates method invocations to the remaining uninvoked decorators and eventually to the bean. When the container calls a decorator during business method interception, the decorator may invoke any method of the delegate object.

Coverage

org.jboss.cdi.tck.tests.decorators.invocation
Test archive name: 9fe2373b45278ff4395c68d246fdddf36b6383ee
DecoratorInvocationTest.testDecoratorInvocation()github
Test archive name: 9fe2373b45278ff4395c68d246fdddf36b6383ee
DecoratorInvocationTest.testChainedDecoratorInvocation()github
g)

If a decorator invokes the delegate object at any other time, the invoked method throws an IllegalStateException.

Coverage

No tests exist for this assertion

#### Section 8.1.3 - Decorated types of a decorator [decorated_types]

a)

The delegate type of a decorator must implement or extend every decorated type (with exactly the same type parameters). If the delegate type does not implement or extend a decorated type of the decorator (or specifies different type parameters), the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.decorators.definition.types
Test archive name: 6acf5aad92aefdb8f6f67a629afbffa1dab17d
DelegateTypeImplementsParameterizedDecoratedTypeTest.testDelegateTypeIsValid()github
org.jboss.cdi.tck.tests.decorators.definition.broken.notAllDecoratedTypesImplemented.parameterized
Test archive name: 6d18b57248f9e4ea7bb1d7fc13dafa4493d0a3
TypeParametersNotTheSameTest.testDeploymentFails()github
org.jboss.cdi.tck.tests.decorators.definition.broken.notAllDecoratedTypesImplemented
Test archive name: 2b37f9531447c3a1c0f7594f12341fb2c4b74e8
NotAllDecoratedTypesImplementedTest.testNotAllDecoratedTypesImplemented()github
ab)

If a decorated type is a parameterized type and the delegate type does not have exactly the same type parameters as the decorated type, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.decorators.definition.broken.parameterizedTypesWithDifferentTypeParameters
Test archive name: 4d168a7e31ecd58ce3e24b8033583dabb54f1c1d
DifferentTypeParametersTest.testTypeParametersOnDecoratedTypeAndDelegateTypeDoNotMatch()github
b)

A decorator is not required to implement the delegate type.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratorDoesNotImplementDelegateType()github
c)

A decorator may be an abstract Java class, and is not required to implement every method of every decorated type.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratorIsManagedBean()github
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testAbstractDecoratorNotImplementingMethodOfDecoratedType()github
ca)

Whenever the decorator does not implement a method of the decorated type, the container will provide an implicit implementation that calls the method on the delegate.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testAbstractDecoratorNotImplementingMethodOfDecoratedType()github
cb)

If a decorator has abstract methods that are not declared by a decorated type, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.decorators.definition.broken.invalidAbstractMethodOnDecorator
Test archive name: fa0df78532a96c74ea26c86dabcd8e0f8f850
DecoratorWithInvalidAbstractMethodTest.testAbstractMethodsNotDeclaredByDecoratedTypeNotOk()github
d)

The decorator intercepts every method which is declared by a decorated type of the decorator and is implemented by the bean class of the decorator.

Coverage

org.jboss.cdi.tck.tests.decorators.invocation
Test archive name: 9fe2373b45278ff4395c68d246fdddf36b6383ee
DecoratorInvocationTest.testDecoratorInvocation()github
Test archive name: 9fe2373b45278ff4395c68d246fdddf36b6383ee
DecoratorInvocationTest.testChainedDecoratorInvocation()github

#### Section 8.2 - Decorator enablement and ordering [enabled_decorators]

a)

This specification defines two methods of enabling and ordering decorators. From Contexts and Dependency Injection 1.1 onwards the @Priority annotation allows a decorator to be enabled and ordered for an entire application. Contexts and Dependency Injection 1.0 allowed only for a decorator to be enabled and ordered for a bean archive.

b)

Decorators are called after interceptors.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.interceptorCalledBeforeDecorator
Test archive name: ac41398ea376aa88ab1dfc214f21e887756c8
InterceptorCalledBeforeDecoratorTest.testInterceptorCalledBeforeDecorator()github
org.jboss.cdi.tck.tests.decorators.interceptor
Test archive name: 553f9c7bbadf72a0457b48a023c8b8803f66e5dc
DecoratorAndInterceptorTest.testMethodCallbacks()github
c)

Decorators enabled using @Priority are called before decorators enabled using beans.xml.

Coverage

org.jboss.cdi.tck.tests.decorators.ordering.global
Test archive name: 7c1d79f82e617e4812a9c74ed9a84dcb3afb5f
GlobalDecoratorOrderingTest.testDecoratorsInWebInfClasses()github
d)

If a decorator is enabled for the application and for the bean archive, then the enablement from the bean archive is ignored by the container. The decorator will only be executed once based on the @Priority annotation’s invocation chain.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.conflictingenablement
Test archive name: 619110348123c8da02a24c524fdd7146e4abf
InterceptorConflictingEnablementTest.testInterception()github

#### Section 8.2.1 - Decorator enablement and ordering for an application [enabled_decorators_priority]

a)

A decorator may be enabled for the entire application by applying the @Priority annotation, along with a priority value, on the decorator class.

Coverage

org.jboss.cdi.tck.tests.decorators.ordering.global
Test archive name: 7c1d79f82e617e4812a9c74ed9a84dcb3afb5f
GlobalDecoratorOrderingTest.testDecoratorsInWebInfClasses()github
b)

Decorators with the smaller priority values are called first.

Coverage

org.jboss.cdi.tck.tests.decorators.ordering.global
Test archive name: 7c1d79f82e617e4812a9c74ed9a84dcb3afb5f
GlobalDecoratorOrderingTest.testDecoratorsInWebInfClasses()github
c)

The order of more than one decorator with the same priority is undefined.

d)

The priority value ranges defined in the Java Interceptors specification section 5.5 should be used when defining decorator priorities.

#### Section 8.2.2 - Decorator enablement and ordering for a bean archive [enabled_decorators_bean_archive]

a)

A decorator may be explicitly enabled by listing its bean class under the <decorators> element of the beans.xml file of the bean archive.

Coverage

org.jboss.cdi.tck.tests.decorators.ordering.global
Test archive name: 7c1d79f82e617e4812a9c74ed9a84dcb3afb5f
GlobalDecoratorOrderingTest.testDecoratorsInWebInfClasses()github
org.jboss.cdi.tck.tests.deployment.packaging.war.modules
Test archive name: dec7dc110233d80afe6c175f5fae11f3f6d78d
WebArchiveModulesTest.testDecoratorAndCrossModuleEventObserver()github
org.jboss.cdi.tck.tests.deployment.packaging.ear.modules
Test archive name: b3b0a05066d9bec3659b91c3a2413dfa351982c
EnterpriseArchiveModulesTest.testDecoratorEnablement()github
org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testNonEnabledDecoratorNotResolved()github
b)

The order of the decorator declarations determines the decorator ordering. Decorators which occur earlier in the list are called first.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratorOrdering()github

Each child <class> element must specify the name of a decorator bean class. If there is no class with the specified name, or if the class with the specified name is not a decorator bean class, the container automatically detects the problem and treats it as a deployment problem.

ca)

Test with a nonexistent class name.

Coverage

org.jboss.cdi.tck.tests.decorators.definition.broken.nonExistantClassInBeansXml
Test archive name: 33a1dc8fe96198b4b8d1347d3338344c0b786d
NonExistantDecoratorClassInBeansXmlTest.testNonExistantDecoratorClassInBeansXmlNotOK()github
cb)

Test with a non-decorator class.

Coverage

org.jboss.cdi.tck.tests.decorators.definition.broken.enabledDecoratorIsNotDecorator
Test archive name: 7816d480f93b7847c964b7ac6c4ff562b10f4
EnabledDecoratorNotADecoratorTest.testEnabledDecoratorNotADecoratorTest()github
d)

If the same class is listed twice under the <decorators> element, the container automatically detects the problem and treats it as a deployment problem.

Coverage

org.jboss.cdi.tck.tests.decorators.definition.broken.decoratorListedTwiceInBeansXml
Test archive name: 99707e1f87ad8e3414db71c358fcda78f27fb3
DecoratorListedTwiceInBeansXmlTest.testDecoratorListedTwiceInBeansXmlNotOK()github

#### Section 8.3 - Decorator resolution [decorator_resolution]

aa)

The process of matching decorators to a certain bean is called decorator resolution. A decorator is bound to a bean if the bean is assignable to the delegate injection point according to the rules defined in Section 5.2, "Typesafe resolution", and the decorator is enabled in the bean archive containing the bean.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratorIsManagedBean()github
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratorOrdering()github
org.jboss.cdi.tck.tests.decorators.builtin.event
Test archive name: 34c99bd8d4bb426e93aa7562a066e8c07c62cc
BuiltinEventDecoratorTest.testDecoratorIsResolved()github
org.jboss.cdi.tck.tests.decorators.builtin.conversation
Test archive name: dd6d45135abee710682bbbf18928ce56851d07
BuiltinConversationDecoratorTest.testDecoratorIsResolved()github
org.jboss.cdi.tck.tests.deployment.packaging.war.modules
Test archive name: dec7dc110233d80afe6c175f5fae11f3f6d78d
WebArchiveModulesTest.testDecoratorAndCrossModuleEventObserver()github
org.jboss.cdi.tck.tests.decorators.builtin.http.session
Test archive name: de11f8cad393a43f3ab4316cad88763ecd3213c
BuiltinHttpSessionDecoratorTest.testDecoratorIsResolved()github
ab)

If a decorator matches a managed bean, and the managed bean class is declared final, the container automatically detects the problem and treats it as a deployment problem.

Coverage

org.jboss.cdi.tck.tests.decorators.custom.broken.finalBeanClass
Test archive name: 4d2ebc96f6c073a06a5bf9675f4cd72e743197b
CustomDecoratorMatchingBeanWithFinalClassTest.testCustomDecoratorDecoratingFinalBean()github
org.jboss.cdi.tck.tests.decorators.definition.broken.finalBeanClass
Test archive name: f7b5c9f33196e1d6dc6b11ccf8a26e9552932d
FinalBeanClassTest.testAppliesToFinalManagedBeanClass()github
ac)

If a decorator matches a managed bean with a non-static, non-private, final method, and the decorator also implements that method, the container automatically detects the problem and treats it as a deployment problem.

Coverage

org.jboss.cdi.tck.tests.decorators.definition.broken.finalBeanMethod
Test archive name: 10338b8ec382bb2ff8a8468d539c83ca8877a5d
FinalBeanMethodTest.testAppliesToFinalMethodOnManagedBeanClass()github
b)

For a custom implementation of the Decorator interface defined in Section 11.1.1, "The Decorator interface", the container calls getDelegateType(), getDelegateQualifiers() and getDecoratedTypes() to determine the delegate type and qualifiers and decorated types of the decorator.

Coverage

org.jboss.cdi.tck.tests.decorators.custom
Test archive name: 9da47bd02649dabcc929abaf44cfab131268ed7
CustomDecoratorTest.testCustomImplementationOfDecoratorInterface()github

#### Section 8.3.1 - Assignability of raw and parameterized types for delegate injection points [delegate_assignable_parameters]

A raw bean type is considered assignable to a parameterized delegate type if the raw types are identical and all type parameters of the delegate type are either unbounded type variables or java.lang.Object.

aa)

Check all type parameters are unbounded type variables

Coverage

org.jboss.cdi.tck.tests.decorators.resolution
Test archive name: d867595c2b9ab2943b301ce3198e6664745e20
DecoratorResolutionTest.testUnboundedTypeVariables()github
ab)

Check all type parameters are Object

Coverage

org.jboss.cdi.tck.tests.decorators.resolution
Test archive name: d867595c2b9ab2943b301ce3198e6664745e20
DecoratorResolutionTest.testObject()github
ac)

Check mix

Coverage

org.jboss.cdi.tck.tests.decorators.resolution
Test archive name: d867595c2b9ab2943b301ce3198e6664745e20
DecoratorResolutionTest.testUnboundedTypeVariablesAndObject()github

A parameterized bean type is considered assignable to a parameterized delegate type if they have identical raw type and for each parameter: the delegate type parameter and the bean type parameter are actual types with identical raw type, and, if the type is parameterized, the bean type parameter is assignable to the delegate type parameter according to these rules, or the delegate type parameter is a wildcard, the bean type parameter is an actual type and the actual type is assignable to the upper bound, if any, of the wildcard and assignable from the lower bound, if any, of the wildcard, or the delegate type parameter is a wildcard, the bean type parameter is a type variable and the upper bound of the type variable is assignable to the upper bound, if any, of the wildcard and assignable from the lower bound, if any, of the wildcard, or the delegate type parameter and the bean type parameter are both type variables and the upper bound of the bean type parameter is assignable to the upper bound, if any, of the delegate type parameter, or the delegate type parameter is a type variable, the bean type parameter is an actual type, and the actual type is assignable to the upper bound, if any, of the type variable.

c)

Check both have identical type parameters

Coverage

org.jboss.cdi.tck.tests.decorators.resolution
Test archive name: d867595c2b9ab2943b301ce3198e6664745e20
DecoratorResolutionTest.testIdenticalTypeParamerters()github
d)

Check nested identical type parameters

Coverage

org.jboss.cdi.tck.tests.decorators.resolution
Test archive name: d867595c2b9ab2943b301ce3198e6664745e20
DecoratorResolutionTest.testNestedIdenticalTypeParamerters()github
e)

Check delegate type parameter is a wildcard, the bean type parameter is an actual type and the actual type is assignable to the upper bound of the wildcard and assignable from the lower bound of the wildcard

Coverage

org.jboss.cdi.tck.tests.decorators.resolution
Test archive name: d867595c2b9ab2943b301ce3198e6664745e20
DecoratorResolutionTest.testDelegateWildcardBeanActualType()github
f)

Check delegate type parameter is a wildcard, the bean type parameter is a type variable and the upper bound of the type variable is assignable to the upper bound of the wildcard and assignable from the lower bound of the wildcard

Coverage

org.jboss.cdi.tck.tests.decorators.resolution
Test archive name: d867595c2b9ab2943b301ce3198e6664745e20
DecoratorResolutionTest.testDelegateWildcardBeanTypeVariable()github
g)

Check the delegate type parameter and the bean type parameter are both type variables and the upper bound of the bean type parameter is assignable to the upper bound of the delegate type parameter

Coverage

org.jboss.cdi.tck.tests.decorators.resolution
Test archive name: d867595c2b9ab2943b301ce3198e6664745e20
DecoratorResolutionTest.testDelegateTypeVariableBeanTypeVariable()github
h)

Check the delegate type parameter is a type variable, the bean type parameter is an actual type, and the actual type is as- signable to the upper bound of the type variable

Coverage

org.jboss.cdi.tck.tests.decorators.resolution
Test archive name: d867595c2b9ab2943b301ce3198e6664745e20
DecoratorResolutionTest.testDelegateTypeVariableBeanActualType()github

#### Section 8.4 - Decorator invocation [decorator_invocation]

Whenever a business method is invoked on an instance of a bean with decorators, the container intercepts the business method invocation and, after processing all interceptors of the method, invokes decorators of the bean. The container searches for the first decorator of the instance that implements the method that is being invoked as a business method. If such decorator exists, the container calls the method of the decorator.

aa)

Test decorator of managed bean is called.

Coverage

org.jboss.cdi.tck.tests.decorators.invocation
Test archive name: 9fe2373b45278ff4395c68d246fdddf36b6383ee
DecoratorInvocationTest.testDecoratorInvocation()github
aca)

Test injected Event

Coverage

org.jboss.cdi.tck.tests.decorators.builtin.event
Test archive name: 34c99bd8d4bb426e93aa7562a066e8c07c62cc
BuiltinEventDecoratorTest.testDecoratorIsResolved()github
Test archive name: 34c99bd8d4bb426e93aa7562a066e8c07c62cc
BuiltinEventDecoratorTest.testDecoratorIsInvoked()github
Test archive name: 34c99bd8d4bb426e93aa7562a066e8c07c62cc
BuiltinEventDecoratorTest.testMultipleDecorators()github
org.jboss.cdi.tck.tests.decorators.builtin.event.complex
Test archive name: eabea5d92533d2a51d9a69158f246e412c71dad
ComplexEventDecoratorTest.testOrderedEvents()github
acb)

Test injected Instance

Coverage

org.jboss.cdi.tck.tests.decorators.builtin.instance
Test archive name: edae1b10d6717b723c481e9b2bb6bd07128d6
BuiltinInstanceDecoratorTest.testDecoratorIsResolved()github
Test archive name: edae1b10d6717b723c481e9b2bb6bd07128d6
BuiltinInstanceDecoratorTest.testDecoratorIsInvoked()github
ach)

Test injected Conversation

Coverage

org.jboss.cdi.tck.tests.decorators.builtin.conversation
Test archive name: dd6d45135abee710682bbbf18928ce56851d07
BuiltinConversationDecoratorTest.testDecoratorIsResolved()github
Test archive name: dd6d45135abee710682bbbf18928ce56851d07
BuiltinConversationDecoratorTest.testDecoratorIsInvoked()github
b)

If no such decorator exists, the container invokes the business method of the intercepted instance.

Coverage

org.jboss.cdi.tck.tests.decorators.invocation
Test archive name: 9fe2373b45278ff4395c68d246fdddf36b6383ee
DecoratorInvocationTest.testDecoratorInvocation()github
d)

When any decorator is invoked by the container, it may in turn invoke a method of the delegate. The container intercepts the delegate invocation and searches for the first decorator of the instance such that the decorator occurs after the decorator invoking the delegate, and the decorator implements the method that is being invoked upon the delegate.

Coverage

org.jboss.cdi.tck.tests.decorators.invocation
Test archive name: 9fe2373b45278ff4395c68d246fdddf36b6383ee
DecoratorInvocationTest.testChainedDecoratorInvocation()github
e)

If no such decorator exists, the container invokes the business method of the intercepted instance.

Coverage

org.jboss.cdi.tck.tests.decorators.invocation
Test archive name: 9fe2373b45278ff4395c68d246fdddf36b6383ee
DecoratorInvocationTest.testChainedDecoratorInvocation()github
f)

Otherwise, the container calls the method of the decorator.

Coverage

org.jboss.cdi.tck.tests.decorators.invocation
Test archive name: 9fe2373b45278ff4395c68d246fdddf36b6383ee
DecoratorInvocationTest.testChainedDecoratorInvocation()github

#### Section 9.1.1 - Interceptor bindings for stereotypes [stereotype_interceptor_bindings]

a)

Interceptor bindings may be applied to a stereotype by annotating the stereotype annotation.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testStereotypeInterceptorBindings()github
b)

An interceptor binding declared by a stereotype is inherited by any bean that declares that stereotype.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testStereotypeInterceptorBindings()github
c)

If a stereotype declares interceptor bindings, it must be defined as @Target(TYPE).

#### Section 9.3 - Binding an interceptor to a bean [binding_interceptor_to_bean]

a)

Interceptor bindings may be used to associate interceptors with any managed bean that is not a decorator.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bean
Test archive name: 24296e1c3f432f233cc4ad15d19833cbfba95
SyntheticBeanTest.testSyntheticBeanIntercepted()github
org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testInterceptorBindingAnnotation()github
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testInterceptorBindingsCanDeclareOtherInterceptorBindings()github
b)

The set of interceptor bindings for a method are those declared at class level includes those declared on stereotypes. An interceptor binding declared on a bean class replaces an interceptor binding of the same type declared by a stereotype that is applied to the bean class.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.interceptor
Test archive name: d9fddbd86bac69db6918fc49442b7866cda6a84
StereotypeWithMultipleInterceptorBindingsTest.testMultipleInterceptorBindings()github
c)

Since CDI 2.0 it is possible to apply interceptors programmatically to the return value of a producer method, with the InterceptionFactory interface as defined in `Apply interceptor programmatically`.

Coverage

org.jboss.cdi.tck.tests.extensions.interceptionFactory
Test archive name: bf3afca6a03a46d6d613b2aa61b6e4913f4213f8
InterceptionFactoryTest.producedInstanceIsIntercepted()github
Test archive name: bf3afca6a03a46d6d613b2aa61b6e4913f4213f8
InterceptionFactoryTest.producedWithFinalMethodIsIntercepted()github
org.jboss.cdi.tck.tests.se.discovery.trimmed
Test archive name: 8c1338703c3d54318fdc3ea66adcfc1325d61040
TrimmedBeanArchiveSETest.discoveredTypes()github
d)

If a managed bean has a class-level or method-level interceptor binding, the managed bean must be a proxyable bean type, as defined in Section "unproxyable".

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.broken.finalClassInterceptor
Test archive name: 5242d1904e2710be3272b692a9ba4792b44e936
FinalMethodMethodLevelInterceptorTest.testFinalMethodWithMethodLevelInterceptor()github
org.jboss.cdi.tck.tests.interceptors.definition.inheritance.broken.binding
Test archive name: 7c3b8afadbb3b0ab710eca54f2fcf1827c84
FinalMethodWithInheritedClassLevelInterceptorTest.testFinalMethodWithInheritedClassLevelInterceptor()github
Test archive name: 525e8fe576c4483a3c6c37751f91684f76e216bb
FinalClassWithInheritedClassLevelInterceptorTest.testFinalClassWithInheritedClassLevelInterceptor()github
org.jboss.cdi.tck.tests.interceptors.definition.broken.finalClassInterceptor
Test archive name: b71d98125489a596f994dd648d2ce62045a81e2a
FinalClassClassLevelInterceptorTest.testFinalClassWithClassLevelInterceptor()github
Test archive name: 852eb09a34f79bb92edb11fade32b5513b665af
NormalScopedBeanFinalMethodInterceptorTest.testFinalMethodWithClassLevelInterceptor()github
org.jboss.cdi.tck.tests.interceptors.definition.inheritance.broken.binding
Test archive name: d18bed2dab5751811c186784503e2ad69ae6c9
FinalMethodWithInheritedStereotypeInterceptorTest.testFinalClassWithInheritedStereotypeInterceptor()github
org.jboss.cdi.tck.tests.interceptors.definition.broken.finalClassInterceptor
Test archive name: f25a6bff6f42843ee46fe9b4acff9a3599bb5c3
FinalMethodClassLevelInterceptorTest.testFinalMethodWithClassLevelInterceptor()github
org.jboss.cdi.tck.tests.interceptors.definition.inheritance.broken.binding
Test archive name: 8b3b72de6382a04ab8ece1cf6b4981bb2e93859
FinalClassWithInheritedStereotypeInterceptorTest.testFinalMethodWithInheritedStereotypeInterceptor()github
org.jboss.cdi.tck.tests.interceptors.definition.broken.finalClassInterceptor
Test archive name: 93513633dd7ad98789806e4541f122e2caae35e
NormalScopedBeanFinalClassInterceptorTest.testFinalClassWithClassLevelInterceptor()github
Test archive name: 8b56854c1a7f829157c488faaf1d6725e82e1ef
FinalClassMethodLevelInterceptorTest.testFinalClassWithMethodLevelInterceptor()github
Test archive name: 6720353f5deb513f4d47baaee981f6fc9643c7e
DependentBeanFinalMethodInterceptorTest.testFinalMethodWithClassLevelInterceptor()github

#### Section 9.4 - Interceptor enablement and ordering [enabled_interceptors]

a)

This specification extends the Java Interceptors specification and defines support for enabling interceptors only for a bean archive, as defined by Contexts and Dependency Injection 1.0, and the ability to override the interceptor order using the portable extension SPI, defined in Section "atd".

b)

An interceptor may be explicitly enabled for a bean archive by listing its class under the <interceptors> element of the beans.xml file of the bean archive.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.interceptorOrder
Test archive name: f5618e372783e385b8d318cec8a97d5f232ab93
InterceptorOrderTest.testInterceptorsCalledInOrderDefinedByBeansXml()github
c)

The order of the interceptor declarations determines the interceptor ordering. Interceptors which occur earlier in the list are called first.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.interceptorOrder
Test archive name: f5618e372783e385b8d318cec8a97d5f232ab93
InterceptorOrderTest.testInterceptorsCalledInOrderDefinedByBeansXml()github

Each child <class> element must specify the name of an interceptor class. If there is no class with the specified name, or if the class with the specified name is not an interceptor class, the container automatically detects the problem and treats it as a deployment problem.

da)

Test with a non-existant class.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.broken.nonExistantClassInBeansXml
Test archive name: 6670e40ab811a46277da2a8ae96159881be2d52
NonExistantClassInBeansXmlTest.testNonExistantClassInBeansXmlNotOk()github
db)

Test with a class that isn't an interceptor.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.broken.nonInterceptorClassInBeansXml
Test archive name: bc6ab9e043e82a115163144fd35c5d9c3566fde
NonInterceptorClassInBeansXmlTest.testNonInterceptorClassInBeansXmlNotOk()github
e)

If the same class is listed twice under the <interceptors> element, the container automatically detects the problem and treats it as a deployment problem.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.broken.sameClassListedTwiceInBeansXml
Test archive name: 1489045c344d4d9a7f2c15955b8ee604793d713
SameClassListedTwiceInBeansXmlTest.testSameInterceptorClassListedTwiceInBeansXmlNotOk()github
f)

Interceptors enabled using @Priority are called before interceptors enabled using beans.xml.

Coverage

org.jboss.cdi.tck.tests.interceptors.ordering.global
Test archive name: ba529044c55fa262ee90d76a7b07465ad52eea
GlobalInterceptorOrderingTest.testOrderingInWebInfClasses()github
Test archive name: 8638fa8328733a82b1cf3db94e50b11c1b7af5
EnterpriseInterceptorOrderingTest.testDecoratorsInWebInfClasses()github
The following assertion is not made explicitly by the spec, however it is implied g)

Interceptors declared using interceptor bindings are called after interceptors declared using the Interceptors annotation (or using the corresponding element of a deployment descriptor).

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.enterprise.interceptorOrder
Test archive name: ecd8daafb6788a64cd9fda46cc6fffa77347f44a
SessionBeanInterceptorOrderTest.testInterceptorsDeclaredUsingInterceptorsCalledBeforeInterceptorBinding()github
org.jboss.cdi.tck.tests.interceptors.definition.interceptorCalledBeforeDecorator
Test archive name: ac41398ea376aa88ab1dfc214f21e887756c8
InterceptorCalledBeforeDecoratorTest.testInterceptorCalledBeforeDecorator()github
org.jboss.cdi.tck.tests.interceptors.definition.lifecycle.enterprise.order
Test archive name: a6f087cac933661f297c19762f26ec59b6fdf53
EnterpriseLifecycleInterceptorDefinitionTest.testLifecycleInterception()github
org.jboss.cdi.tck.tests.interceptors.definition.lifecycle.order
Test archive name: 94cd64db711b1ba02cb88fb68beff995b452aa7d
LifecycleInterceptorOrderTest.testLifecycleCallbackInvocationOrder()github
org.jboss.cdi.tck.tests.interceptors.definition.interceptorOrder
Test archive name: f5618e372783e385b8d318cec8a97d5f232ab93
InterceptorOrderTest.testInterceptorsInvocationOrder()github
The following assertion is not made explicitly by the spec, however it is implied h)

Interceptors declared using interceptor bindings are called before any around-invoke, around-timeout, or lifecycle event callback methods declared on the target class or any superclass of the target class.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.enterprise.interceptorOrder
Test archive name: ecd8daafb6788a64cd9fda46cc6fffa77347f44a
SessionBeanInterceptorOrderTest.testInterceptorsDeclaredUsingInterceptorsCalledBeforeInterceptorBinding()github
org.jboss.cdi.tck.tests.interceptors.definition.lifecycle.enterprise.order
Test archive name: a6f087cac933661f297c19762f26ec59b6fdf53
EnterpriseLifecycleInterceptorDefinitionTest.testLifecycleInterception()github
org.jboss.cdi.tck.tests.interceptors.definition.lifecycle.order
Test archive name: 94cd64db711b1ba02cb88fb68beff995b452aa7d
LifecycleInterceptorOrderTest.testLifecycleCallbackInvocationOrder()github
The following assertion is not made explicitly by the spec, however it is implied i)

By default, a bean archive has no enabled interceptors.

Coverage

org.jboss.cdi.tck.tests.decorators.interceptor
Test archive name: 553f9c7bbadf72a0457b48a023c8b8803f66e5dc
DecoratorAndInterceptorTest.testMethodCallbacks()github
org.jboss.cdi.tck.tests.interceptors.ordering.global
Test archive name: ba529044c55fa262ee90d76a7b07465ad52eea
GlobalInterceptorOrderingTest.testOrderingInLib()github
Test archive name: 8638fa8328733a82b1cf3db94e50b11c1b7af5
EnterpriseInterceptorOrderingTest.testDecoratorsInWebInfClasses()github
org.jboss.cdi.tck.tests.interceptors.definition.interceptorNotListedInBeansXml
Test archive name: 88e8f1ddbd5f3551e1a898ee6752ef4cecb8ba5
InterceptorNotListedInBeansXmlNotEnabledTest.testInterceptorNotListedInBeansXmlNotInvoked()github
j)

If an interceptor declares any scope other than @Dependent, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.broken.nonDependent
Test archive name: 727dc5f852cf6c6347b544dd47d2b434e30cedf
NonDependentInterceptorTest.testDeploymentWithScopedInterceptor()github
k)

If an interceptor is enabled for the application and for the bean archive, then the enablement from the bean archive is ignored by the container. The interceptor will only be executed once based on the @Priority annotation’s invocation chain.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.conflictingenablement
Test archive name: 619110348123c8da02a24c524fdd7146e4abf
InterceptorConflictingEnablementTest.testInterception()github

#### Section 9.5 - Interceptor resolution [interceptor_resolution]

a)

This specification extends the Java Interceptors specification and defines the effect of applying @Nonbinding to an interceptor binding member, and how the interceptor bindings of a custom implementation of the Interceptor interface are determined.

b)

If any interceptor binding has a member annotated @jakarta.enterprise.util.Nonbinding, the member is ignored when performing interceptor resolution, and the method does not need to have the same annotation member value.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.member
Test archive name: 2e81b34db3e99e5cb253a7268cf8bf04665168b
InterceptorBindingTypeWithMemberTest.testInterceptorBindingTypeWithNonBindingMember()github

For a custom implementation of the Interceptor interface defined in Section "interceptor", the container calls getInterceptorBindings() to determine the interceptor bindings of the interceptor and intercepts() to determine if the interceptor intercepts a given kind of lifecycle callback or business method.

ca)

Check for @PostConstruct

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.custom
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomPostConstructInterceptor()github
cb)

Check for @PreDestroy

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.custom
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomPreDestroyInterceptor()github
cc)

Check for @PostActivate

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.custom
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomPostActivateInterceptor()github
cd)

Check for @PrePassivate

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.custom
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomPrePassivateInterceptor()github
ce)

Check for @AroundInvoke

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.custom
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomAroundInvokeInterceptor()github
cf)

Check for @AroundTimeout

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.custom
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomAroundTimeoutInterceptor()github

#### Section 10.1 - Event types and qualifier types [event_types_and_qualifier_types]

aa)

An event object is an instance of a concrete Java class with no unresolvable type variables.

Coverage

org.jboss.cdi.tck.tests.event.eventTypes
Test archive name: 391e412a64ecf3ca92ae48cd0393ed91fddcc61
EventTypesTest.testEventTypeIsConcreteTypeWithNoTypeVariables()github
c)

The event types of the event include all superclasses and interfaces of the runtime class of the event object.

Coverage

org.jboss.cdi.tck.tests.event.eventTypes
Test archive name: 391e412a64ecf3ca92ae48cd0393ed91fddcc61
EventTypesTest.testEventTypeIncludesAllSuperclassesAndInterfacesOfEventObject()github
cb)

An event type may not contain an unresolvable type variable.

d)

An event qualifier type is a Java annotation defined as @Target({FIELD, PARAMETER}) or @Target({METHOD, FIELD, PARAMETER, TYPE})

Coverage

org.jboss.cdi.tck.tests.event.bindingTypes
Test archive name: 36384e633e1f37489c72031b6e5259ef2bc92ed
EventBindingTypesTest.testEventBindingTypeTargetsMethodFieldParameterElementTypes()github
Test archive name: 36384e633e1f37489c72031b6e5259ef2bc92ed
EventBindingTypesTest.testEventBindingTypeTargetsFieldParameterElementTypes()github
Test archive name: 36384e633e1f37489c72031b6e5259ef2bc92ed
EventBindingTypesTest.testNonRuntimeBindingTypeIsNotAnEventBindingType()github
Test archive name: 36384e633e1f37489c72031b6e5259ef2bc92ed
EventBindingTypesTest.testFireEventWithNonRuntimeBindingTypeFails()github
g)

All event qualifier types must specify the @jakarta.inject.Qualifier meta-annotation

Coverage

org.jboss.cdi.tck.tests.event.bindingTypes
Test archive name: 36384e633e1f37489c72031b6e5259ef2bc92ed
EventBindingTypesTest.testFireEventWithNonBindingAnnotationsFails()github
i)

Every event has the qualifier @jakarta.enterprise.inject.Any, even if it does not explicitly declare this qualifier.

Coverage

org.jboss.cdi.tck.tests.event.bindingTypes
Test archive name: 36384e633e1f37489c72031b6e5259ef2bc92ed
EventBindingTypesTest.testEventAlwaysHasAnyBinding()github
org.jboss.cdi.tck.tests.event.implicit
Test archive name: 7b54c3f5425976edb47f44148ac6c497b5e32c
ImplicitEventTest.testImplicitEventHasAnyBinding()github
j)

Any Java type may be an observed event type.

Coverage

org.jboss.cdi.tck.tests.event.eventTypes
Test archive name: 391e412a64ecf3ca92ae48cd0393ed91fddcc61
EventTypesTest.testEventTypeIsConcreteTypeWithNoTypeVariables()github
Test archive name: 391e412a64ecf3ca92ae48cd0393ed91fddcc61
EventTypesTest.testEventTypeIsArray()github

#### Section 10.2 - Firing events [firing_events]

a)

Beans fire events via an instance of the jakarta.enterprise.event.Event interface, which may be injected.

Coverage

org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testInjectedAnyEventCanFireEvent()github
c)

Any combination of qualifiers may be specified at the injection point.

Coverage

org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testInjectedEventCanHaveBindings()github
d)

Or, the @Any qualifier may be used, allowing the application to specify qualifiers dynamically.

Coverage

org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testInjectedEventCanSpecifyBindingsDynamically()github

#### Section 10.2.1 - Firing events synchronously [firing_events_synchronously]

b)

The method fire() accepts an event object.

Coverage

org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testInjectedEventAcceptsEventObject()github
e)

Event fired with the fire() method is fired synchronously. All the resolved synchronous observers are called in the thread in which fire() was called.

Coverage

org.jboss.cdi.tck.tests.event.fires.sync
Test archive name: 9199be4052e2fcdae7e5fa45847795ca41a0
FireSyncEventTest.testSyncObservesCalledInSameThread()github
f)

A synchronous observer notification blocks the calling thread until it completes.

Coverage

org.jboss.cdi.tck.tests.event.fires.sync
Test archive name: 9199be4052e2fcdae7e5fa45847795ca41a0
FireSyncEventTest.testSyncObservesCalledInSameThread()github

#### Section 10.2.2 - Firing events asynchronously [firing_events_asynchronously]

a)

Event fired with the fireAsync() method is fired asynchronously. All the resolved asynchronous observers are called in one or more different threads.

Coverage

org.jboss.cdi.tck.tests.event.observer.async.basic
Test archive name: 10ceb43dd7a6ea2813232569aa8efad2bccc11
MixedObserversTest.testAsyncObserversCalledInDifferentThread()github

#### Section 10.2.3 - The Event interface [event]

ca)

The Event interface provides a method for firing events with a specified combination of type and qualifiers.

Coverage

org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testEventProvidesMethodForFiringEventsWithCombinationOfTypeAndBindings()github
cb)

For an injected Event, the specified type is the type parameter specified at the injection point, and the specified qualifiers are the qualifiers specified at the injection point.

Coverage

org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testInjectedEventAcceptsEventObject()github
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testInjectedEventCanHaveBindings()github
eaa)

The select() method returns a child Event for a given specified type and additional specified qualifiers. If no specified type is given, the specified type is the same as the parent.

Coverage

org.jboss.cdi.tck.tests.event.select
Test archive name: ac4a689cc48225c161859cf3189cbf57d93a2f7
SelectEventTest.testEventSelectReturnsEventOfSameType()github
eab)

If the specified type contains a type variable, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.event.select
Test archive name: ac4a689cc48225c161859cf3189cbf57d93a2f7
SelectEventTest.testEventSelectThrowsExceptionIfEventTypeHasTypeVariable()github
eba)

If two instances of the same non repeating qualifier type are passed to select(), an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.event.select
Test archive name: ac4a689cc48225c161859cf3189cbf57d93a2f7
SelectEventTest.testEventSelectThrowsExceptionForDuplicateBindingType()github
Test archive name: ac4a689cc48225c161859cf3189cbf57d93a2f7
SelectEventTest.testEventSelectWithSubtypeThrowsExceptionForDuplicateBindingType()github
ec)

If an instance of an annotation that is not a qualifier type is passed to select(), an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.event.select
Test archive name: ac4a689cc48225c161859cf3189cbf57d93a2f7
SelectEventTest.testEventSelectThrowsExceptionIfAnnotationIsNotBindingType()github
Test archive name: ac4a689cc48225c161859cf3189cbf57d93a2f7
SelectEventTest.testEventSelectWithSubtypeThrowsExceptionIfAnnotationIsNotBindingType()github
eda)

The method fire() and fireAsync() fire an event with the specified qualifiers and notifies observers, as defined by Section 10.5, "Observer notification".

Coverage

org.jboss.cdi.tck.tests.event.observer.async.basic
Test archive name: 10ceb43dd7a6ea2813232569aa8efad2bccc11
MixedObserversTest.testQualifiedAsyncEventIsDeliveredOnlyToAsyncObservers()github
org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testEventSelectedFiresAndObserversNotified()github
edb)

If the container is unable to resolve the parameterized type of the event object, it uses the specified type to infer the parameterized type of the event types.

Coverage

org.jboss.cdi.tck.tests.event.parameterized
Test archive name: efdaa0724f8b8569868ffb1a6b7bba8284c0bd4c
ParameterizedEventTest.testSelectedEventTypeUsedForResolvingEventTypeArguments()github
Test archive name: efdaa0724f8b8569868ffb1a6b7bba8284c0bd4c
ParameterizedEventTest.testSelectedEventTypeUsedForResolvingEventTypeArguments2()github
Test archive name: efdaa0724f8b8569868ffb1a6b7bba8284c0bd4c
ParameterizedEventTest.testSelectedEventTypeCombinedWithEventObjectRuntimeTypeForResolvingEventTypeArguments()github
Test archive name: efdaa0724f8b8569868ffb1a6b7bba8284c0bd4c
ParameterizedEventTest.testSelectedEventTypeCombinedWithEventObjectRuntimeTypeForResolvingEventTypeArguments2()github
ee)

The method fireAsync() may be called with a NotificationOptions object to configure the observer methods notification, e.g. to specify an Executor object to be used for asynchronous delivery.

Coverage

org.jboss.cdi.tck.tests.event.observer.async.executor
Test archive name: 301392f3b664123b7c0cbaf01ec6f1fc15e6e
FireAsyncWithCustomExecutorTest.testCustomExecutor()github

The following elements are container specific:

efa)

the default Executor used by the container when fireAsync() is called without specifying an Executor,

efb)

the CompletionStage returned by fireAsync methods,

efc)

all dependent stages of this initial CompletionStage.

f)

If the runtime type of the event object contains an unresolvable type variable, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.event.parameterized
Test archive name: efdaa0724f8b8569868ffb1a6b7bba8284c0bd4c
ParameterizedEventTest.testUnresolvedTypeVariableDetected1()github
Test archive name: efdaa0724f8b8569868ffb1a6b7bba8284c0bd4c
ParameterizedEventTest.testUnresolvedTypeVariableDetected2()github
Test archive name: efdaa0724f8b8569868ffb1a6b7bba8284c0bd4c
ParameterizedEventTest.testUnresolvedTypeVariableDetected3()github
org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testEventFireThrowsExceptionIfEventObjectTypeContainsUnresovableTypeVariable()github
g)

If the runtime type of the event object is assignable to the type of a container lifecycle event, IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testFireContainerLifecycleEvent()github

#### Section 10.2.4 - The built-in Event [builtin_event]

a)

The container must provide a built-in bean with Event<X> in its set of bean types, for every Java type x that does not contain a type variable.

Coverage

org.jboss.cdi.tck.tests.event.implicit
Test archive name: 7b54c3f5425976edb47f44148ac6c497b5e32c
ImplicitEventTest.testImplicitEventExistsForEachEventType()github
b)

The container must provide a built-in bean with every event qualifier type in its set of qualifier types.

Coverage

org.jboss.cdi.tck.tests.event.implicit
Test archive name: 7b54c3f5425976edb47f44148ac6c497b5e32c
ImplicitEventTest.testImplicitEventHasAllExplicitBindingTypes()github
d)

The container must provide a built-in bean with scope @Dependent.

Coverage

org.jboss.cdi.tck.tests.event.implicit
Test archive name: 7b54c3f5425976edb47f44148ac6c497b5e32c
ImplicitEventTest.testImplicitEventHasDependentScope()github
e)

The container must provide a built-in bean with no bean name.

Coverage

org.jboss.cdi.tck.tests.event.broken.raw
Test archive name: 2f66702b9e5f012922710e6f183ce864834c4d0
RawEventDisposerInjectionTest.testDefinitionError()github
org.jboss.cdi.tck.tests.event.implicit
Test archive name: 7b54c3f5425976edb47f44148ac6c497b5e32c
ImplicitEventTest.testImplicitEventHasNoName()github
org.jboss.cdi.tck.tests.event.broken.raw
Test archive name: 66287cd9cca2711b253ac2d78a2fbcaddc48954b
RawEventFieldInjectionTest.testDefinitionError()github
Test archive name: 82bbff56e4d2e6a214960dc5a70208f7fde4d
RawEventCustomBeanTest.testDefinitionError()github
Test archive name: 312ce19d258330147874ca15a0c84619271933d
RawEventProducerMethodInjectionTest.testDefinitionError()github
Test archive name: 3396b3efbcbe89afa2d5aeceb22b18db841d
RawEventObserverInjectionTest.testDefinitionError()github
Test archive name: fb2b23c63d744225928f6de5ee3dbc303f59
RawEventConstructorInjectionTest.testDefinitionError()github
Test archive name: 8d905482cdd13b0e5d07297836f75e27b377985
RawEventProcessInjectionPointTest.testDefinitionError()github
Test archive name: 42e22fac4349bd1818cdb4df54399d7e572fdfe
RawEventInitMethodInjectionTest.testDefinitionError()github
f)

The container must provide a built-in bean with an implementation provided automatically by the container.

Coverage

org.jboss.cdi.tck.tests.event.implicit
Test archive name: 7b54c3f5425976edb47f44148ac6c497b5e32c
ImplicitEventTest.testImplicitEventHasImplementation()github
e)

If an injection point of raw type Event is defined, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.event.broken.raw
Test archive name: 2f66702b9e5f012922710e6f183ce864834c4d0
RawEventDisposerInjectionTest.testDefinitionError()github
org.jboss.cdi.tck.tests.event.implicit
Test archive name: 7b54c3f5425976edb47f44148ac6c497b5e32c
ImplicitEventTest.testImplicitEventHasNoName()github
org.jboss.cdi.tck.tests.event.broken.raw
Test archive name: 66287cd9cca2711b253ac2d78a2fbcaddc48954b
RawEventFieldInjectionTest.testDefinitionError()github
Test archive name: 82bbff56e4d2e6a214960dc5a70208f7fde4d
RawEventCustomBeanTest.testDefinitionError()github
Test archive name: 312ce19d258330147874ca15a0c84619271933d
RawEventProducerMethodInjectionTest.testDefinitionError()github
Test archive name: 3396b3efbcbe89afa2d5aeceb22b18db841d
RawEventObserverInjectionTest.testDefinitionError()github
Test archive name: fb2b23c63d744225928f6de5ee3dbc303f59
RawEventConstructorInjectionTest.testDefinitionError()github
Test archive name: 8d905482cdd13b0e5d07297836f75e27b377985
RawEventProcessInjectionPointTest.testDefinitionError()github
Test archive name: 42e22fac4349bd1818cdb4df54399d7e572fdfe
RawEventInitMethodInjectionTest.testDefinitionError()github
g)

The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".

Coverage

org.jboss.cdi.tck.tests.event.implicit
Test archive name: 7b54c3f5425976edb47f44148ac6c497b5e32c
ImplicitEventTest.testImplicitEventIsPassivationCapable()github

#### Section 10.3 - Observer resolution [observer_resolution]

a)

The process of matching an event to its observer methods is called observer resolution. The container considers event type and qualifiers when resolving observers.

b)

Observer resolution usually occurs at runtime.

An event is delivered to an observer method if the observer method belongs to an enabled bean, an event type is assignable to the observed event type, taking type parameters into consideration, the observer method has no event qualifiers or has a subset of the event qualifiers. An observer method has an event qualifier if it has an observed event qualifier with (a) the same type and (b) the same annotation member value for each member which is not annotated @jakarta.enterprise.util.Nonbinding. Also the event is not a container lifecycle event, as defined in Section 11.5 "Container lifecycle events", or the observer method belongs to an extension.

c)

Check an event is delivered if the observer method belongs to an enabled bean, an event type is assignable to the observed event type and has a subset of the event qualifiers.

Coverage

org.jboss.cdi.tck.tests.event.observer
Test archive name: b3802821aa526a17567fb04de564b72d116f931
ObserverNotificationTest.testObserversNotified()github
org.jboss.cdi.tck.tests.deployment.packaging.war.modules
Test archive name: dec7dc110233d80afe6c175f5fae11f3f6d78d
WebArchiveModulesTest.testDecoratorAndCrossModuleEventObserver()github
Test archive name: dec7dc110233d80afe6c175f5fae11f3f6d78d
WebArchiveModulesTest.testProducerAndEventDuringDisposal()github
org.jboss.cdi.tck.tests.deployment.packaging.ear.modules
Test archive name: b3b0a05066d9bec3659b91c3a2413dfa351982c
EnterpriseArchiveModulesTest.testProducerAndEventDuringDisposal()github
d)

Check an event is not delivered if the observer method belongs to an disabled bean.

Coverage

org.jboss.cdi.tck.tests.event.observer
Test archive name: b3802821aa526a17567fb04de564b72d116f931
ObserverNotificationTest.testObserversNotified()github
e)

Check an event is delivered if the observer method if the event is fired synchronously and the observer is defined with @Observes

Coverage

org.jboss.cdi.tck.tests.event.observer.async.basic
Test archive name: 10ceb43dd7a6ea2813232569aa8efad2bccc11
MixedObserversTest.testSyncEventIsDeliveredOnlyToSyncObservers()github
f)

Check an event is delivered if the observer method if the event is fired asynchronously and the observer is defined with @ObservesAsync .

Coverage

org.jboss.cdi.tck.tests.event.observer.async.basic
Test archive name: 10ceb43dd7a6ea2813232569aa8efad2bccc11
MixedObserversTest.testQualifiedAsyncEventIsDeliveredOnlyToAsyncObservers()github
j)

If the runtime type of the event object contains an unresolvable type variable, the container must throw an IllegalArgumentException.

Coverage

org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testEventFireThrowsExceptionIfEventObjectTypeContainsUnresovableTypeVariable()github
k)

For a custom implementation of the ObserverMethod interface defined in Section 11.1.3, "The ObserverMethod interface", the container must call getObservedType() and getObservedQualifiers() to determine the observed event type and qualifiers.

Coverage

org.jboss.cdi.tck.tests.event.observer.extension
Test archive name: 168339ece2ef658f91aff9c332512187196e9167
EventBeanObserverNotificationTest.testNotifyInvoked()github
Test archive name: 5c165998fc7cca59621694be8c81ee14a588224
BeanManagerObserverNotificationTest.testNotifyInvoked()github

#### Section 10.3.1 - Assignability of type variables, raw and parameterized types [observers_assignability]

a)

An event type is considered assignable to a type variable if the event type is assignable to the upper bound, if any.

Coverage

org.jboss.cdi.tck.tests.event.resolve.typeWithParameters
Test archive name: a1b082ec38bee736904e8e5cef262948af58d3a7
CheckTypeParametersWhenResolvingObserversTest.testEventTypeAssignableToATypeVariable()github
b)

A parameterized event type is considered assignable to a raw observed event type if the raw types are identical.

Coverage

org.jboss.cdi.tck.tests.event.resolve.typeWithParameters
Test archive name: a1b082ec38bee736904e8e5cef262948af58d3a7
CheckTypeParametersWhenResolvingObserversTest.testResolvingChecksTypeParameters()github
Test archive name: a1b082ec38bee736904e8e5cef262948af58d3a7
CheckTypeParametersWhenResolvingObserversTest.testParameterizedEventTypeAssignableToRawType()github

A parameterized event type is considered assignable to a parameterized observed event type if they have identical raw type and for each parameter the observed event type parameter is an actual type with identical raw type to the event type parameter, and, if the type is parameterized, the event type parameter is assignable to the observed event type parameter according to these rules, or the observed event type parameter is a wildcard and the event type parameter is assignable to the upper bound, if any, of the wildcard and assignable from the lower bound, if any, of the wildcard, or the observed event type parameter is a type variable and the event type parameter is assignable to the upper bound, if any, of the type variable.

c)

Check the event type parameter and the observed event type parameter are actual types with identical raw type.

Coverage

org.jboss.cdi.tck.tests.event.resolve.typeWithParameters
Test archive name: a1b082ec38bee736904e8e5cef262948af58d3a7
CheckTypeParametersWhenResolvingObserversTest.testObservedEventTypeParameterIsActualType()github
d)

Check the event type parameter and the observed event type parameter are actual types with identical raw type for nested type parameters.

Coverage

org.jboss.cdi.tck.tests.event.resolve.typeWithParameters
Test archive name: a1b082ec38bee736904e8e5cef262948af58d3a7
CheckTypeParametersWhenResolvingObserversTest.testObservedEventTypeParameterIsActualTypeNested()github
org.jboss.cdi.tck.tests.event.parameterized
Test archive name: efdaa0724f8b8569868ffb1a6b7bba8284c0bd4c
ParameterizedEventTest.testEventObjectTypeUsed()github
e)

Check the observed event type parameter is a wildcard and the event type parameter is assignable to the upper bound, if any, of the wildcard and assignable from the lower bound, if any, of the wildcard.

Coverage

org.jboss.cdi.tck.tests.event.resolve.typeWithParameters
Test archive name: a1b082ec38bee736904e8e5cef262948af58d3a7
CheckTypeParametersWhenResolvingObserversTest.testObservedEventTypeParameterIsWildcard()github
org.jboss.cdi.tck.tests.event.parameterized
Test archive name: efdaa0724f8b8569868ffb1a6b7bba8284c0bd4c
ParameterizedEventTest.testWildcardIsResolvable()github
f)

Check the observed event type parameter is a type variable and the event type parameter is assignable to the upper bound, if any, of the type variable.

Coverage

org.jboss.cdi.tck.tests.event.resolve.typeWithParameters
Test archive name: a1b082ec38bee736904e8e5cef262948af58d3a7
CheckTypeParametersWhenResolvingObserversTest.testObservedEventTypeParameterIsTypeVariable()github

#### Section 10.3.2 - Event qualifier types with members [event_qualifier_types_with_members]

a)

The qualifier type for an Event qualifier may have annotation members.

Coverage

org.jboss.cdi.tck.tests.event.resolve.binding
Test archive name: 6f4fe1dc6c58948af8134bf3ad6decdccd26b6
ResolvingChecksBindingTypeMembersTest.testResolvingChecksBindingTypeMembers()github
org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testObserverMethodMayHaveMultipleBindingTypes()github
b)

The container uses equals() to compare event qualifier type member values.

#### Section 10.3.3 - Multiple event qualifiers [multiple_event_qualifiers]

a)

An event parameter may have multiple qualifiers.

Coverage

org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testObserverMethodMayHaveMultipleBindingTypes()github
org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testObserverMethodNotifiedWhenQualifiersMatch()github
b)

An observer method will only be notified if all the observed event qualifiers are specified when the event is fired.

Coverage

org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testObserverMethodNotifiedWhenQualifiersMatch()github

#### Section 10.4 - Observer methods [observer_methods]

aa)

An observer method allows the application to receive and respond to event notifications.

ab)

An observer method is a non-abstract method of a managed bean class (or of an extension, as defined in Section 11.5, "Container lifecycle events").

Coverage

org.jboss.cdi.tck.tests.event.resolve.typeWithParameters
Test archive name: a1b082ec38bee736904e8e5cef262948af58d3a7
CheckTypeParametersWhenResolvingObserversTest.testObservedEventTypeParameterIsActualType()github
org.jboss.cdi.tck.tests.event.broken.observer.beanNotManaged
Test archive name: 06ad5e0fad6ac5a59f254296978037bbe120f4
ObserverMethodOnIncorrectBeanTest.testObserverMethodNotOnManagedOrSessionBeanFails()github
c)

An observer method may be either static or non-static.

Coverage

org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testStaticObserverMethodInvoked()github
e)

There may be arbitrarily many observer methods with the same event parameter type and qualifiers.

Coverage

org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testMultipleObserverMethodsForSameEventPermissible()github
f)

A bean (or extension) may declare multiple observer methods.

Coverage

org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testMultipleObserverMethodsOnBeanPermissible()github

#### Section 10.4.1 - Event parameter of an observer method [observer_method_event_parameter]

a)

Each observer method must have exactly one event parameter, of the same type as the event type it observes. When searching for observer methods for an event, the container considers the type and qualifiers of the event parameter

Coverage

org.jboss.cdi.tck.tests.event.resolve.binding
Test archive name: 6f4fe1dc6c58948af8134bf3ad6decdccd26b6
ResolvingChecksBindingTypeMembersTest.testResolvingChecksBindingTypeMembers()github
org.jboss.cdi.tck.tests.event.broken.observer.tooManyParameters
Test archive name: 99761855ab4a920c0f1882cfca959a99d8cd9d
ObserverMethodWithTwoEventParametersTest.testObserverMethodMustHaveOnlyOneEventParameter()github
org.jboss.cdi.tck.tests.event.resolve.typeWithParameters
Test archive name: c87247590782b0435c3d6ca013bb3d69bb0d2
ChecksEventTypeWhenResolvingTest.testResolvingChecksEventType()github
b)

If the event parameter does not explicitly declare any qualifier, the observer method observes events with no qualifier.

Coverage

org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testObserverMethodWithoutBindingTypesObservesEventsWithoutBindingTypes()github

The event parameter type may contain a type variable or wildcard.

ca)

Test with a type variable.

Coverage

org.jboss.cdi.tck.tests.event.observer.wildcardAndTypeVariable
Test archive name: 58cd6419a62db7d080c66354635cf467c5d54d7e
ObserverMethodWithParametertizedTypeTest.testObserverMethodCanObserveTypeVariable()github
cb)

Test with a wildcard.

Coverage

org.jboss.cdi.tck.tests.event.observer.wildcardAndTypeVariable
Test archive name: 58cd6419a62db7d080c66354635cf467c5d54d7e
ObserverMethodWithParametertizedTypeTest.testObserverMethodCanObserveWildcardType()github

The event parameter may be an array type whose component type contains a type variable or a wildcard.

da)

Test with a type variable.

Coverage

org.jboss.cdi.tck.tests.event.observer.wildcardAndTypeVariable
Test archive name: 58cd6419a62db7d080c66354635cf467c5d54d7e
ObserverMethodWithParametertizedTypeTest.testObserverMethodCanObserveArrayTypeVariable()github
db)

Test with a wildcard.

Coverage

org.jboss.cdi.tck.tests.event.observer.wildcardAndTypeVariable
Test archive name: 58cd6419a62db7d080c66354635cf467c5d54d7e
ObserverMethodWithParametertizedTypeTest.testObserverMethodCanObserveArrayWildcard()github
e)

Modifications made to the event parameter in an observer method are propagated to following observers.

Coverage

org.jboss.cdi.tck.tests.event.observer.param.modification
Test archive name: ae6340b6c0a2e24f6a2fe865f1d89bbf0a38a5
SyncEventModificationTest.testModifiedEventParameterIsPropagated()github

#### Section 10.4.2 - Declaring an observer method [observes]

a)

An observer method may be declared by annotating a parameter @jakarta.enterprise.event.Observes or @jakarta.enterprise.event.ObservesAsync of a default-access, public, protected or private method. That parameter is the event parameter. The declared type of the parameter is the observed event type.

Coverage

org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 7e87fcebbbaf0a51830bc1b7bd6fca4dfef5abf
Specialization03Test.testEvent()github
org.jboss.cdi.tck.tests.context.application.event
Test archive name: 9a18dd27d7c11ff48282628ffc2b5e14d25be65b
ApplicationScopeEventTest.testServletContextInitializedInvoked()github
org.jboss.cdi.tck.tests.event.parameterized
Test archive name: efdaa0724f8b8569868ffb1a6b7bba8284c0bd4c
ParameterizedEventTest.testSelectedEventTypeUsedForResolvingEventTypeArguments()github
Test archive name: efdaa0724f8b8569868ffb1a6b7bba8284c0bd4c
ParameterizedEventTest.testSelectedEventTypeUsedForResolvingEventTypeArguments2()github
Test archive name: efdaa0724f8b8569868ffb1a6b7bba8284c0bd4c
ParameterizedEventTest.testSelectedEventTypeCombinedWithEventObjectRuntimeTypeForResolvingEventTypeArguments()github
org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative
Test archive name: 39940519dcdd8296e2d94db3bec54eda59edb
Specialization02Test.testEvent()github
Test archive name: 47c278019cda2a28591c2da2cd43879a89134e1
Specialization05Test.testEvent()github
Test archive name: 62cb7ff4a1adadbc0e4dead91e1972282aaee93
Specialization04Test.testEvent()github
Test archive name: d32637292e29145cbdf2ad9c3a4b9ec95c6c9d9
Specialization06Test.testEvent()github
Test archive name: 63ee2e0f5dae557513854eec9bc7b7240f95cd3
Specialization01Test.testEvent()github
org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testMethodWithParameterAnnotatedWithObservesRegistersObserverMethod()github
org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testPrivateObserverMethodInvoked()github
ab)

If @Observes is used the observer method is a synchronous observer method.

Coverage

org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testSyncObserver()github
ac)

If @ObservesAsync is used the observer method is an asynchronous observer method.

Coverage

org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testAsyncObserver()github
b)

If a method has more than one parameter annotated @Observes or @ObservesAsync, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.event.broken.observer.tooManyParameters
Test archive name: 99761855ab4a920c0f1882cfca959a99d8cd9d
ObserverMethodWithTwoEventParametersTest.testObserverMethodMustHaveOnlyOneEventParameter()github
Test archive name: fe69443d014d336d4a94dceaced6ca650644315
ObserverMethodWithObservesAndObservesAsyncParametersTest.testObserverMethodMustHaveOnlyOneEventParameter()github
ba)

If a method has a parameter annotated @Observes and @ObservesAsync, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.event.broken.observer.bothObservesAnnotations
Test archive name: 85fb636bb8b13ec4e74ada9f30e02aac5c8cd5fe
ObserverMethodParameterAnnotatedAsSyncAndAsyncTest.observerMethodMustBeSyncOrAsync()github
c)

Observed event qualifiers may be declared by annotating the event parameter.

Coverage

org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testObserverMethodMayHaveMultipleBindingTypes()github
d)

If an observer method is annotated @Produces the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.event.broken.observer.isProducer
Test archive name: 59e4bde478aa5342a282723b9d7a33b2d04aa4
ObserverMethodAnnotatedProducesTest.testObserverMethodAnnotatedProducesFails()github
e)

If an observer method is annotated @Inject the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.event.broken.observer.inject
Test archive name: 1919989af725b42586185e64a2ead75ef9914
DeploymentFailureTest.testDeploymentFailsBeforeNotifyingObserversAfterBeanDiscovery()github
f)

If an observer method has a parameter annotated @Disposes, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.event.broken.observer.isDisposer
Test archive name: a6a8dd8d67b2a1192189bbf9250ebbe6354f
ObserverMethodAnnotatedDisposesTest.testObserverMethodWithDisposesParamFails()github
h)

Interceptors and decorators may not declare observer methods. If an interceptor or decorator has a method with a parameter annotated @Observes or @ObservesAsync, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.broken.observer.async
Test archive name: e5a35cf89c308513eb3e2b159d4bc4b841a
InterceptorWithAsyncObserverMethodTest.testInterceptorWithAsyncObserverMethodNotOk()github
org.jboss.cdi.tck.tests.decorators.definition.broken.observer
Test archive name: 3ec1832b69b2783833149da89acf373a1b4138fc
DecoratorWithAsyncObserverMethodTest.testDecoratorWithAsyncObserverMethodNotOk()github
org.jboss.cdi.tck.tests.interceptors.definition.broken.observer
Test archive name: f6b1295cbc85486953e747574425b91f70561
InterceptorWithObserverMethodTest.testInterceptorWithObserverMethodNotOk()github
org.jboss.cdi.tck.tests.decorators.definition.broken.observer
Test archive name: 117f2a5067a45618dfcb0b7452886524292f2b1
DecoratorWithObserverMethodTest.testDecoratorWithObserverMethodNotOk()github
i)

In addition to the event parameter, observer methods may declare additional parameters, which may declare qualifiers. These additional parameters are injection points.

Coverage

org.jboss.cdi.tck.tests.event.observer.broken.validation.unsatisfied
Test archive name: d7eae584819b8d2af89ac828f421feb86bed36
ObserverMethodParameterInjectionValidationTest.test()github
org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testObserverMethodParameterInjectionPoints()github
org.jboss.cdi.tck.tests.event.observer.broken.validation.ambiguous
Test archive name: f17420c2d4f08c9b3fa39534fa4cc1f57279f96
ObserverMethodParameterInjectionValidationTest.test()github

#### Section 10.4.3 - The EventMetadata interface [event_metadata]

The interface jakarta.enterprise.inject.spi.EventMetadata provides access to metadata about an observed event.

a)

getQualifiers() returns the set of qualifiers with which the event was fired.

Coverage

org.jboss.cdi.tck.tests.event.metadata
Test archive name: 58b99ebdbd8a549c87a349aa0de8cdab2c9a7
EventMetadataTest.testSimpleEvent()github
b)

getInjectionPoint() returns the InjectionPoint from which this event payload was fired, or null if it was fired from BeanManager.fireEvent().

Coverage

org.jboss.cdi.tck.tests.event.metadata.injectionpoint
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testGetBean()github
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testIsTransient()github
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testGetType()github
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testGetQualifiers()github
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testGetMember()github
Test archive name: 76e7c0b6bb80f65d3d447db0f2683edb1e936851
EventMetadataInjectionPointTest.testGetAnnotatedType()github
org.jboss.cdi.tck.tests.event.metadata
Test archive name: 58b99ebdbd8a549c87a349aa0de8cdab2c9a7
EventMetadataTest.testSimpleEvent()github
c)

getType() returns the type representing runtime class of the event object with type variables resolved.

Coverage

org.jboss.cdi.tck.tests.event.metadata
Test archive name: 58b99ebdbd8a549c87a349aa0de8cdab2c9a7
EventMetadataTest.testSimpleEvent()github
Test archive name: 58b99ebdbd8a549c87a349aa0de8cdab2c9a7
EventMetadataTest.testParameterizedResolvedType()github
e)

The container must provide a bean with scope @Dependent, bean type EventMetadata and qualifier @Default, allowing observer methods to obtain information about the events they observe.

Coverage

org.jboss.cdi.tck.tests.event.metadata
Test archive name: 58b99ebdbd8a549c87a349aa0de8cdab2c9a7
EventMetadataTest.testSimpleEvent()github
f)

If an injection point of type EventMetadata and qualifier @Default which is not a parameter of an observer method exists, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.event.metadata.broken.initializer
Test archive name: 50c85f25c6805f9b5f672f8563307774eba
InvalidEventMetadataInjectionPointTest.testDeployment()github

#### Section 10.4.4 - Conditional observer methods [conditional_observer_methods]

a)

A conditional observer method may be declared by specifying receive=IF_EXISTS.

Coverage

org.jboss.cdi.tck.tests.event.observer.conditional
Test archive name: edc79bba85bf68897d5e2de322439c6524f5bc
ConditionalObserverTest.testConditionalObserver()github
Test archive name: edc79bba85bf68897d5e2de322439c6524f5bc
ConditionalObserverTest.testAsyncConditionalObserver()github
b)

Beans with scope @Dependent may not have conditional observer methods. If a bean with scope @Dependent has an observer method declared receive=IF_EXISTS, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.event.broken.observer.dependentIsConditionalObserver
Test archive name: ea73763cccef9e7028d02e55373891e7d5cfa3
DependentIsConditionalObserverTest.testDependentBeanWithConditionalObserverMethodIsDefinitionError()github
c)

The enumeration jakarta.enterprise.event.Reception identifies the possible values of receive.

Coverage

org.jboss.cdi.tck.tests.event.observer.conditional
Test archive name: edc79bba85bf68897d5e2de322439c6524f5bc
ConditionalObserverTest.testNotifyEnumerationContainsNotifyValues()github

#### Section 10.4.5 - Transactional observer methods [transactional_observer_methods]

a)

Transactional observer methods are observer methods which receive event notifications during the before or after completion phase of the transaction in which the event was fired. If no transaction is in progress when the event is fired, they are notified at the same time as other observers

Coverage

org.jboss.cdi.tck.tests.event.observer.transactional
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testSucessfullTransaction()github
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testFailedTransaction()github
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testNoTransaction()github
org.jboss.cdi.tck.tests.event.observer.priority.transactional
Test archive name: 84202c5634111ad6db328c78c6ffdbbb5d1e55a
TransactionalPriorityObserverTest.testSucessfulTransaction()github
aa)

If the transaction is in progress, but jakarta.transaction.Synchronization callback cannot be registered due to the transaction being already marked for rollback or in state where jakarta.transaction.Synchronization callbacks cannot be registered, the before completion, after completion and after failure observer methods are notified at the same time as other observers, but after success observer methods get skipped.

Coverage

org.jboss.cdi.tck.tests.event.observer.transactional.roolback
Test archive name: 3eaccbdd63b95b506e156fb0272b7490adc9299d
TransactionalObserverRollbackTest.afterSuccessObserverIsNotNotifiedAfterTxRollBack()github
b)

A before completion observer method is called during the before completion phase of the transaction

Coverage

org.jboss.cdi.tck.tests.event.observer.transactional
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testSucessfullTransaction()github
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testFailedTransaction()github
org.jboss.cdi.tck.tests.event.observer.priority.transactional
Test archive name: 84202c5634111ad6db328c78c6ffdbbb5d1e55a
TransactionalPriorityObserverTest.testSucessfulTransaction()github
c)

An after completion observer method is called during the after completion phase of the transaction

Coverage

org.jboss.cdi.tck.tests.event.observer.transactional
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testSucessfullTransaction()github
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testFailedTransaction()github
org.jboss.cdi.tck.tests.event.observer.priority.transactional
Test archive name: 84202c5634111ad6db328c78c6ffdbbb5d1e55a
TransactionalPriorityObserverTest.testSucessfulTransaction()github
d)

An after success observer method is called during the after completion phase of the transaction, only when the transaction completes successfully

Coverage

org.jboss.cdi.tck.tests.event.observer.transactional
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testSucessfullTransaction()github
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testFailedTransaction()github
org.jboss.cdi.tck.tests.event.observer.priority.transactional
Test archive name: 84202c5634111ad6db328c78c6ffdbbb5d1e55a
TransactionalPriorityObserverTest.testSucessfulTransaction()github
e)

An after failure observer method is called during the after completion phase of the transaction, only when the transaction fails

Coverage

org.jboss.cdi.tck.tests.event.observer.transactional
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testSucessfullTransaction()github
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testFailedTransaction()github
org.jboss.cdi.tck.tests.event.observer.priority.transactional
Test archive name: 84202c5634111ad6db328c78c6ffdbbb5d1e55a
TransactionalPriorityObserverTest.testSucessfulTransaction()github
f)

The enumeration jakarta.enterprise.event.TransactionPhase identifies the kind of transactional observer method.

gaa)

A transactional observer method may be declared by specifying any value other than IN_PROGRESS for during.

Coverage

org.jboss.cdi.tck.tests.event.observer.transactional
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testSucessfullTransaction()github
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testFailedTransaction()github
org.jboss.cdi.tck.tests.event.observer.priority.transactional
Test archive name: 84202c5634111ad6db328c78c6ffdbbb5d1e55a
TransactionalPriorityObserverTest.testSucessfulTransaction()github

#### Section 10.5 - Observer notification [observer_notification]

aa)

When an event is fired by the application, the container must determine the observers for that event according to the observer resolution defined by Section 10.2, "Observer resolution", then then for each observer method, either invoke the observer method immediately or register the observer method for later invocation during the transaction completion phase, using a JTA Synchronization and honor the priority of observer methods as defined in Section 10.6.2, “Observer ordering”.

Coverage

org.jboss.cdi.tck.tests.event.observer
Test archive name: b3802821aa526a17567fb04de564b72d116f931
ObserverNotificationTest.testObserversNotified()github
org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testObserverMethodRegistration()github
ba)

The container calls observer methods as defined in Section 5.5.6, "Invocation of observer methods".

b)

If the observer method is a transactional observer method and there is currently a JTA transaction in progress, the container calls the observer method during the appropriate transaction completion phase. Otherwise, the container calls the observer immediately.

Coverage

org.jboss.cdi.tck.tests.event.observer.transactional
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testSucessfullTransaction()github
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testFailedTransaction()github
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testNoTransaction()github
org.jboss.cdi.tck.tests.event.observer.priority.transactional
Test archive name: 84202c5634111ad6db328c78c6ffdbbb5d1e55a
TransactionalPriorityObserverTest.testSucessfulTransaction()github
bca)

If there is no context active for the scope to which the bean declaring the observer method belongs, then the observer method should not be called.

Coverage

org.jboss.cdi.tck.tests.event.observer
Test archive name: b3802821aa526a17567fb04de564b72d116f931
ObserverNotificationTest.testObserverMethodNotInvokedIfNoActiveContext()github
org.jboss.cdi.tck.tests.event.observer.conditional
Test archive name: edc79bba85bf68897d5e2de322439c6524f5bc
ConditionalObserverTest.testConditionalObserverMethodNotInvokedIfNoActiveContext()github
bda)

Any observer method called before completion of a transaction may call setRollbackOnly() to force a transaction rollback.

Coverage

org.jboss.cdi.tck.tests.event.observer.transactional
Test archive name: 54b6b3594fc94569de558f84aee3fb1b6b5dc45
TransactionalObserverTest.testObserverFailedTransaction()github
bdb)

An observer method may not directly initiate, commit or rollback JTA transactions.

Observers may throw exceptions:

ca)

If an observer method is a transactional observer method, any exception is caught and logged by the container.

cb)

If the observer method is asynchronous, the exception aborts processing of the observer but not of the event.

Coverage

org.jboss.cdi.tck.tests.event.observer.async.handlingExceptions
Test archive name: 57742f3a7fecb285b7f52e9dcef554641761fec
MultipleExceptionsInObserversNotificationTest.testMultipleExceptionsDuringVariousObserversNotification()github
cd)

Otherwise, the exception aborts processing of the event. No other observer methods of that event will be called. The BeanManager.fireEvent() or Event.fire() method rethrows the exception. If the exception is a checked exception, it is wrapped and rethrown as an (unchecked) ObserverException.

Coverage

org.jboss.cdi.tck.tests.event.observer.abortProcessing.orderedObservers
Test archive name: 742683991e1406ef116cdabce68ca948138c11
ExceptionInOrderedObserversAbortsProcessingTest.testOrderedObserversAbortedCorrectly()github
org.jboss.cdi.tck.tests.event.observer.abortProcessing
Test archive name: 6ee15daf55cc63f27f79f7a933f421554623994a
ObserverExceptionAbortsProcessingTest.testObserverThrowsExceptionAbortsNotifications()github
org.jboss.cdi.tck.tests.event.observer.checkedException
Test archive name: cff4eb3ce2e96f9ceee106535ca7312debf6fc5
CheckedExceptionWrappedTest.testNonTransactionalObserverThrowsCheckedExceptionIsWrappedAndRethrown()github
org.jboss.cdi.tck.tests.event.observer.runtimeException
Test archive name: 5010462921b0591f84159130e7606722474d1ed9
ObserverExceptionRethrownTest.testNonTransactionalObserverThrowsNonCheckedExceptionIsRethrown()github

For a custom implementation of the ObserverMethod interface defined in Section 11.1.3, "The ObserverMethod interface", the container must call getTransactionPhase() to determine if the observer method is a transactional observer method, and notify() which accepts jakarta.enterprise.inject.spi.EventContext to invoke the method.

fa)

Check getTransactionPhase() is called.

Coverage

org.jboss.cdi.tck.tests.event.observer.transactional.custom
Test archive name: 497ecd939d53bbacb2bd09dfa30285f927adf68
CustomTransactionalObserverTest.testCustomTransactionalObserver()github
fb)

Check notify() is called.

Coverage

org.jboss.cdi.tck.tests.event.observer.extension
Test archive name: 168339ece2ef658f91aff9c332512187196e9167
EventBeanObserverNotificationTest.testNotifyInvoked()github
org.jboss.cdi.tck.tests.event.observer.transactional.custom
Test archive name: 497ecd939d53bbacb2bd09dfa30285f927adf68
CustomTransactionalObserverTest.testCustomTransactionalObserver()github
org.jboss.cdi.tck.tests.event.observer.extension
Test archive name: 5c165998fc7cca59621694be8c81ee14a588224
BeanManagerObserverNotificationTest.testNotifyInvoked()github

#### Section 10.5.1 - Handling multiple exceptions thrown during an asynchronous event [async_exception]

a)

If an event is asynchronous, and an exception is thrown by any of its notified observers, the CompletionStage returned by fireAsync will complete exceptionally with java.util.concurrent.CompletionException exception.

Coverage

org.jboss.cdi.tck.tests.event.observer.async.handlingExceptions
Test archive name: 57742f3a7fecb285b7f52e9dcef554641761fec
MultipleExceptionsInObserversNotificationTest.testMultipleExceptionsDuringVariousObserversNotification()github
b)

java.util.concurrent.CompletionException contains all exceptions thrown by observers as suppressed exceptions. They can be accessed as an array of throwable with the getSuppressed method.

Coverage

org.jboss.cdi.tck.tests.event.observer.async.handlingExceptions
Test archive name: 57742f3a7fecb285b7f52e9dcef554641761fec
MultipleExceptionsInObserversNotificationTest.testMultipleExceptionsDuringVariousObserversNotification()github

#### Section 10.5.2 - Observer ordering [observer_ordering]

Before the actual observer notification, the container determines an order in which the observer methods for a certain event are invoked. The priority of an observer method may be declared using the @Priority annotation

a)

If no @Priority annotation is specified, the default priority APPLICATION + 500 is assumed

Coverage

org.jboss.cdi.tck.tests.event.observer.priority
Test archive name: 14116a1dc8f63a69baa44b4ac46cae9dcef265
EventObserverOrderingTest.testDefaultPriority()github
b)

Observers with smaller priority values are called first

Coverage

org.jboss.cdi.tck.tests.event.observer.priority
Test archive name: 14116a1dc8f63a69baa44b4ac46cae9dcef265
EventObserverOrderingTest.testFireEventLowerPriorityBeforeDefaultPriority()github
Test archive name: 14116a1dc8f63a69baa44b4ac46cae9dcef265
EventObserverOrderingTest.testResolveObserversLowerPriorityBeforeDefaultPriority()github
Test archive name: 14116a1dc8f63a69baa44b4ac46cae9dcef265
EventObserverOrderingTest.testFireEventToMultipleObserversWithPriority()github
Test archive name: 14116a1dc8f63a69baa44b4ac46cae9dcef265
EventObserverOrderingTest.testPrioritizedEventSubclass()github
Test archive name: 14116a1dc8f63a69baa44b4ac46cae9dcef265
EventObserverOrderingTest.testPrioritizedEventBaseclass()github
org.jboss.cdi.tck.tests.event.observer.abortProcessing.orderedObservers
Test archive name: 742683991e1406ef116cdabce68ca948138c11
ExceptionInOrderedObserversAbortsProcessingTest.testOrderedObserversAbortedCorrectly()github
org.jboss.cdi.tck.tests.event.observer.priority.contextLifecycleEvent
Test archive name: 7b28a78f99f8a895d2baf0a8a461d71ff5cd70de
ApplicationContextLifecycleEventObserverOrderingTest.testContextLifecycleEventOrdering()github
Test archive name: c96c944e0232bf82eb76ef2f4fe7e3090b9ed8
RequestContextLifecycleEventObserverOrderingTest.testContextLifecycleEventOrdering()github
c)

The order of more than one observer with the same priority is undefined and the observer methods are notified therefore in a non predictable order.

#### Section 10.5.3 - Observer method invocation context [observer_method_invocation_context]

If the observer method is asynchronous, it is called:

aa)

in a new lifecycle contexts.

Coverage

org.jboss.cdi.tck.tests.event.observer.context.async
Test archive name: 388d5cdeef7386ecee546837de9ecce548502c
AsyncObserverMethodInvocationContextTest.testAsyncObserverIsCalledInNewRequestContext()github
ab)

in a new transaction context.

Coverage

org.jboss.cdi.tck.tests.event.observer.context.async
Test archive name: 388d5cdeef7386ecee546837de9ecce548502c
AsyncObserverMethodInvocationContextTest.testAsyncObserverIsCalledInNewTransactionContext()github
a)

If the observer method is a before completion transactional observer method, it is called within the context of the transaction that is about to complete and with the same client security context and lifecycle contexts.

Coverage

org.jboss.cdi.tck.tests.event.observer.context.enterprise.staticMethod
Test archive name: 369fe9a5a4bc19d7d35b9b2eee1bf79af6bdb7
SessionBeanStaticObserverMethodInvocationContextTest.testTransactionalObserverMethod()github
org.jboss.cdi.tck.tests.event.observer.context.enterprise
Test archive name: feb6f09658953f9712f554d7ff5a94359572b26b
SessionBeanObserverMethodInvocationContextTest.testTransactionalObserverMethod()github
org.jboss.cdi.tck.tests.event.observer.context
Test archive name: 69a844f33914d7e3a2dd43ebe1f82bd5d137f6b0
ObserverMethodInvocationContextTest.testTransactionalObserverMethod()github
b)

If the observer method is any other kind of transactional observer method, it is called in an unspecified transaction context, but with the same client security context and lifecycle contexts as the transaction that just completed.

Coverage

org.jboss.cdi.tck.tests.event.observer.context.enterprise.staticMethod
Test archive name: 369fe9a5a4bc19d7d35b9b2eee1bf79af6bdb7
SessionBeanStaticObserverMethodInvocationContextTest.testTransactionalObserverMethod()github
org.jboss.cdi.tck.tests.event.observer.context.enterprise
Test archive name: feb6f09658953f9712f554d7ff5a94359572b26b
SessionBeanObserverMethodInvocationContextTest.testTransactionalObserverMethod()github
org.jboss.cdi.tck.tests.event.observer.context
Test archive name: 69a844f33914d7e3a2dd43ebe1f82bd5d137f6b0
ObserverMethodInvocationContextTest.testTransactionalObserverMethod()github
c)

If an observer method is not a before completion transactional method, and not any other kind of transactional observer method, then the observer method is called in the same transaction context, client security context and lifecycle contexts as the invocation of Event.fire() or BeanManager.fireEvent().

Coverage

org.jboss.cdi.tck.tests.event.observer.context.enterprise.staticMethod
Test archive name: 369fe9a5a4bc19d7d35b9b2eee1bf79af6bdb7
SessionBeanStaticObserverMethodInvocationContextTest.testTransactionalObserverMethod()github
org.jboss.cdi.tck.tests.event.observer.context.enterprise
Test archive name: feb6f09658953f9712f554d7ff5a94359572b26b
SessionBeanObserverMethodInvocationContextTest.testTransactionalObserverMethod()github
org.jboss.cdi.tck.tests.event.observer.context
Test archive name: 69a844f33914d7e3a2dd43ebe1f82bd5d137f6b0
ObserverMethodInvocationContextTest.testTransactionalObserverMethod()github

#### Section 11 - Portable extensions [spi]

a)

A portable extension may integrate with the container by providing its own beans, interceptors and decorators to the container.

b)

A portable extension may integrate with the container by injecting dependencies into its own objects using the dependency injection service.

c)

A portable extension may integrate with the container by providing a context implementation for a custom scope.

f)

Augmenting or overriding the annotation-based metadata with metadata from some other source.

#### Section 11.1 - The Bean interface [bean]

The BeanAttributes interface exposes the basic attributes of a bean.

ba)

getTypes(), getQualifiers(), getScope(), getName() and getStereotypes() must return the bean types, qualifiers, scope type, EL name and stereotypes of the bean, as defined in Chapter 2, Concepts.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testQualifiersNonEmpty()github
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testHasScopeType()github
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testBeanTypes()github
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testGenericBeanTypes()github
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testRawBeanTypes()github
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testMultipleStereotypes()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.broken.invalid
Test archive name: 8ee18556d65191ae477d5a17b42d1e711f613
InvalidStereotypeTest.test()github
Test archive name: 825c496791e2ed3d24b4b456df7e84ff246fe97
InvalidQualifierTest.test()github
Test archive name: b2c57bf4a4e2ac6693814ec8faa29871225bc3
InvalidTypesTest.test()github
Test archive name: c77d70689c902e918b253424bcfb12b8e416d22
InvalidScopeTest.test()github
bc)

isAlternative() must return true if the bean is an alternative, and false otherwise.

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testIsAlternative()github

The interface jakarta.enterprise.inject.spi.Bean defines everything the container needs to manage instances of a certain bean.

bb)

getBeanClass() returns the bean class of the managed bean or of the bean that declares the producer method or field.

Coverage

org.jboss.cdi.tck.tests.definition.bean
Test archive name: 1d55fb97c48993d6d4d380954caba093af6a92c
BeanDefinitionTest.testBeanClassOnSimpleBean()github
c)

getInjectionPoints() returns a set of InjectionPoint objects, defined in Section 5.5.7, "Injection point metadata", representing injection points of the bean, that will be validated by the container at initialization time.

Coverage

org.jboss.cdi.tck.tests.definition.qualifier.builtin
Test archive name: 3b6f6d3c24b8df1de31af68abfaec498cf621b34
BuiltInQualifierDefinitionTest.testDefaultQualifierForInjectionPoint()github
bd)

isNullable() is deprecated in CDI 1.1 and should be ignored by the container.

aa)

Implementations of Bean must also implement the inherited operations defined by the Contextual interface defined in Section 6.1, "The Contextual interface".

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: d67bcedb76556c373b327fe17d9e7e6f6b28dd2
DestroyedInstanceReturnedByGetTest.testDestroyedInstanceMustNotBeReturnedByGet()github
org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testContextIsActiveWhenInvokingDisposalMethod()github
f)

An instance of Bean exists for every enabled bean.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd
Test archive name: 78a95995feec70a6c0d8cc5fa81911bb2d5bb
DeploymentTest.testOnlyEnabledBeansDeployed()github
g)

A portable extension may add support for new kinds of beans beyond those defined by the this specification (managed beans, session beans, producer methods, producer fields and resources) by implementing Bean and registering beans with the container, using the mechanism defined in Section 11.5.2, "AfterBeanDiscovery event".

#### Section 11.1.1 - The Decorator interface [decorator]

a)

The Bean object for a decorator must implement the interface jakarta.enterprise.inject.spi.Decorator.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratorIsManagedBean()github
b)

getDecoratedTypes() returns the decorated types of the decorator.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratedTypes()github
c)

getDelegateType() and getDelegateQualifiers() return the delegate type and qualifiers of the decorator.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDelegateInjectionPoint()github
d)

An instance of Decorator exists for every enabled decorator.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testInstanceOfDecoratorForEachEnabled()github

#### Section 11.1.2 - The Interceptor interface [interceptor]

a)

The Bean object for an interceptor must implement jakarta.enterprise.inject.spi.Interceptor.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testInterceptorsImplementInterceptorInterface()github
b)

getInterceptorBindings() returns the interceptor bindings of the interceptor.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testInterceptorBindingTypes()github
c)

intercepts() returns true if the interceptor intercepts the specified kind of lifecycle callback or method invocation, and false otherwise.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testInterceptionType()github
d)

intercept() invokes the specified kind of lifecycle callback or method invocation interception upon the given instance of the interceptor.

Coverage

org.jboss.cdi.tck.tests.extensions.interceptors.custom
Test archive name: 4acd17f1322ec63a1e831d33199e93ce2f319
CustomInterceptorInvocationTest.testCustomInterceptorInvocation()github
e)

An InterceptionType identifies the kind of lifecycle callback or business method.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testInterceptionType()github
f)

An instance of Interceptor exists for every enabled interceptor.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testInstanceOfInterceptorForEveryEnabledInterceptor()github

#### Section 11.1.3 - The ObserverMethod interface [observer_method]

a)

The interface jakarta.enterprise.inject.spi.ObserverMethod defines everything the container needs to know about an observer method.

b)

getBeanClass() returns the bean class of the bean that declares the observer method.

Coverage

org.jboss.cdi.tck.tests.event.observer.method
Test archive name: be4f43bb488e82e4f335428883e8119c14319e
ObserverMethodTest.testGetBeanClassOnObserverMethod()github
c)

getObservedType() and getObservedQualifiers() return the observed event type and qualifiers.

Coverage

org.jboss.cdi.tck.tests.event.observer.method
Test archive name: be4f43bb488e82e4f335428883e8119c14319e
ObserverMethodTest.testGetObservedTypeOnObserverMethod()github
Test archive name: be4f43bb488e82e4f335428883e8119c14319e
ObserverMethodTest.testGetObservedQualifiersOnObserverMethod()github
d)

getReception() returns IF_EXISTS for a conditional observer and ALWAYS otherwise.

Coverage

org.jboss.cdi.tck.tests.event.observer.method
Test archive name: be4f43bb488e82e4f335428883e8119c14319e
ObserverMethodTest.testGetNotifyOnObserverMethod()github
e)

getTransactionPhase() returns the appropriate transaction phase for a transactional observer method or IN_PROGRESS otherwise.

Coverage

org.jboss.cdi.tck.tests.event.observer.method
Test archive name: be4f43bb488e82e4f335428883e8119c14319e
ObserverMethodTest.testGetTransactionPhaseOnObserverMethod()github
ea)

getPriority() returns the priority that will be used by the container to determine the notification order.

Coverage

org.jboss.cdi.tck.tests.event.observer.priority
Test archive name: 14116a1dc8f63a69baa44b4ac46cae9dcef265
EventObserverOrderingTest.testDefaultPriority()github
Test archive name: 14116a1dc8f63a69baa44b4ac46cae9dcef265
EventObserverOrderingTest.testProcessObserverMethodPriority()github
f)

notify() calls the observer method, as defined in Section 5.5.6 "Invocation of observer methods".

Coverage

org.jboss.cdi.tck.tests.event.observer.method
Test archive name: be4f43bb488e82e4f335428883e8119c14319e
ObserverMethodTest.testNotifyOnObserverMethod()github
g)

isAsync() returns true if the method is an asynchronous observer method otherwise returns false

Coverage

org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testAsyncObserver()github
ga)

An instance of ObserverMethod exists for every observer method of every enabled bean.

Coverage

org.jboss.cdi.tck.tests.event.observer.method
Test archive name: be4f43bb488e82e4f335428883e8119c14319e
ObserverMethodTest.testInstanceOfBeanForEveryEnabledObserverMethod()github

#### Section 11.2 - The Producer and InjectionTarget interfaces [injectiontarget]

a)

The interface jakarta.enterprise.inject.spi.Producer provides a generic operation for producing an instance of a type.

For a Producer that represents a class, produce() calls the constructor annotated @Inject if it exists, or the constructor with no parameters otherwise, as defined in Section 5.5.1, "Injection using the bean constructor". and returns the resulting instance. If the class has interceptors, produce() is responsible for building the interceptors and decorators of the instance.

ba)

Test field injection occurs

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceAndInjectCallsInitializerAndConstructor()github
bb)

Test initializer methods called

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceAndInjectCallsInitializerAndConstructor()github
bc)

Test constructor injected

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceAndInjectCallsInitializerAndConstructor()github
bd)

Test decorator stack built

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testInterceptorAndDecoratorStackBuilt()github
be)

Test interceptor stack built

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testInterceptorAndDecoratorStackBuilt()github
c)

For a Producer that represents a class, dispose() does nothing.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testDisposeDoesNothing()github

For a Producer that represents a class, getInjectionPoints() returns a set of InjectionPoint objects representing all injected fields, bean constructor parameters and initializer method parameters.

da)

Test injected fields.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testGetInjectionPointsForFields()github
db)

Test bean constructor parameters.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testGetInjectionPointsForConstructorAndInitializer()github
dc)

Test initializer method parameters.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testGetInjectionPointsForConstructorAndInitializer()github

For a Producer that represents a producer method or field, produce() calls the producer method on, or accesses the producer field of, a contextual instance of the bean that declares the producer method, as defined in Section 5.5.4, "Invocation of producer or disposer methods".

eaa)

Test with producer method.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceCallsProducerMethod()github
eba)

Test with producer field.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceAccessesProducerField()github

For a Producer that represents a producer method or field, dispose() calls the disposer method, if any, on a contextual instance of the bean that declares the disposer method, as defined in Section 5.5.4, "Invocation of producer or disposer methods", or performs any additional required cleanup, if any, to destroy state associated with a resource.

faa)

Test with producer method.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProducerForMethodDisposesProduct()github
g)

For a Producer that represents a producer method, getInjectionPoints() returns the set of InjectionPoint objects representing all parameters of the producer method.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testInjectionPointsForProducerMethod()github
h)

The subinterface jakarta.enterprise.inject.spi.InjectionTarget provides operations for performing dependency injection and lifecycle callbacks on an instance of a type.

i)

inject() performs dependency injection upon the given object. The container sets the value of all injected fields, and calls all initializer methods, as defined in Section 5.5.2, “Injection of fields and initializer methods”.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testInjectionTargetInject()github
j)

postConstruct() calls the @PostConstruct callback, if it exists.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testInjectionTargetPostConstruct()github
k)

preDestroy() calls the @PreDestroy callback, if it exists.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testInjectionTargetPreDestroy()github
l)

Implementations of Producer and InjectionTarget must ensure that the set of injection points returned by getInjectionPoints() are injected by produce() or inject().

#### Section 11.3 - The BeanManager object [beanmanager]

The container provides a built-in bean with bean type BeanManager, scope @Dependent and qualifier @Default.

aa)

Test the bean type.

Coverage

org.jboss.cdi.tck.tests.lookup.manager
Test archive name: 89e3fe45729d8d9b09162b8bf3489955816b4c
ManagerTest.testContainerProvidesManagerBean()github
ab)

Test the scope.

Coverage

org.jboss.cdi.tck.tests.lookup.manager
Test archive name: 89e3fe45729d8d9b09162b8bf3489955816b4c
ManagerTest.testManagerBeanIsDependentScoped()github
ac)

Test the qualifier.

Coverage

org.jboss.cdi.tck.tests.lookup.manager
Test archive name: 89e3fe45729d8d9b09162b8bf3489955816b4c
ManagerTest.testManagerBeanHasCurrentBinding()github

Exception is thrown if the following operations are called before the AfterBeanDiscovery event is fired:

ad)

Test getBeans(String)

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bootstrap.unavailable.methods
Test archive name: f82714bc9a7ce44c2987fbcc294cb978468864a6
UnavailableMethodsDuringApplicationInitializationTest.testUnavailableMethods()github
ae)

Test getBeans(Type, Annotation...)

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bootstrap.unavailable.methods
Test archive name: f82714bc9a7ce44c2987fbcc294cb978468864a6
UnavailableMethodsDuringApplicationInitializationTest.testUnavailableMethods()github
af)

Test getPassivationCapableBean(String)

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bootstrap.unavailable.methods
Test archive name: f82714bc9a7ce44c2987fbcc294cb978468864a6
UnavailableMethodsDuringApplicationInitializationTest.testUnavailableMethods()github
ag)

Test resolve(Set)

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bootstrap.unavailable.methods
Test archive name: f82714bc9a7ce44c2987fbcc294cb978468864a6
UnavailableMethodsDuringApplicationInitializationTest.testUnavailableMethods()github
ah)

Test resolveDecorators(Set, Annotation...)

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bootstrap.unavailable.methods
Test archive name: f82714bc9a7ce44c2987fbcc294cb978468864a6
UnavailableMethodsDuringApplicationInitializationTest.testUnavailableMethods()github
ai)

Test resolveInterceptors(InterceptionType, Annotation...)

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bootstrap.unavailable.methods
Test archive name: f82714bc9a7ce44c2987fbcc294cb978468864a6
UnavailableMethodsDuringApplicationInitializationTest.testUnavailableMethods()github
aj)

Test resolveObserverMethods(Object, Annotation...)

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bootstrap.unavailable.methods
Test archive name: f82714bc9a7ce44c2987fbcc294cb978468864a6
UnavailableMethodsDuringApplicationInitializationTest.testUnavailableMethods()github
ak)

Test validate(InjectionPoint)

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bootstrap.unavailable.methods
Test archive name: f82714bc9a7ce44c2987fbcc294cb978468864a6
UnavailableMethodsDuringApplicationInitializationTest.testUnavailableMethods()github

Exception is thrown if the following operations are called before the {@Link AfterDeploymentValidation} event is fired:

al)

Test createInstance()

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bootstrap.unavailable.methods
Test archive name: f82714bc9a7ce44c2987fbcc294cb978468864a6
UnavailableMethodsDuringApplicationInitializationTest.testUnavailableMethods()github
am)

Test getReference(Bean, Type, CreationalContext)

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bootstrap.unavailable.methods
Test archive name: f82714bc9a7ce44c2987fbcc294cb978468864a6
UnavailableMethodsDuringApplicationInitializationTest.testUnavailableMethods()github
an)

Test getInjectableReference(InjectionPoint, CreationalContext)

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bootstrap.unavailable.methods
Test archive name: f82714bc9a7ce44c2987fbcc294cb978468864a6
UnavailableMethodsDuringApplicationInitializationTest.testUnavailableMethods()github
b)

The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".

Coverage

org.jboss.cdi.tck.tests.lookup.manager
Test archive name: 89e3fe45729d8d9b09162b8bf3489955816b4c
ManagerTest.testManagerBeanIsPassivationCapable()github
c)

Any bean may obtain an instance of BeanManager by injecting it.

Coverage

org.jboss.cdi.tck.tests.lookup.manager
Test archive name: 89e3fe45729d8d9b09162b8bf3489955816b4c
ManagerTest.testInjectingManager()github
e)

Any operation of BeanManager may be called at any time during the execution of the application.

#### Section 11.3.1 - Obtaining a reference to the CDI container [provider]

A portable extension or other object may obtain a reference to the current container by calling CDI.current(). CDI.getBeanManager() may be called at any time after the container fires the BeforeBeanDiscovery container lifecycle event until the container fires the BeforeShutdown container lifecycle event. Other methods on CDI may be called after the application initialization is completed until the application shutdown starts.

aa)

Test CDI.getBeanManager() is called before the application initialization is completed.

Coverage

org.jboss.cdi.tck.tests.lookup.manager.provider.init
Test archive name: 775e1baba67d80836b431bf4b4161080f765b0b7
CDIProviderInitTest.testAccessingBeanManager()github
ab)

Test CDI.getBeanManager() is called after the application initialization is completed.

Coverage

org.jboss.cdi.tck.tests.lookup.manager.provider.runtime
Test archive name: 23f5c5a315b63e8f1afb0c05aa374d84f46d02b
CDIProviderRuntimeTest.testGetBeanManager()github
ac)

Test lookup of bean instances after the application initialization is completed.

Coverage

org.jboss.cdi.tck.tests.lookup.manager.provider.runtime
Test archive name: 23f5c5a315b63e8f1afb0c05aa374d84f46d02b
CDIProviderRuntimeTest.testLookup()github
b)

CDI implements jakarta.enterprise.inject.Instance and therefore might be used to perform programmatic lookup as defined in "The Instance interface". If no qualifier is passed to CDI.select() method, the @Default qualifier is assumed.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.cdiSelectLookup()github
c)

When CDI.current() is called, getCDI() method is called on jakarta.enterprise.inject.spi.CDIProvider.

Coverage

org.jboss.cdi.tck.tests.se.customCDIProvider
Test archive name: d637844d7e384fccd94e19a4edb3e46eeaaf41d
CustomCDIProviderTest.testCustomCDIProvider()github

The CDIProvider to use may be set by the application or container using the setCDIProvider() method. If the setCDIProvider() has not been called, the service provider with highest priority of the service jakarta.enterprise.inject.spi.CDIProvider declared in META-INF/services is used. The order of more than one CDIProvider with the same priority is undefined.. If no provider is available an IllegalStateException is thrown.

da)

Test using CDIProvider set by the application.

Coverage

org.jboss.cdi.tck.tests.se.customCDIProvider
Test archive name: d637844d7e384fccd94e19a4edb3e46eeaaf41d
CustomCDIProviderTest.testCustomCDIProvider()github

#### Section 11.3.2 - Obtaining a contextual reference for a bean [bm_obtain_contextual_reference]

a)

The method BeanManager.getReference() returns a contextual reference for a given bean and bean type, as defined in Section 6.5.3, "Contextual reference for a bean".

Coverage

org.jboss.cdi.tck.tests.lookup.manager
Test archive name: 89e3fe45729d8d9b09162b8bf3489955816b4c
ManagerTest.testGetReferenceReturnsContextualInstance()github
b)

The first parameter is the Bean object representing the bean. The second parameter represents the bean type that must be implemented by any client proxy that is returned. The third parameter is an instance of CreationalContext that may be used to destroy any object with scope @Dependent that is created.

Coverage

org.jboss.cdi.tck.tests.lookup.manager
Test archive name: 89e3fe45729d8d9b09162b8bf3489955816b4c
ManagerTest.testGetReferenceReturnsContextualInstance()github
c)

If the given type is not a bean type of the given bean, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.lookup.manager
Test archive name: 89e3fe45729d8d9b09162b8bf3489955816b4c
ManagerTest.testGetReferenceWithIllegalBeanType()github

#### Section 11.3.3 - Obtaining an injectable reference [bm_obtain_injectable_reference]

a)

The method BeanManager.getInjectableReference() returns an injectable reference for a given injection point, as defined in Section 6.5.5, "Injectable references".

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: e05ac82e36cb7191fd256479e46a0e552c732
InjectableReferenceTest.testGetInjectableReferenceOnBeanManager()github
ab)

The first parameter represents the target injection point. The second parameter is an instance of CreationalContext that may be used to destroy any object with scope @Dependent that is created.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: e05ac82e36cb7191fd256479e46a0e552c732
InjectableReferenceTest.testGetInjectableReferenceOnBeanManager()github
b)

If the InjectionPoint represents a decorator delegate injection point, getInjectableReference() returns a delegate, as defined in Section 8.1.2, "Decorator delegate injection points".

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: e05ac82e36cb7191fd256479e46a0e552c732
InjectableReferenceTest.testGetInjectableReferenceReturnsDelegateForDelegateInjectionPoint()github
bb)

If typesafe resolution results in an unsatisfied dependency, the container must throw an UnsatisfiedResolutionException.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.broken.reference.unresolved
Test archive name: b4f9c4894b451108d1fd497c8aa2bc3c85deb4
UnsatisfiedInjectableReferenceTest.testUnsatisfiedReference()github
bc)

If typesafe resolution results in an unresolvable ambiguous dependency, the container must throw an AmbiguousResolutionException.

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint.broken.reference.ambiguous
Test archive name: b66f6bb2e995fc78d25226892afb6e91dbfbbf17
AmbiguousInjectableReferenceTest.testUnsatisfiedReference()github
c)

Implementations of Bean usually maintain a reference to an instance of BeanManager. When the Bean implementation performs dependency injection, it must obtain the contextual instances to inject by calling BeanManager.getInjectableReference(), passing an instance of InjectionPoint that represents the injection point and the instance of CreationalContext that was passed to Bean.create().

Coverage

No tests exist for this assertion

#### Section 11.3.4 - Obtaining non-contextual instance [bm_obtain_unmanaged_instance]

A helper class, Unmanaged provides a set of methods optimized for working with unmanaged instances.

a)

Test creating an injector for the given class, using the current bean manager.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged
Test archive name: 63e4dbeeac4b942c569d5e9c2297ad63b791e6
UnmanagedInstanceTest.testObtainNonContextualInstanceUsingCurrentBeanManager()github
b)

Test creating an injector for the given class.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged
Test archive name: 63e4dbeeac4b942c569d5e9c2297ad63b791e6
UnmanagedInstanceTest.testObtainNonContextualInstance()github

UnmanagedInstance methods throws IllegalStateException in following cases:

The following assertion is not made explicitly by the spec, however it is implied c)

produce() is called on an already produced instance.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged.broken
Test archive name: 26cf89f2e65b93a15da265a49524aa8fa88a7a54
UnamangedInstanceIllegalStatesTest.produceCalledOnAlreadyProducedInstance()github
The following assertion is not made explicitly by the spec, however it is implied d)

produce() is called on an instance that has already been disposed

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged.broken
Test archive name: 26cf89f2e65b93a15da265a49524aa8fa88a7a54
UnamangedInstanceIllegalStatesTest.produceCalledOnAlreadyDisposedInstance()github
The following assertion is not made explicitly by the spec, however it is implied e)

inject() is called before produce() is called

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged.broken
Test archive name: 26cf89f2e65b93a15da265a49524aa8fa88a7a54
UnamangedInstanceIllegalStatesTest.injectCallBeforeProduce()github
The following assertion is not made explicitly by the spec, however it is implied f)

inject() is called on an instance that has already been disposed

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged.broken
Test archive name: 26cf89f2e65b93a15da265a49524aa8fa88a7a54
UnamangedInstanceIllegalStatesTest.injectCalledOnAlreadyDisposedInstance()github
The following assertion is not made explicitly by the spec, however it is implied g)

postConstruct() is called before produce() is called

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged.broken
Test archive name: 26cf89f2e65b93a15da265a49524aa8fa88a7a54
UnamangedInstanceIllegalStatesTest.posConstructCallBeforeProduce()github
The following assertion is not made explicitly by the spec, however it is implied h)

postConstruct() is called on an instance that has already been disposed

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged.broken
Test archive name: 26cf89f2e65b93a15da265a49524aa8fa88a7a54
UnamangedInstanceIllegalStatesTest.postConstructCalledOnAlreadyDisposedInstance()github
The following assertion is not made explicitly by the spec, however it is implied i)

preDestroy() is called before produce() is called

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged.broken
Test archive name: 26cf89f2e65b93a15da265a49524aa8fa88a7a54
UnamangedInstanceIllegalStatesTest.preDestroyCallBeforeProduce()github
The following assertion is not made explicitly by the spec, however it is implied j)

preDestroy() is called on an instance that has already been disposed

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged.broken
Test archive name: 26cf89f2e65b93a15da265a49524aa8fa88a7a54
UnamangedInstanceIllegalStatesTest.preDeStroyCalledOnAlreadyDisposedInstance()github
The following assertion is not made explicitly by the spec, however it is implied k)

dispose() is called before produce() is called

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged.broken
Test archive name: 26cf89f2e65b93a15da265a49524aa8fa88a7a54
UnamangedInstanceIllegalStatesTest.disposeCallBeforeProduce()github
The following assertion is not made explicitly by the spec, however it is implied l)

dispose() is called on an instance that has already been disposed

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged.broken
Test archive name: 26cf89f2e65b93a15da265a49524aa8fa88a7a54
UnamangedInstanceIllegalStatesTest.disposeCalledOnAlreadyDisposedInstance()github

#### Section 11.3.5 - Obtaining a CreationalContext [bm_obtain_creationalcontext]

a)

An instance of CreationalContext for a certain instance of Contextual may be obtained by calling BeanManager.createCreationalContext().

Coverage

org.jboss.cdi.tck.tests.lookup.injectionpoint
Test archive name: e05ac82e36cb7191fd256479e46a0e552c732
InjectableReferenceTest.testGetInjectableReferenceOnBeanManager()github
b)

An instance of CreationalContext for a non-contextual object may be obtained by passing a null value to createCreationalContext().

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: 6517f1fd91c37aba0b362d98442e3225b221f15
CreationalContextForNonContextualTest.testCreationalContext()github

#### Section 11.3.6 - Obtaining a Bean by type [bm_obtain_bean_by_type]

The method BeanManager.getBeans() returns the set of beans which have the given required type and qualifiers and are available for injection in the module or library containing the class into which the BeanManager was injected or or the class from whose JNDI environment namespace the BeanManager was obtained, according to the rules for candidates of typesafe resolution defined in Section 5.2.1, “Performing typesafe resolution”.

aa)

Test simple scenario.

Coverage

org.jboss.cdi.tck.tests.extensions.bean.bytype
Test archive name: 1dd21171d16872de7e493453a73f12e4f3e77e
BeanByTypeTest.testGetBeans()github
The following assertion is not made explicitly by the spec, however it is implied ab)

Test alternatives are not filtered.

Coverage

org.jboss.cdi.tck.tests.extensions.bean.bytype
Test archive name: 1dd21171d16872de7e493453a73f12e4f3e77e
BeanByTypeTest.testGetBeansDoesNotResolveAlternatives()github
b)

The first parameter is a required bean type. The remaining parameters are required qualifiers.

Coverage

org.jboss.cdi.tck.tests.extensions.bean.bytype
Test archive name: 1dd21171d16872de7e493453a73f12e4f3e77e
BeanByTypeTest.testGetBeans()github
c)

If no qualifiers are passed to getBeans(), the default qualifier @Default is assumed.

Coverage

org.jboss.cdi.tck.tests.extensions.bean.bytype
Test archive name: 1dd21171d16872de7e493453a73f12e4f3e77e
BeanByTypeTest.testNoBindingImpliesCurrent()github
da)

If the given type represents a type variable, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.bean.bytype
Test archive name: 1dd21171d16872de7e493453a73f12e4f3e77e
BeanByTypeTest.testTypeVariable()github
e)

If two instances of the same non repeating qualifier type are given, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.bean.bytype
Test archive name: 1dd21171d16872de7e493453a73f12e4f3e77e
BeanByTypeTest.testSameBindingTwice()github
f)

If an instance of an annotation that is not a qualifier type is given, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.bean.bytype
Test archive name: 1dd21171d16872de7e493453a73f12e4f3e77e
BeanByTypeTest.testNonBindingType()github

#### Section 11.3.7 - Obtaining a Bean by name [bm_obtain_bean_by_name]

aa)

The method BeanManager.getBeans() which accepts a string returns the set of beans which have the given bean name and are available for injection in the module or library containing the class into which the BeanManager was injected or the class from whose JNDI environment namespace the BeanManager was obtained, according to the rules of name resolution defined in Section 5.3, "Name resolution".

Coverage

org.jboss.cdi.tck.tests.lookup.byname
Test archive name: fa98ae886924f427d98e271ce11b3cd0343ca7
ResolutionByNameTest.testAmbiguousELNamesResolved()github
b)

The parameter is a bean name.

Coverage

org.jboss.cdi.tck.tests.lookup.byname
Test archive name: fa98ae886924f427d98e271ce11b3cd0343ca7
ResolutionByNameTest.testAmbiguousELNamesResolved()github

#### Section 11.3.8 - Obtaining a passivation capable bean by identifier [bm_obtain_passivation_capable_bean]

a)

The method BeanManager.getPassivationCapableBean() returns the PassivationCapable bean with the given identifier (see Section 6.6.1, "Passivation capable beans").

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: a551e1e04de75310ed304749ee1212c5ee63833
PassivationIdTest.testGetPassivationCapableBeanById()github

#### Section 11.3.9 - Resolving an ambiguous dependency [bm_resolve_ambiguous_dep]

a)

The method BeanManager.resolve() applies the ambiguous dependency resolution rules defined in Section 5.2.1, "Unsatisfied and ambiguous dependencies" to a set of Beans.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testAmbiguousDependencyResolved()github
b)

If the ambiguous dependency resolution rules fail, the container must throw an AmbiguousResolutionException.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testAmbiguousDependencyNotResolved()github

The method BeanManager.resolve() must return null, if:

c)

null is passed to resolve(),

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testResolveWithNull()github
d)

no beans are passed to resolve(),

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testResolveWithEmptySet()github

#### Section 11.3.10 - Validating an injection point [bm_validate_ip]

a)

The BeanManager.validate() operation validates an injection point and throws an InjectionException if there is a deployment problem (for example, an unsatisfied or unresolvable ambiguous dependency) associated with the injection point.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testValidateThrowsException()github

#### Section 11.3.11 - Firing an event [bm_fire_event]

a)

The method BeanManager.fireEvent() fires an event and notifies observers, according to Section 10.5, "Observer notification".

Coverage

org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testBeanManagerFireEvent()github
b)

The first argument is the event object. The remaining parameters are event qualifiers.

Coverage

org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testBeanManagerFireEvent()github
c)

If the runtime type of the event object contains a type variable, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testTypeVariableEventTypeFails()github
d)

If two instances of the same non repeating qualifier type are given, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.event.fires
Test archive name: 9970f9b1b27d3ceadabc4c9b24e35b245873897
FireEventTest.testDuplicateBindingsToFireEventFails()github
e)

If an instance of an annotation that is not a qualifier type is given, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.event.fires.nonbinding
Test archive name: 866f9b40149f85435351f8dfc5b353ee40f08a6b
NonBindingTypePassedToFireTest.testExceptionThrownIfNonBindingTypePassedToFire()github
f)

If the runtime type of the event object is assignable to the type of a container lifecycle event, IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.broken.event
Test archive name: 5bc1981f5494cf791e2abb9a1df5627d3c4145
FireContainerLifecycleEventTest.testFireContainerLifecycleEvent()github

#### Section 11.3.12 - Observer method resolution [bm_observer_method_resolution]

a)

The method BeanManager.resolveObserverMethods() resolves observer methods for an event according to the rules of observer resolution defined in Section 10.4, "Observer resolution".

Coverage

org.jboss.cdi.tck.tests.event.resolve.typeWithParameters
Test archive name: a1b082ec38bee736904e8e5cef262948af58d3a7
CheckTypeParametersWhenResolvingObserversTest.testResolvingChecksTypeParameters()github
org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testBeanManagerResolveObserversSignature()github
b)

The first parameter of resolveObserverMethods() is the event object. The remaining parameters are event qualifiers.

Coverage

org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testBeanManagerResolveObserversSignature()github
c)

If the runtime type of the event object contains a type variable, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.event
Test archive name: a1fb883ebca2056e082fa5959b6421875e135b2
EventTest.testEventObjectContainsTypeVariablesWhenResolvingFails()github
d)

If two instances of the same non repeating qualifier type are given, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.event.resolve.binding
Test archive name: f6b1e6bbc5cf2ea61692f91bcc75f47a7629e22b
DuplicateBindingTypesWhenResolvingTest.testDuplicateBindingTypesWhenResolvingFails()github
e)

If an instance of an annotation that is not a qualifier type is given, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testBeanManagerResolveObserversWithIllegalQualifier()github

#### Section 11.3.13 - Decorator resolution [bm_decorator_resolution]

a)

The method BeanManager.resolveDecorators() returns the ordered list of decorators for a set of bean types and a set of qualifiers which are enabled in the module or library containing the class into which the BeanManager was injected or the class from whose JNDI environment namespace the BeanManager was obtained, as defined in Section 8.3, "Decorator resolution".

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratedTypes()github
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratorOrdering()github
b)

The first argument is the set of bean types of the decorated bean. The annotations are qualifiers declared by the decorated bean.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratedTypes()github
c)

If two instances of the same non repeating qualifier type are given, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDuplicateBindingsOnResolveDecoratorsFails()github
d)

If an instance of an annotation that is not a qualifier type is given, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testNonBindingsOnResolveDecoratorsFails()github
e)

If the set of bean types is empty, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testEmptyTypeSetOnResolveDecoratorsFails()github
org.jboss.cdi.tck.tests.event.resolve.nonbinding
Test archive name: f229772d6f15daf7808793cfdaa837fef208439
NonBindingTypesWhenResolvingTest.testNonBindingTypeAnnotationWhenResolvingFails()github

#### Section 11.3.14 - Interceptor resolution [bm_interceptor_resolution]

a)

The method BeanManager.resolveInterceptors() returns the ordered list of interceptors for a set of interceptor bindings and a type of interception which are enabled in the module or library containing the class into which the BeanManager was injected or the class from whose JNDI environment namespace the BeanManager was obtained, as defined in Section 9.5, "Interceptor resolution".

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testResolveInterceptorsReturnsOrderedList()github
b)

If two instances of the same non repeating interceptor binding type are given, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testSameBindingTypesToResolveInterceptorsFails()github
c)

If no interceptor binding type instance is given, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testNoBindingTypesToResolveInterceptorsFails()github
d)

If an instance of an annotation that is not an interceptor binding type is given, an IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testNonBindingTypeToResolveInterceptorsFails()github

#### Section 11.3.15 - Determining if an annotation is a qualifier type, scope type, stereotype or interceptor binding type [bm_determining_annotation]

A portable extension may test an annotation to determine if it is a qualifier type, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or determine if a scope type is a normal or passivating scope.

aa)

Test qualifier type.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testDetermineQualifierType()github
ab)

Test scope type.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testDetermineScope()github
ac)

Test stereotype.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testDetermineStereotype()github
ad)

Test interceptor binding type.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testDetermineInterceptorBindingType()github
ae)

Test meta-annotations for stereotype.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testGetMetaAnnotationsForStereotype()github
af)

Test meta-annotations for interceptor binding type.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testGetMetaAnnotationsForInterceptorBindingType()github
ag)

Test obtaining a ScopeType.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testDetermineScopeType()github

#### Section 11.3.16 - Determining the hash code and equivalence of qualifiers and interceptor bindings [bm_determining_hash]

A portable extension may determine if two qualifiers or two interceptor bindings are considered equivalent for the purposes of typesafe resolution, as defined in Section 5.2.1, "Performing typesafe resolution".

a)

Test equivalence of qualifiers using BeanManager.areQualifiersEquivalent().

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.equivalence.qualifier
Test archive name: 1fa4a5d87ef0fc19d434a10aa91ce96dd816a1f
QualifierEquivalenceTest.testAreQualifiersEquivalent()github
b)

Test equivalence of interceptor bindings using BeanManager.areInterceptorBindingsEquivalent().

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.equivalence.interceptorbinding
Test archive name: f1348649c9873b898f8c8365ef4fdbeceaa41bc
InterceptorBindingEquivalenceTest.testAreInterceptorBindingsEquivalent()github

A portable extension may determine the hash code of a qualifier or and interceptor binding, ignoring any members annotated with @Nonbinding.

c)

Determine the hash code of a qualifier using BeanManager.getQualifierHashCode().

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.equivalence.qualifier
Test archive name: 1fa4a5d87ef0fc19d434a10aa91ce96dd816a1f
QualifierEquivalenceTest.testGetQualifierHashCode()github
d)

Determine the hash code of an interceptor binding using BeanManager.getInterceptorBindingHashCode().

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.equivalence.interceptorbinding
Test archive name: f1348649c9873b898f8c8365ef4fdbeceaa41bc
InterceptorBindingEquivalenceTest.testGetInterceptorBindingHashCode()github

#### Section 11.3.17 - Obtaining the active Context for a scope [bm_obtain_active_context]

a)

The method BeanManager.getContext() retrieves an active context object associated with the a given scope, as defined in Section 6.5.1, "The active context object for a scope".

Coverage

org.jboss.cdi.tck.tests.context
Test archive name: e1f37e12834f0f7a056c88ecde97ed1d85f35
ContextTest.testBuiltInContexts()github

#### Section 11.3.18 - Obtaining the ELResolver [bm_obtain_elresolver]

a)

The method BeanManager.getELResolver() returns the jakarta.el.ELResolver specified in Section 12.4, "Integration with Unified EL".

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testGetELResolver()github

#### Section 11.3.19 - Obtaining an AnnotatedType for a class [bm_obtain_annotatedtype]

a)

The method BeanManager.createAnnotatedType() returns an AnnotatedType that may be used to read the annotations of a given Java class or interface.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testObtainingAnnotatedType()github

#### Section 11.3.20 - Obtaining an InjectionTarget for a class [bm_obtain_injectiontarget]

The method BeanManager.createInjectionTarget() returns a container provided implementation of InjectionTarget for a given AnnotatedType or throws an IllegalArgumentException if there is a definition error associated with any injection point of the type.

aa)

Check InjectionTarget is provided.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testObtainingInjectionTarget()github
ab)

Check IllegalArgumentException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testObtainingInjectionTargetWithDefinitionError()github
b)

configure() method returns an AnnotatedTypeConfigurator as defined in AnnotatedTypeConfigurator SPI to configure the AnnotatedType used to create the InjectionTargetFactory. Subsequent invocations of the configure() method within one InjectionTargetFactory instance will always return the same AnnotatedTypeConfigurator instance.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.injectionTargetFactory
Test archive name: cf443b015fc531b7cce7649285a29405be0fa
InjectionTargetFactoryConfigureTest.testInjectionTargetFactoryConfigure()github
c)

Once createInjectionTarget() method has been invoked, any invocations of configure() throws an IllegalStateException.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.injectionTargetFactory
Test archive name: cf443b015fc531b7cce7649285a29405be0fa
InjectionTargetFactoryConfigureTest.testInjectionTargetFactoryConfigure()github

#### Section 11.3.21 - Obtaining a Producer for a field or method [bm_obtain_producer]

The method BeanManager.createProducer() returns a container provided implementation of Producer for a given AnnotatedMethod or AnnotatedField or throws an IllegalArgumentException if there is a definition error associated with the producer method or field.

a)

Test that the method BeanManager.createProducer() returns a container provided implementation of Producer for a given AnnotatedMethod.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.producer
Test archive name: 9c773d20f65a35f165f77a8ceae07e4043a3fb3f
SyntheticProducerTest.testStaticProducerMethod()github
Test archive name: 9c773d20f65a35f165f77a8ceae07e4043a3fb3f
SyntheticProducerTest.testNonStaticProducerMethod()github
b)

Test that the method BeanManager.createProducer() returns a container provided implementation of Producer for a given AnnotatedField.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.producer
Test archive name: 9c773d20f65a35f165f77a8ceae07e4043a3fb3f
SyntheticProducerTest.testStaticProducerField()github
Test archive name: 9c773d20f65a35f165f77a8ceae07e4043a3fb3f
SyntheticProducerTest.testNonStaticProducerField()github
c)

Test that the method BeanManager.createProducer() throws an IllegalArgumentException if there is a definition error associated with the producer method.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.producer
Test archive name: 9c773d20f65a35f165f77a8ceae07e4043a3fb3f
SyntheticProducerTest.testInvalidProducerMethod1()github
Test archive name: 9c773d20f65a35f165f77a8ceae07e4043a3fb3f
SyntheticProducerTest.testInvalidProducerMethod2()github
d)

Test that the method BeanManager.createProducer() throws an IllegalArgumentException if there is a definition error associated with the producer field.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.producer
Test archive name: 9c773d20f65a35f165f77a8ceae07e4043a3fb3f
SyntheticProducerTest.testInvalidProducerField1()github
Test archive name: 9c773d20f65a35f165f77a8ceae07e4043a3fb3f
SyntheticProducerTest.testInvalidProducerField2()github
Test archive name: 9c773d20f65a35f165f77a8ceae07e4043a3fb3f
SyntheticProducerTest.testInvalidProducerField3()github

#### Section 11.3.22 - Obtaining an InjectionPoint [bm_obtain_injectionpoint]

The method BeanManager.createInjectionPoint() returns a container provided implementation of InjectionPoint for a given AnnotatedField or AnnotatedParameter or throws an IllegalArgumentException if there is a definition error associated with the injection point.

a)

Test that the method BeanManager.createInjectionPoint() returns a container provided implementation of InjectionPoint for a given AnnotatedField.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.injectionPoint
Test archive name: 703136d4f063cf955f585263e89f21481ddfc257
CreateInjectionPointTest.testField()github
b)

Test that the method BeanManager.createInjectionPoint() returns a container provided implementation of InjectionPoint for a given AnnotatedParameter.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.injectionPoint
Test archive name: 703136d4f063cf955f585263e89f21481ddfc257
CreateInjectionPointTest.testConstructorParameter()github
Test archive name: 703136d4f063cf955f585263e89f21481ddfc257
CreateInjectionPointTest.testMethodParameter()github
c)

Test that the method BeanManager.createInjectionPoint() throws an IllegalArgumentException if there is a definition error associated with the injection point.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.injectionPoint
Test archive name: 703136d4f063cf955f585263e89f21481ddfc257
CreateInjectionPointTest.testInvalidField()github
Test archive name: 703136d4f063cf955f585263e89f21481ddfc257
CreateInjectionPointTest.testInvalidParameter()github

#### Section 11.3.23 - Obtaining a BeanAttributes [bm_obtain_beanattributes]

The method BeanManager.createBeanAttributes() returns a container provided implementation of BeanAttributes by reading the annotations of a given AnnotatedType or AnnotatedMember, according to the rules define in Chapter 2, Concepts, or throws an IllegalArgumentException if there is a definition error associated with the declared bean attributes.

a)

Test that the method BeanManager.createBeanAttributes() returns a container provided implementation of BeanAttributes by reading the annotations of a given AnnotatedType.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.synthetic
Test archive name: 64987b56ad65eddb67bc4c8db52dd1e9f1b23f4d
ProcessBeanAttributesNotFiredForSyntheticBeanTest.testProcessBeanAttributesNotFired()github
org.jboss.cdi.tck.tests.extensions.beanManager.beanAttributes
Test archive name: f68b786d82da5737ddb981ecbd742d5b4a4db5
CreateBeanAttributesTest.testBeanAttributesForManagedBean()github
Test archive name: f68b786d82da5737ddb981ecbd742d5b4a4db5
CreateBeanAttributesTest.testBeanAttributesForManagedBeanWithModifiedAnnotatedType()github
Test archive name: f68b786d82da5737ddb981ecbd742d5b4a4db5
CreateBeanAttributesTest.testBeanAttributesForSessionBean()github
b)

Test that the method BeanManager.createBeanAttributes() returns a container provided implementation of BeanAttributes by reading the annotations of a given AnnotatedMember.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.beanAttributes
Test archive name: f68b786d82da5737ddb981ecbd742d5b4a4db5
CreateBeanAttributesTest.testBeanAttributesForMethod()github
Test archive name: f68b786d82da5737ddb981ecbd742d5b4a4db5
CreateBeanAttributesTest.testBeanAttributesForField()github
c)

Test that the method BeanManager.createBeanAttributes() throws an IllegalArgumentException if there is a definition error associated with the declared bean attributes.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.beanAttributes
Test archive name: f68b786d82da5737ddb981ecbd742d5b4a4db5
CreateBeanAttributesTest.testInvalidMember()github

#### Section 11.3.24 - Obtaining a Bean [bm_obtain_bean]

The method BeanManager.createBean() returns a container provided implementation of Bean. The method accepts a BeanAttributes, which determines the bean types, qualifiers, scope, name and stereotypes of the returned Bean, and the return values of isAlternative() and isNullable(), and a class, which determines the return value of Bean.getClass().

a)

Test the first version of the method BeanManager.createBean() that also accepts an InjectionTarget, which is used to create and destroy instances of the bean, to perform dependency injection and lifecycle callbacks, and which determines the return value of Bean.getInjectionPoints().

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bean
Test archive name: 24296e1c3f432f233cc4ad15d19833cbfba95
SyntheticBeanTest.testRegisteredBean()github
Test archive name: 24296e1c3f432f233cc4ad15d19833cbfba95
SyntheticBeanTest.testSerializableBean()github
Test archive name: 24296e1c3f432f233cc4ad15d19833cbfba95
SyntheticBeanTest.testSyntheticDecorator()github
b)

Test the second version of the method BeanManager.createBean() that also accepts a Producer, which is used to create and destroy instances of the bean, and which determines the return value of Bean.getInjectionPoints().

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.bean
Test archive name: 24296e1c3f432f233cc4ad15d19833cbfba95
SyntheticBeanTest.testSyntheticProducerField()github
Test archive name: 24296e1c3f432f233cc4ad15d19833cbfba95
SyntheticBeanTest.testSyntheticProducerMethod()github

#### Section 11.3.25 - Obtaining the instance of an Extension [bm_obtain_extension]

The method BeanManager.getExtension() returns the container's instance of an Extension class declared in META-INF/services, or throws an IllegalArgumentException if the container has no instance of the given class.

a)

Test that the method BeanManager.getExtension() returns the container's instance of an Extension class declared in META-INF/services.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testGetExtension()github
b)

Test that the method BeanManager.getExtension() throws an IllegalArgumentException if the container has no instance of the given class.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager
Test archive name: d3adbe40fdf153a2683e3ae3f3df4725a9c011
BeanManagerTest.testGetExtension()github

#### Section 11.3.26 - Obtain an InterceptionFactory [bm_obtain_interception_factory]

a)

The method BeanManager.getInterceptionFactory() returns an InterceptionFactory for the provided type as defined in `Apply interceptor programmatically`.

Coverage

org.jboss.cdi.tck.tests.extensions.interceptionFactory.customBean
Test archive name: e31a3bbc86fef9b2c9b865a0a78e438defca3fb3
CustomBeanWithInterceptorTest.customBeanIntercepted()github

#### Section 11.3.27 - Obtain an Instance [bm_obtain_instance]

a)

The method BeanManager.createInstance() returns an Instance<Object> to request bean instances programmatically as described in "The Instance interface".

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.beanManageCreateInstance()github
b)

If no qualifier is passed to Instance.select() method, the @Default qualifier is assumed.

Coverage

org.jboss.cdi.tck.tests.lookup.dynamic
Test archive name: b9a73925b29e61c5888c41a5fa179e6441c7d5c3
DynamicLookupTest.beanManageCreateInstance()github

#### Section 11.4 - Alternative metadata sources [alternative_metadata_sources]

a)

The interfaces AnnotatedType, AnnotatedField, AnnotatedMethod, AnnotatedConstructor and AnnotatedParameter in the package jakarta.enterprise.inject.spi allow a portable extension to specify metadata that overrides the annotations that exist on a bean class. The portable extension is responsible for implementing the interfaces, thereby exposing the metadata to the container.

The interface jakarta.enterprise.inject.spi.AnnotatedType exposes the Class object and members.

aaa)

Test that getConstructors() returns all default-access, public, protected or private constructors declared for the type.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 3acdc43fc3bbbbcd9b0b3baa4e7cba8643d2f98
AlternativeMetaDataTest.testConstructors()github
aab)

Test that getMethods() returns all default-access, public, protected or private methods declared on the type and those declared on any supertypes.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 3acdc43fc3bbbbcd9b0b3baa4e7cba8643d2f98
AlternativeMetaDataTest.testMethods()github
aac)

The container should call AnnotatedMethod.getJavaMember().getDeclaringClass() to determine the type in the type hierarchy that declared the method.

Coverage

No tests exist for this assertion

aad)

Test that getFields() returns all default-access, public, protected or private fields declared on the type and those declared on any supertypes.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 3acdc43fc3bbbbcd9b0b3baa4e7cba8643d2f98
AlternativeMetaDataTest.testFields()github
b)

When determining annotations on a type, the container must only consider the special inheritance rules defined for scope types in Section 4.1, "Inheritance of type-level metadata".

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata.annotated
Test archive name: 9333a31c14c4fa9f04f3eb76ac36feed48cb17
AnnotatedTypeAnnotationsTest.testCreateAnnotatedType()github
Test archive name: 9333a31c14c4fa9f04f3eb76ac36feed48cb17
AnnotatedTypeAnnotationsTest.testProcessAnnotatedType()github
Test archive name: 9333a31c14c4fa9f04f3eb76ac36feed48cb17
AnnotatedTypeAnnotationsTest.testGetAnnotatedType()github
Test archive name: 9333a31c14c4fa9f04f3eb76ac36feed48cb17
AnnotatedTypeAnnotationsTest.testGetAnnotatedTypes()github

The interface jakarta.enterprise.inject.spi.Annotated exposes the overriding annotations and type declarations.

c)

getBaseType() returns the type of the program element.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 3acdc43fc3bbbbcd9b0b3baa4e7cba8643d2f98
AlternativeMetaDataTest.testBaseType()github
d)

getTypeClosure() returns all types to which the base type should be considered assignable.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 3acdc43fc3bbbbcd9b0b3baa4e7cba8643d2f98
AlternativeMetaDataTest.testTypeClosure()github
e)

getAnnotation() returns the program element annotation of the given annotation type, or a null value.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 3acdc43fc3bbbbcd9b0b3baa4e7cba8643d2f98
AlternativeMetaDataTest.testGetAnnotation()github
f)

getAnnotations() returns all annotations of the program element.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 3acdc43fc3bbbbcd9b0b3baa4e7cba8643d2f98
AlternativeMetaDataTest.testGetAnnotations()github
g)

isAnnotationPresent() returns true if the program element has an annotation of the given annotation type, or false otherwise.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 3acdc43fc3bbbbcd9b0b3baa4e7cba8643d2f98
AlternativeMetaDataTest.testIsAnnotationPresent()github

The container must use the operations of Annotated and its subinterfaces to discover program element types and annotations. The container must not directly call the Java Reflection API. In particular, the container must call Annotated.getBaseType() to determine the type of an injection point, event parameter or disposed parameter, call Annotated.getTypeClosure() to determine the bean types of any kind of bean, call Annotated.getAnnotations() to determine the scope, qualifiers, stereotypes and interceptor bindings of a bean, call Annotated.isAnnotationPresent() and Annotated.getAnnotation() to read any bean annotations defined by this specification, and call AnnotatedType.getConstructors(), AnnotatedType.getMethods() and AnnotatedType.getFields() to determine the members of a bean class.

h)

Check that the container uses the operations of Annotated and its subinterfaces to discover program element types and annotations. and that the container does not use the Java Reflection API.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testContainerUsesOperationsOfAnnotatedNotReflectionApi()github
ha)

Check that getBaseType() is used to determine the type of a field injection point. The base type should be different from the original type specified in the class definition

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetBaseTypeUsedToDetermineTypeOfInjectionPoint()github
hb)

Check that getBaseType() is used to determine the type of an initializer method injection point. The base type should be different from the original type specified in the class definition

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetBaseTypeUsedToDetermineTypeOfInitializerInjectionPoint()github
hc)

Check that getBaseType() is used to determine the type of a constructor injection point. The base type should be different from the original type specified in the class definition

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetBaseTypeUsedToDetermineTypeOfConstructorInjectionPoint()github
hd)

Check that getBaseType() is used to determine the type of a producer method injection point. The base type should be different from the original type specified in the class definition

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetBaseTypeUsedToDetermineTypeOfProducerInjectionPoint()github
he)

Check that getBaseType() is used to determine the type of a observer method injection point. The base type should be different from the original type specified in the class definition

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetBaseTypeUsedToDetermineTypeOfObserverInjectionPoint()github
hf)

Check that getBaseType() is used to determine the type of a disposer method injection point. The base type should be different from the original type specified in the class definition

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetBaseTypeUsedToDetermineTypeOfDisposerInjectionPoint()github
i)

Check that getBaseType() is used to determine the type of an event parameter. The base type should be different from the original type specified in the class definition

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetBaseTypeUsedToDetermineTypeOfEventParameter()github
j)

Check that getBaseType() is used to determine the type of disposed parameter. The base type should be different from the original type specified in the class definition

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetBaseTypeUsedToDetermineTypeOfDisposalParameter()github
ka)

Check that a getTypeClosure() is used to determine the bean types for a managed bean. The type closure should be different from the original type specified in the class definition.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetTypeClosureUsed()github
kc)

Check that a getTypeClosure() is used to determine the bean types for a producer field. The type closure should be different from the original type specified in the class definition.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetTypeClosureUsedToDetermineTypeOfProducerField()github
kd)

Check that a getTypeClosure() is used to determine the bean types for a producer method. The type closure should be different from the original type specified in the class definition.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetTypeClosureUsedToDetermineTypeOfProducerMethod()github
l)

Check that getAnnotations() is used to determine the bean scope. The annotations should be different from the original type specified in the class definition.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetAnnotationUsedForGettingScopeInformation()github
m)

Check that getAnnotations() is used to determine the bean qualifiers. The annotations should be different from the original type specified in the class definition.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetAnnotationUsedForGettingQualifierInformation()github
n)

Check that getAnnotations() is used to determine the bean stereotypes. The annotations should be different from the original type specified in the class definition.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetAnnotationUsedForGettingStereotypeInformation()github
p)

Check that getAnnotations() is used to determine the bean interceptors. The annotations should be different from the original type specified in the class definition.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata.interceptor
Test archive name: dd99de7fef7517662ac3fd5222e2cd9b068c499
AlternativeMetadataInterceptorInjectionTargetTest.testInterceptorInterceptsOnlyBindedClass()github
org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetAnnotationUsedForGettingInterceptorInformation()github
q)

Check that isAnnotationPresent() returns the provided annotations

r)

Check that a previously non-inject-annotated constructor is used by the container to instantiate a bean.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testPreviouslyNonInjectAnnotatedConstructorIsUsed()github
s)

Check that a qualifier added to a constructor parameter is used by the container to instantiate a bean.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetBaseTypeUsedToDetermineTypeOfConstructorInjectionPoint()github
t)

Check that a previously non-inject-annotated field is injected.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testPreviouslyNonInjectAnnotatedFieldIsInjected()github
u)

Check that an extra qualifier is applied to a field.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testExtraQualifierIsAppliedToInjectedField()github
v)

Check that @Produces added creates a producer field.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testProducesCreatesProducerField()github
w)

Check that a previously non-inject-annotated method is injected.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testInjectCreatesInitializerMethod()github
x)

Check that an extra qualifier is applied to an injectable method

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testQualifierAddedToInitializerParameter()github
y)

Check that @Produces added creates a producer method

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testProducesCreatesProducerMethod()github
z)

Check that an extra qualifier is applied to a producer method.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testQualifierIsAppliedToProducerMethod()github
aa)

Check that a qualifer added to a producer method parameter is applied.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testQualifierIsAppliedToProducerMethodParameter()github
ab)

Check that @Disposes added to a parameter creates a disposes method

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testDisposesIsAppliedToMethodParameter()github
ac)

Check that an extra qualifier is applied to a disposes method parameter.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetBaseTypeUsedToDetermineTypeOfDisposalParameter()github
ad)

Check that a qualifer added to a disposes method injectable parameter is applied.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetBaseTypeUsedToDetermineTypeOfDisposerInjectionPoint()github
ae)

Check that @Observes added to a parameter creates a observer method

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testObserverMethod()github
af)

Check that an extra qualifier is applied to an observes method parameter.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testExtraQualifierAppliedToObservesMethodParameter()github
ag)

Check that a qualifer added to a observes method injectable parameter is applied.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testObserverMethod()github

#### Section 11.4.1 - AnnotatedTypeConfigurator SPI [annotated_type_configurator]

This SPI is composed of the following interfaces:

aa)

`jakarta.enterprise.inject.spi.builder.AnnotatedTypeConfigurator` to configure an AnnotatedType

ab)

`jakarta.enterprise.inject.spi.builder.AnnotatedFieldConfigurator` to configure an AnnotatedField

ac)

`jakarta.enterprise.inject.spi.builder.AnnotatedConstructorConfigurator` to configure an AnnotatedConstructor

ad)

`jakarta.enterprise.inject.spi.builder.AnnotatedMethodConfigurator` to configure an AnnotatedMethod

ae)

`jakarta.enterprise.inject.spi.builder.AnnotatedParameterConfigurator` to configure an AnnotatedParameter

AnnotatedTypeConfigurator is the entry point for this SPI.

bc)

Test getAnnotated() returns the original AnnotatedType with which this configurator was initialized.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.annotatedTypesAndMemebersEqual()github
bd)

Test add() adds an annotation to the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.addMethodsOfAnnotationTypecConfigurator()github
be)

Test remove() method removes annotations that match the specified predicate from the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.removeMethodsOfAnnotationTypeConfigurator()github
bf)

Test removeAll() removes all annotations from the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.annotationsRemovedFromAnimalShelter()github
bg)

Test methods() returns a set of AnnotatedMethodConfigurator to configure annotations on methods.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.addMethodsOfAnnotationTypecConfigurator()github
bh)

Test filterMethods() returns a `Stream < AnnotatedMethodsConfigurator >` filtered by applying the provided Predicate on methods().

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.removeMethodsOfAnnotationTypeConfigurator()github
bi)

Test fields() returns a set of AnnotatedFieldConfigurator to configure annotations on fields.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.addMethodsOfAnnotationTypecConfigurator()github
bj)

Test filterFields() returns a `Stream < AnnotatedFieldConfigurator >` filtered by applying the provided Predicate on fields().

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.addMethodsOfAnnotationTypecConfigurator()github
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.removeMethodsOfAnnotationTypeConfigurator()github
bk)

Test constructors() returns a set of AnnotatedConstructorConfigurator to configure annotations on constructors.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.annotationsRemovedFromAnimalShelter()github
bl)

Test filterConstructors() returns a Stream `<AnnotatedConstructorConfigurator >` filtered by applying the provided Predicate on Constructors().

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.removeMethodsOfAnnotationTypeConfigurator()github

#### Section 11.4.1.1 - AnnotatedMethodConfigurator [annotated_method_configurator]

AnnotatedMethodConfigurator

a)

Test getAnnotated() returns the original `AnnotatedMethod` with which this configurator was initialized.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.annotatedTypesAndMemebersEqual()github
b)

Test add() adds an annotation to the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.addMethodsOfAnnotationTypecConfigurator()github
c)

Test remove() method removes annotations that match the specified predicate from the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.removeMethodsOfAnnotationTypeConfigurator()github
d)

Test removeAll() removes all annotations from the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.annotationsRemovedFromAnimalShelter()github
e)

Test params() returns a list of AnnotatedParameterConfigurator to configure annotations on parameters.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.annotationsRemovedFromAnimalShelter()github
f)

Test filterParams(Predicate `< AnnotatedParameter <T >>` predicate) returns a `Stream <AnnotatedParameterConfigurator>` filtered by applying the provided Predicate on params().

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.removeMethodsOfAnnotationTypeConfigurator()github

#### Section 11.4.1.2 - AnnotatedConstructorConfigurator [annotated_constructor_configurator]

AnnotatedConstructorConfigurator

a)

Test getAnnotated() returns the original `AnnotatedConstructor` with which this configurator was initialized.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.annotatedTypesAndMemebersEqual()github
b)

Test add() adds an annotation to the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.addMethodsOfAnnotationTypecConfigurator()github
c)

Test remove() method removes annotations that match the specified predicate from the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.removeMethodsOfAnnotationTypeConfigurator()github
d)

Test removeAll() removes all annotations from the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.annotationsRemovedFromAnimalShelter()github
e)

Test params() returns a list of AnnotatedParameterConfigurator to configure annotations on parameters.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.configureAndTestConstructorAnnotatedParams()github
f)

Test filterParams(Predicate `< AnnotatedParameter <T >>` predicate) returns a `Stream <AnnotatedParameterConfigurator>` filtered by applying the provided Predicate on params().

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.addMethodsOfAnnotationTypecConfigurator()github

#### Section 11.4.1.3 - AnnotatedParameterConfigurator [annotated_parameter_configurator]

AnnotatedParameterConfigurator

a)

Test getAnnotated() returns the original `AnnotatedParameter` with which this configurator was initialized.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.annotatedTypesAndMemebersEqual()github
b)

Test add() adds an annotation to the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.addMethodsOfAnnotationTypecConfigurator()github
c)

Test remove() method removes annotations that match the specified predicate from the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.removeMethodsOfAnnotationTypeConfigurator()github
d)

Test removeAll() removes all annotations from the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.annotationsRemovedFromAnimalShelter()github

#### Section 11.4.1.4 - AnnotatedFieldConfigurator [annotated_field_configurator]

AnnotatedFieldConfigurator

a)

Test getAnnotated() returns the original `AnnotatedField` with which this configurator was initialized.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.annotatedTypesAndMemebersEqual()github
b)

Test add() adds an annotation to the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.addMethodsOfAnnotationTypecConfigurator()github
c)

Test remove() method removes annotations that match the specified predicate from the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.removeMethodsOfAnnotationTypeConfigurator()github
d)

Test removeAll() removes all annotations from the configured element.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.annotationsRemovedFromAnimalShelter()github

#### Section 11.5 - Container lifecycle events [init_events]

a)

During the application initialization process, the container fires a series of events, allowing portable extensions to integrate with the container initialization process defined in Section 12.2, "Application initialization lifecycle".

b)

Observer methods of these events must belong to extensions. An extension is a service provider of the service jakarta.enterprise.inject.spi.Extension declared in META-INF/services.

Coverage

org.jboss.cdi.tck.tests.extensions.registration
Test archive name: fd49ea251f3d71e1db295a620b341d64ef318ce
BeanRegistrationByExtensionInNonBeanArchiveTest.shouldFindBeanReference()github
Test archive name: 33b68aedfaae8ad81daa5015fbdac6aaeddc130
TwoBeansOneClassTest.testTwoBeansWithOneBaseClass()github
Test archive name: d730bfd879b31997425fbc8c2625ff7f5bd1a5d
VisibilityOfBeanRegisteredByExtensionFromNonBeanLibraryTest.shouldFindBeanReference()github
org.jboss.cdi.tck.tests.extensions.interceptors
Test archive name: b822f0eb87a6ef9937e0fb2d76414fe977d0321
InterceptorExtensionTest.testInterceptorAddedByClass()github
Test archive name: b822f0eb87a6ef9937e0fb2d76414fe977d0321
InterceptorExtensionTest.testLifecycleInterceptor()github
Test archive name: b822f0eb87a6ef9937e0fb2d76414fe977d0321
InterceptorExtensionTest.testInterceptorAddedByAnnotatedType()github
org.jboss.cdi.tck.tests.deployment.packaging.visibility
Test archive name: e73d5e74b6f386d6e943bc701868f9765b66ece
VisibilityOfAnnotatedTypesFromExtensionInBravoBeanArchiveTest.shouldObserveExpectedAnnotatedTypes()github
Test archive name: 4af4c38d5d6a62e6a4684ebffb8b179107ef77b
VisibilityOfAnnotatedTypesFromExtensionInAlphaBeanArchiveTest.shouldObserveExpectedAnnotatedTypes()github
bb)

Service providers may have observer methods, which may observer any event, including any container lifecycle event, and obtain an injected BeanManager reference.

Coverage

org.jboss.cdi.tck.tests.extensions.registration
Test archive name: fd49ea251f3d71e1db295a620b341d64ef318ce
BeanRegistrationByExtensionInNonBeanArchiveTest.shouldFindBeanReference()github
Test archive name: 33b68aedfaae8ad81daa5015fbdac6aaeddc130
TwoBeansOneClassTest.testTwoBeansWithOneBaseClass()github
Test archive name: d730bfd879b31997425fbc8c2625ff7f5bd1a5d
VisibilityOfBeanRegisteredByExtensionFromNonBeanLibraryTest.shouldFindBeanReference()github
org.jboss.cdi.tck.tests.extensions.lifecycle
Test archive name: 572df0b5de78424b0cea4833984182481e1e0
ExtensionLifecycleTest.testContainerDeliversEventNotifications()github
org.jboss.cdi.tck.tests.deployment.packaging.war.modules
Test archive name: dec7dc110233d80afe6c175f5fae11f3f6d78d
WebArchiveModulesTest.testExtensionAndContainerEvents()github
org.jboss.cdi.tck.tests.extensions.interceptors
Test archive name: b822f0eb87a6ef9937e0fb2d76414fe977d0321
InterceptorExtensionTest.testInterceptorAddedByClass()github
Test archive name: b822f0eb87a6ef9937e0fb2d76414fe977d0321
InterceptorExtensionTest.testLifecycleInterceptor()github
Test archive name: b822f0eb87a6ef9937e0fb2d76414fe977d0321
InterceptorExtensionTest.testInterceptorAddedByAnnotatedType()github
org.jboss.cdi.tck.tests.deployment.packaging.ear.modules
Test archive name: b3b0a05066d9bec3659b91c3a2413dfa351982c
EnterpriseArchiveModulesTest.testExtensionAndContainerEvents()github
bc)

An extension may use BeanManager.fireEvent() to deliver events to observer methods defined on extensions.

Coverage

org.jboss.cdi.tck.tests.extensions.communication
Test archive name: 84652865fa35db9af0a842bc71afc766882b87
ExtensionsCommunicationTest.testEvents()github
bd)

The container is not required to deliver events fired during application initialization to observer methods defined on beans.

be)

Any decorators associated with BeanManager will not be applied.

Coverage

org.jboss.cdi.tck.tests.decorators.builtin.beanmanager
Test archive name: 643e7cb0b6bba3ef0b74cd8797984578b16f27
BeanManagerDecoratorTest.testDecoratorIsNotApplied()github
d)

The container instantiates a single instance of each extension at the beginning of the application initialization process and maintains a reference to it until the application shuts down. The container delivers event notifications to this instance by calling its observer methods.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle
Test archive name: 572df0b5de78424b0cea4833984182481e1e0
ExtensionLifecycleTest.testContainerInstantiatesSingleInstanceOfExtension()github
Test archive name: 572df0b5de78424b0cea4833984182481e1e0
ExtensionLifecycleTest.testContainerDeliversEventNotifications()github
da)

If an extension declares a static observer method whose event parameter type is a container lifecycle event, or is java.lang.Object and the event parameter has either no qualifiers or a single qualifier @Any, non-portable behavior results.

e)

The notification order for observer methods within extensions follows the same ordering rule as defined in Observer ordering for non-extension observers. The priority of an observer method may be declared using the @Priority annotation.

Coverage

org.jboss.cdi.tck.tests.extensions.observer.priority
Test archive name: 9382c8d0b66dff34845a97444a38641c21d14ac
ExtensionObserverOrderingTest.testEventOrdering()github
f)

For each service provider, the container must provide a bean of scope @ApplicationScoped and qualifier @Default, supporting injection of a reference to the service provider instance. The bean types of this bean include the class of the service provider and all superclases and interfaces.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle
Test archive name: 572df0b5de78424b0cea4833984182481e1e0
ExtensionLifecycleTest.testContainerInstantiatesSingleInstanceOfExtension()github
Test archive name: 572df0b5de78424b0cea4833984182481e1e0
ExtensionLifecycleTest.testContainerDeliversEventNotifications()github
Test archive name: 572df0b5de78424b0cea4833984182481e1e0
ExtensionLifecycleTest.testContainerProvidesBeanForExtension()github

#### Section 11.5.1 - BeforeBeanDiscovery event [before_bean_discovery]

a)

The container must fire an event before it begins the bean discovery process. The event object must be of type jakarta.enterprise.inject.spi.BeforeBeanDiscovery.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd
Test archive name: 23c0c6dc959677bc56ef23ddf0f4d3d2c8ee7ed7
BeforeBeanDiscoveryTest.testBeforeBeanDiscoveryEventIsCalled()github

addQualifier() declares an annotation type as a qualifier type.

ab)

Test Class method parameter.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd
Test archive name: 23c0c6dc959677bc56ef23ddf0f4d3d2c8ee7ed7
BeforeBeanDiscoveryTest.testAddingQualifierByClass()github
aba)

Test AnnotatedType method parameter.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd
Test archive name: 23c0c6dc959677bc56ef23ddf0f4d3d2c8ee7ed7
BeforeBeanDiscoveryTest.testAddingQualifierByAnnotatedType()github
ac)

addScope() declares an annotation type as a scope type.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd.broken.passivatingScope
Test archive name: fe2e44b4fc98ee93a48fcb745aca949bd881a
AddingPassivatingScopeTest.testAddingScopeType()github
org.jboss.cdi.tck.tests.extensions.lifecycle.bbd.broken.normalScope
Test archive name: fad65b9088c07f6eaa1a80bc5a754f198489a
AddingNormalScopeTest.testAddingScopeType()github
org.jboss.cdi.tck.tests.extensions.lifecycle.bbd
Test archive name: 23c0c6dc959677bc56ef23ddf0f4d3d2c8ee7ed7
BeforeBeanDiscoveryTest.testAddingScopeType()github
ad)

addStereotype() declares an annotation type as a stereotype, and specifies its meta-annotations.

Coverage

org.jboss.cdi.tck.tests.extensions.stereotype
Test archive name: 1c83ff2c3176345e471bb79a2e612b6e3f996ad
StereotypeExtensionTest.testStereotypeWorks()github

addInterceptorBinding() declares an annotation type as an interceptor binding type, and specifies its meta-annotations.

ae)

Test Class method parameter.

Coverage

org.jboss.cdi.tck.tests.extensions.interceptors
Test archive name: b822f0eb87a6ef9937e0fb2d76414fe977d0321
InterceptorExtensionTest.testInterceptorAddedByClass()github
Test archive name: b822f0eb87a6ef9937e0fb2d76414fe977d0321
InterceptorExtensionTest.testLifecycleInterceptor()github
aea)

Test AnnotatedType method parameter.

Coverage

org.jboss.cdi.tck.tests.extensions.interceptors
Test archive name: b822f0eb87a6ef9937e0fb2d76414fe977d0321
InterceptorExtensionTest.testInterceptorAddedByAnnotatedType()github

addAnnotatedType() adds a given AnnotatedType to the set of types which will be scanned during bean discovery, with an optional identifier.

af)

Test the addAnnotatedType() method.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata.interceptor
Test archive name: c13251f59fec6cb4b87c32a84c8e1d70e8413f8
AlternativeMetadataInterceptorTest.testInterceptorInterceptsOnlyBindedClass()github
org.jboss.cdi.tck.tests.extensions.registration
Test archive name: fd49ea251f3d71e1db295a620b341d64ef318ce
BeanRegistrationByExtensionInNonBeanArchiveTest.shouldFindBeanReference()github
org.jboss.cdi.tck.tests.extensions.lifecycle.bbd
Test archive name: 23c0c6dc959677bc56ef23ddf0f4d3d2c8ee7ed7
BeforeBeanDiscoveryTest.testAddAnnotatedType()github
org.jboss.cdi.tck.tests.extensions.registration
Test archive name: 33b68aedfaae8ad81daa5015fbdac6aaeddc130
TwoBeansOneClassTest.testTwoBeansWithOneBaseClass()github
Test archive name: d730bfd879b31997425fbc8c2625ff7f5bd1a5d
VisibilityOfBeanRegisteredByExtensionFromNonBeanLibraryTest.shouldFindBeanReference()github
afa)

Test that more than one AnnotatedType may use the same base type.

Coverage

org.jboss.cdi.tck.tests.extensions.registration
Test archive name: 33b68aedfaae8ad81daa5015fbdac6aaeddc130
TwoBeansOneClassTest.testTwoBeansWithOneBaseClass()github
afb)

Test adding AnnotatedType if any other AnnotatedType with the same identifier already exists in the set of types.

Coverage

org.jboss.cdi.tck.tests.extensions.registration
Test archive name: ac43aaa1f3af14ef9dcbc1cd4bb8dd95bc81bf6d
DuplicateIdentifiedAnnotatedTypeTest.createTestArchive()github
b)

Test AnnotatedTypeConfigurator<?> addAnnotatedType(String id) returns a new AnnotatedTypeConfigurator as defined in AnnotatedTypeConfigurator interface to easily configure the AnnotatedType which will be added at the end of the observer invocation. The returned AnnotatedTypeConfigurator is initialized with type and annotations of the provided class.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd
Test archive name: 23c0c6dc959677bc56ef23ddf0f4d3d2c8ee7ed7
BeforeBeanDiscoveryTest.testAddAnnotatedTypeWithConfigurator()github
c)

configureQualifier() returns a new AnnotatedTypeConfigurator as defined in AnnotatedTypeConfigurator SPI to configure a new AnnotatedType and declares it as a qualifier type.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator.beforeBeanDiscovery
Test archive name: 1413c7b56fee2489a47892387d28c347cb1ef08a
AnnotatedTypeConfiguratorInBBDTest.testQualifierAddition()github
d)

configureInterceptorBinding() returns a new AnnotatedTypeConfigurator as defined in AnnotatedTypeConfigurator SPI to configure a new AnnotatedType and declares it as an interceptor binding.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator.beforeBeanDiscovery
Test archive name: 1413c7b56fee2489a47892387d28c347cb1ef08a
AnnotatedTypeConfiguratorInBBDTest.testInterceptorBindingAddition()github
e)

If any observer method of the BeforeBeanDiscovery event throws an exception, the exception is treated as a definition error by the container.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd.broken.exception
Test archive name: 4c2ec74fb8c2cbcda6b5d0ccc01c2ece8b2a64a0
BeforeBeanDiscoveryThrowsExceptionTest.testThrowsException()github
f)

If any BeforeBeanDiscovery method is called outside of the observer method invocation, an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.events
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testBeforeBeanDiscoveryEventFails()github

#### Section 11.5.2 - AfterTypeDiscovery event [after_type_discovery]

a)

The container must fire an event when it has fully completed the type discovery process and before it begins the bean discovery process. The event object must be of type jakarta.enterprise.inject.spi.AfterTypeDiscovery.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testInitialInterceptors()github
b)

getAlternatives() returns list of enabled alternatives for the application, sorted by priority in ascending order. Alternatives enabled for a bean archive are not included.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testInitialAlternatives()github
c)

getInterceptors() returns the list of enabled interceptors for the application, sorted by priority in ascending order. Interceptors enabled for a bean archive are not included.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testInitialInterceptors()github
d)

getDecorators() returns list of enabled decorators for the application, sorted by priority in ascending order. Decorators enabled for a bean archive are not included.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testInitialDecorators()github
e)

addAnnotatedType() adds a given AnnotatedType to the set of types which will be scanned during bean discovery, with an identifier.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testAddAnnotatedType()github
ea)

Test AnnotatedTypeConfigurator<?> addAnnotatedType(String id) returns a new AnnotatedTypeConfigurator as defined in AnnotatedTypeConfigurator interface to easily configure the AnnotatedType which will be added at the end of observer invocation. The returned AnnotatedTypeConfigurator is initialized with type and annotations of the provided class.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testAddAnnotatedTypeWithConfigurator()github
f)

If an alternative, interceptor or decorator is added using AfterTypeDiscovery.addAnnotatedType(), non-portable behavior results.

Any observer of this event is permitted to add classes to, or remove classes from, the list of alternatives, list of interceptors or list of decorators. The container must use the final values of these collections, after all observers of AfterTypeDiscovery have been called, to determine the order of the enabled alternatives, interceptors, and decorators for application.

ga)

Test the final values of the list of alternatives.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testFinalAlternatives()github
gb)

Test the final values of the list of interceptors.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testFinalInterceptors()github
gc)

Test the final values of the list of decorators.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testFinalDecorators()github

The initial values of these collections is defined by the @Priority annotation.

ha)

Test the initial values of the list of alternatives.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testInitialAlternatives()github
hb)

Test the initial values of the list of interceptors.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testInitialInterceptors()github
hc)

Test the initial values of the list of decorators.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testInitialDecorators()github
i)

If any observer method of an AfterTypeDiscovery event throws an exception, the exception is treated as a definition error by the container.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd.broken
Test archive name: 822e1a4468bfdb80bd8e623cf6838d512619ec6
ThrowExceptionTest.testDeployment()github
j)

If any AfterTypeDiscovery method is called outside of the observer method invocation, an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.events
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testAfterTypeDiscoveryEventFails()github

#### Section 11.5.3 - AfterBeanDiscovery event [after_bean_discovery]

a)

The container must fire an event when it has fully completed the bean discovery process, validated that there are no definition errors relating to the discovered beans, and registered Bean and ObserverMethod objects for the discovered beans, but before detecting deployment problems. The event object must be of type jakarta.enterprise.inject.spi.AfterBeanDiscovery.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd
Test archive name: 78a95995feec70a6c0d8cc5fa81911bb2d5bb
DeploymentTest.testDeployedManagerEvent()github
ca)

addDefinitionError() registers a definition error with the container, causing the container to abort deployment after all observers have been notified.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.broken.addDefinitionError
Test archive name: c81036f36ff5f0e182b7a72f1046ae689633adea
AddDefinitionErrorTest.testObserverDefinitionErrorTreatedAsDefinitionError()github

addBean() fires an event of type ProcessSyntheticBean containing the given Bean and then registers the Bean with the container, thereby making it available for injection into other beans. The given Bean may implement Interceptor or Decorator.

da)

Check that ProcessSyntheticBean is fired

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.bean
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.processSynthethicBeanEventFired()github
org.jboss.cdi.tck.tests.extensions.afterBeanDiscovery
Test archive name: 69c08051d15243f4def07d9335e6f77bde2633d
AfterBeanDiscoveryTest.testProcessBeanIsFired()github
db)

Check that a bean is registered

Coverage

org.jboss.cdi.tck.tests.extensions.afterBeanDiscovery
Test archive name: 69c08051d15243f4def07d9335e6f77bde2633d
AfterBeanDiscoveryTest.testBeanIsAdded()github
dc)

Check that a decorator is registered

Coverage

org.jboss.cdi.tck.tests.decorators.custom
Test archive name: 9da47bd02649dabcc929abaf44cfab131268ed7
CustomDecoratorTest.testCustomImplementationOfDecoratorInterface()github
dd)

Check that an interceptor is registered

Coverage

org.jboss.cdi.tck.tests.extensions.interceptors.custom
Test archive name: adf69a8cddf3a909e953196f87983e611d8699
CustomInterceptorRegistrationTest.testCustomInterceptorRegistration()github
org.jboss.cdi.tck.tests.interceptors.definition.custom
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomPostConstructInterceptor()github
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomPreDestroyInterceptor()github
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomPostActivateInterceptor()github
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomPrePassivateInterceptor()github
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomAroundInvokeInterceptor()github
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomAroundTimeoutInterceptor()github
org.jboss.cdi.tck.tests.extensions.interceptors.custom
Test archive name: 4acd17f1322ec63a1e831d33199e93ce2f319
CustomInterceptorInvocationTest.testCustomInterceptorInvocation()github
de)

Test BeanConfigurator<?> addBean() returns a new BeanConfigurator as defined in BeanConfigurator interface to easily configure the Bean which will be added at the end of observer invocation.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.bean
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testCreationalAndDisposalMethods()github
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testInjectionPoints()github

addObserverMethod() fires an event of type ProcessSyntheticObserverMethod containing the given ObserverMethod and then registers the ObserverMethod with the container, thereby making it available for event notifications.

ea)

Check that the ProcessSynthethicObserverMethod is fired

Coverage

org.jboss.cdi.tck.tests.extensions.afterBeanDiscovery
Test archive name: 69c08051d15243f4def07d9335e6f77bde2633d
AfterBeanDiscoveryTest.testProcessObserverMethodFiredWhileAddingObserverMethod()github
eb)

Check that the observer method is registered

Coverage

org.jboss.cdi.tck.tests.event.observer.extension
Test archive name: 168339ece2ef658f91aff9c332512187196e9167
EventBeanObserverNotificationTest.testNotifyInvoked()github
Test archive name: 5c165998fc7cca59621694be8c81ee14a588224
BeanManagerObserverNotificationTest.testNotifyInvoked()github
org.jboss.cdi.tck.tests.extensions.afterBeanDiscovery
Test archive name: 69c08051d15243f4def07d9335e6f77bde2633d
AfterBeanDiscoveryTest.testObserverMethodRegistered()github
ec)

If the given ObserverMethod does not override either ObserverMethod.notify(T) or ObserverMethod.notify(EventContext<T>), the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.broken.observerMethod
Test archive name: 7bed89fbf99598301197d66187eaf3f8c150da
CustomObserverMethodWithoutNotifyMethodTest.observerCustomMethodNotOverridingNotifyMethodTreatedAsDefinitionError()github
ed)

Test ObserverMethodConfigurator<?> addObserverMethod() returns a new ObserverMethodConfigurator as defined in ObserverMethodConfigurator interface to easily configure the ObserverMethod which will be added at the end of observer invocation.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.addNewObserverMethodFromReadingExistingOne()github
ee)

If the container is unable to process the ObserverMethodConfigurator it automatically detects the problem and treats it as a deployment problem.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.broken.observerMethod
Test archive name: 27ad747c5605cb659cbc971dd993754ec29b10
ObserverMethodWithoutNotifyMethodTest.unableToProcessObserverMethodConfigurator()github
f)

addContext() registers a custom Context object with the container.

Coverage

org.jboss.cdi.tck.tests.extensions.afterBeanDiscovery
Test archive name: 69c08051d15243f4def07d9335e6f77bde2633d
AfterBeanDiscoveryTest.testAddContext()github
g)

If any observer method of the AfterBeanDiscovery event throws an exception, the exception is treated as a definition error by the container.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.broken.exception.discovery
Test archive name: 36c346249dbe34291ec55292f64f7091cd139
AfterBeanDiscoveryObserverExecutionFailureTest.testObserverFailureTreatedAsDefinitionError()github
h)

getAnnotatedType() returns the AnnotatedType discovered or added during container initialization. If the id passed is null, the container should substitute the container generated id.

Coverage

org.jboss.cdi.tck.tests.extensions.afterBeanDiscovery.annotated
Test archive name: 37e469838ed34b82a565cbbeb9361f8e9a9a6e7
GetAnnotatedTypesTest.testGetAnnotatedType()github
i)

getAnnotatedTypes() returns the AnnotatedTypes discovered or added during container initialization.

Coverage

org.jboss.cdi.tck.tests.extensions.afterBeanDiscovery.annotated
Test archive name: 37e469838ed34b82a565cbbeb9361f8e9a9a6e7
GetAnnotatedTypesTest.testGetAnnotatedTypes()github
fb)

A portable extension may take advantage of this event to register beans, interceptors, decorators, observer methods and custom context objects with the container.

j)

If any AfterBeanDiscovery method is called outside of the observer method invocation, an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.events
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testAfterBeanDiscoveryEventFails()github

#### Section 11.5.3.1 - BeanConfigurator interface [bean_configurator]

With BeanConfigurator you can perform all the operations defined in BeanAttributesConfigurator interface plus the following:

aa)

Initialize the bean metadata with one of its read() methods. It can be done from an existing BeanAttributes or by reading metadata on a given AnnotatedType, according to the rules defined in Concepts.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.bean
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testCreationalAndDisposalMethods()github
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testInjectionPoints()github
ab)

Set the class of the bean with beanClass method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.bean
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testCreationalAndDisposalMethods()github
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testInjectionPoints()github
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testPassivationCapability()github
b)

Add an injection point for the bean with addInjectionPoint method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.bean
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testInjectionPoints()github
c)

Add multiple injection points for the bean with addInjectionPoints methods.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.bean
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testInjectionPoints()github
d)

Replace all injection points for the bean with injectionPoints methods.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.bean
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testInjectionPoints()github
e)

Make the bean implements `PassivationCapable` and set its id with id method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.bean
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testPassivationCapability()github
f)

Set a callback to create a bean instance with createWith() or produceWith() method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.bean
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testCreationalAndDisposalMethods()github
g)

Set a callback to destroy a bean instance with destroyWith() or disposeWith() method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.bean
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testCreationalAndDisposalMethods()github
h)

If a BeanConfigurator has no scope specified, the default scope rules, defined in the Default Scope rules apply.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.bean
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.testDefaultScopeOfAddedBean()github

#### Section 11.5.3.2 - ObserverMethodConfigurator interface [observer_method_configurator]

`ObserverMethodConfigurator` must be initialized from a `java.lang.reflect.Method`, `AnnotatedMethod` or an existing `ObserverMethod` with one of its `read()` methods.

aa)

Test initialization of `ObserverMethodConfigurator` from a `java.lang.reflect.Method`.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.addNewObserverMethodFromReadingExistingOne()github
ab)

Test initialization of `ObserverMethodConfigurator` from a `AnnotatedMethod`.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.addNewObserverMethodFromReadingExistingOne()github
ac)

Test initialization of `ObserverMethodConfigurator` from an existing `ObserverMethod`.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.addNewObserverMethodFromReadingExistingOne()github

With ObserverMethodConfigurator you can perform the following operations:

ba)

Set the `ObserverMethod` bean class with beanClass method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.addNewObserverMethodFromReadingExistingOne()github
baa)

If the class of the bean is not set, the extension class is used.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.defaultBeanClassIsExtensionClass()github
bb)

Set the type of the observed event with observedType method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.addNewObserverMethodFromReadingExistingOne()github
bc)

Add a qualifier with addQualifier method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.notifyAcceptingConsumerNotified()github
bd)

Set or add multiple qualifiers with addQualifiers and qualifiers methods.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.addQualifiersAndSetPriorityAndChangeToAsync()github
be)

Set the `Reception` type with reception method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.setReceptionAndTransactionPhase()github
bf)

Set the `TransactionPhase` type with transactionPhase method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.setReceptionAndTransactionPhase()github
bg)

Set the priority with priority method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.addQualifiersAndSetPriorityAndChangeToAsync()github
bh)

Define the `Consumer` to call on notification with notifyWith method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.notifyAcceptingConsumerNotified()github
bi)

Make the observer asynchronous with async method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.addQualifiersAndSetPriorityAndChangeToAsync()github

#### Section 11.5.4 - AfterDeploymentValidation event [after_deployment_validation]

a)

The container must fire an event after it has validated that there are no deployment problems and before creating contexts or processing requests. The event object must be of type jakarta.enterprise.inject.spi.AfterDeploymentValidation.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd
Test archive name: 78a95995feec70a6c0d8cc5fa81911bb2d5bb
DeploymentTest.testDeployedManagerEvent()github
b)

addDeploymentProblem() registers a deployment problem with the container, causing the container to abort deployment after all observers have been notified.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.broken.addDeploymentProblem
Test archive name: 9c15dcba3fae871bc7af43530774c2daa245ca
AddDeploymentProblemTest.testObserverDeploymentProblemTreatedAsDeploymentError()github
c)

If any observer method of the AfterDeploymentValidation event throws an exception, the exception is treated as a deployment problem by the container.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.broken.exception.validation
Test archive name: 8299f7e5780f11d17c6609d2079ac21f6604345
AfterDeploymentValidationObserverExecutionFailureTest.testObserverFailureTreatedAsDeploymentError()github
d)

The container must not allow any request to be processed by the deployment until all observers of this event return.

Coverage

No tests exist for this assertion

e)

If any AfterDeploymentValidation method is called outside of the observer method invocation,an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.events
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testAfterDeploymentValidationEventFails()github

#### Section 11.5.5 - BeforeShutdown event [before_shutdown]

a)

The container must fire a final event after it has finished processing requests and destroyed all contexts. The event object must be of type jakarta.enterprise.inject.spi.BeforeShutdown.

Coverage

org.jboss.cdi.tck.tests.deployment.shutdown
Test archive name: bc50d2dbebade51b96e7e73a1881db07c72c680
ApplicationShutdownLifecycleTest.testShutdown()github
ba)

If any observer method of the BeforeShutdown event throws an exception, the exception is ignored by the container.

#### Section 11.5.6 - ProcessAnnotatedType event [process_annotated_type]

The container must fire an event, before it processes a type, for every Java class, interface (excluding the special kind of interface declaration annotation type) or enum discovered.

aa)

Test class discovered in a bean archive.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 30abba83a12189638e3a61afe8367083f1cd48
ProcessAnnotatedTypeTest.testProcessAnnotatedTypeEventsSent()github
ab)

Test interface discovered in a bean archive.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 30abba83a12189638e3a61afe8367083f1cd48
ProcessAnnotatedTypeTest.testProcessAnnotatedTypeEventsSent()github
ac)

Test enum discovered in a bean archive.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 30abba83a12189638e3a61afe8367083f1cd48
ProcessAnnotatedTypeTest.testProcessAnnotatedTypeFiredForEnum()github
ae)

Test class added by BeforeBeanDiscovery.addAnnotatedType().

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.synthetic
Test archive name: 2f5371913b60257fe37d13ea81cba7cc31b5c0f3
ProcessSyntheticAnnotatedTypeTest.testEventsFired()github
af)

Test interface added by BeforeBeanDiscovery.addAnnotatedType().

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.synthetic
Test archive name: 2f5371913b60257fe37d13ea81cba7cc31b5c0f3
ProcessSyntheticAnnotatedTypeTest.testEventsFired()github
ag)

Test enum added by BeforeBeanDiscovery.addAnnotatedType().

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.synthetic
Test archive name: 2f5371913b60257fe37d13ea81cba7cc31b5c0f3
ProcessSyntheticAnnotatedTypeTest.testEventsFired()github
ah)

Excluding the special kind of interface declaration annotation type.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.synthetic
Test archive name: 2f5371913b60257fe37d13ea81cba7cc31b5c0f3
ProcessSyntheticAnnotatedTypeTest.testEventsFired()github

An event is not fired for any type annotated with @Vetoed, or in a package annotated with @Vetoed.

ia)

Test @Vetoed class discovered in a bean archive.

Coverage

org.jboss.cdi.tck.tests.vetoed.enterprise
Test archive name: 20335b437b598a70686a3023508b3a34c7aa0c1
EnterpriseVetoedTest.testClassLevelVeto()github
org.jboss.cdi.tck.tests.vetoed
Test archive name: 45dd756f280d2e86bc7c958657b5176da8934
VetoedTest.testClassLevelVeto()github
ib)

Test @Vetoed interface discovered in a bean archive.

Coverage

org.jboss.cdi.tck.tests.vetoed
Test archive name: 45dd756f280d2e86bc7c958657b5176da8934
VetoedTest.testClassLevelVeto()github
ie)

Test @Vetoed class added by BeforeBeanDiscovery.addAnnotatedType().

Coverage

org.jboss.cdi.tck.tests.vetoed.enterprise
Test archive name: 20335b437b598a70686a3023508b3a34c7aa0c1
EnterpriseVetoedTest.testAnnotatedTypeAddedByExtension()github
org.jboss.cdi.tck.tests.vetoed
Test archive name: 45dd756f280d2e86bc7c958657b5176da8934
VetoedTest.testAnnotatedTypeAddedByExtension()github
if)

Test @Vetoed interface added by BeforeBeanDiscovery.addAnnotatedType().

Coverage

org.jboss.cdi.tck.tests.vetoed
Test archive name: 45dd756f280d2e86bc7c958657b5176da8934
VetoedTest.testAnnotatedTypeAddedByExtension()github
ii)

Test @Vetoed package.

Coverage

org.jboss.cdi.tck.tests.vetoed.enterprise
Test archive name: 20335b437b598a70686a3023508b3a34c7aa0c1
EnterpriseVetoedTest.testPackageLevelVeto()github
org.jboss.cdi.tck.tests.vetoed
Test archive name: 45dd756f280d2e86bc7c958657b5176da8934
VetoedTest.testPackageLevelVeto()github
j)

The event object must be of type jakarta.enterprise.inject.spi.ProcessAnnotatedType<X>, where X is the class, for types discovered in a bean archive, or of type jakarta.enterprise.inject.spi.ProcessSyntheticAnnotatedType<X> for types added by BeforeBeanDiscovery.addAnnotatedType().

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 30abba83a12189638e3a61afe8367083f1cd48
ProcessAnnotatedTypeTest.testProcessAnnotatedTypeEventsSent()github
org.jboss.cdi.tck.tests.extensions.annotated.synthetic
Test archive name: 2f5371913b60257fe37d13ea81cba7cc31b5c0f3
ProcessSyntheticAnnotatedTypeTest.testEventsFired()github

The annotation @WithAnnotations may be applied to the event parameter. If the annotation is applied, the container must only deliver ProcessAnnotatedType events for types which contain at least one of the annotations specified. The annotation can appear on the annotated type, or on any member, or any parameter of any member of the annotated type, as defined in Section 11.4.

fa)

Test annotation on the annotated type.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.delivery
Test archive name: 647cfb11c5653275788bf3d134961e897b14de80
WithAnnotationsTest.testDelivery()github
Test archive name: 647cfb11c5653275788bf3d134961e897b14de80
WithAnnotationsTest.testDeliveryMetaAnnotation()github
fb)

Test annotation on the field declared by the annotated type.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.delivery
Test archive name: 647cfb11c5653275788bf3d134961e897b14de80
WithAnnotationsTest.testDelivery()github
fc)

Test annotation on the method declared by the annotated type.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.delivery
Test archive name: 647cfb11c5653275788bf3d134961e897b14de80
WithAnnotationsTest.testDelivery()github
Test archive name: 647cfb11c5653275788bf3d134961e897b14de80
WithAnnotationsTest.testDeliveryMetaAnnotation()github
Test archive name: 3734796ac36a6681a077fefbdcac65e23d5cc3c1
EnterpriseWithAnnotationsTest.testDelivery()github
Test archive name: 3734796ac36a6681a077fefbdcac65e23d5cc3c1
EnterpriseWithAnnotationsTest.testDeliveryMetaAnnotation()github
fd)

Test annotation on the constructor declared by the annotated type.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.delivery
Test archive name: 647cfb11c5653275788bf3d134961e897b14de80
WithAnnotationsTest.testDelivery()github
fe)

Test annotation on the parameter of the method declared by the annotated type.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.delivery
Test archive name: 647cfb11c5653275788bf3d134961e897b14de80
WithAnnotationsTest.testDelivery()github
ff)

Test annotation on the parameter of the constructor declared by the annotated type.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.delivery
Test archive name: 647cfb11c5653275788bf3d134961e897b14de80
WithAnnotationsTest.testDelivery()github
g)

The annotation may be applied as a meta-annotation on any annotation considered.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.delivery
Test archive name: 647cfb11c5653275788bf3d134961e897b14de80
WithAnnotationsTest.testDeliveryMetaAnnotation()github
Test archive name: 3734796ac36a6681a077fefbdcac65e23d5cc3c1
EnterpriseWithAnnotationsTest.testDeliveryMetaAnnotation()github
h)

If the @WithAnnotations annotation is applied to any other event parameter, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.delivery.broken
Test archive name: b771db6b5a4d4f30d956edc795ceb53831c147f
WithAnnotationsAppliedToIllegalEventParameterTest.testDeploymentFails()github
Test archive name: 8418c35fd2605d4513f464e0d7627f9cb67061d2
WithAnnotationsAppliedToIllegalContainerLifecycleEventParameterTest.testDeploymentFails()github
ba)

getAnnotatedType() returns the AnnotatedType object that will be used by the container to read the declared annotations.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 30abba83a12189638e3a61afe8367083f1cd48
ProcessAnnotatedTypeTest.testGetAnnotatedType()github
bb)

setAnnotatedType() replaces the AnnotatedType.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 30abba83a12189638e3a61afe8367083f1cd48
ProcessAnnotatedTypeTest.testSetAnnotatedType()github
bba)

configureAnnotatedType() returns an AnnotatedTypeConfigurator (as defined in AnnotatedTypeConfigurator interface) initialized with the AnnotatedType processed by the event to easily configure the AnnotatedType which will be used to replace the original one at the end of observer invocation.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.annotatedTypeConfigurator
Test archive name: 1f55f98e64ae242f59e20c8b66ba1ebbcd38cb
AnnotatedTypeConfiguratorTest.configuratorInitializedWithOriginalAT()github
bbb)

configureAnnotatedType() method always returns the same AnnotatedTypeConfigurator.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators
Test archive name: 197ecbb8c830aef2b1f8c3c1a9aea450963248f
BasicConfiguratorsTest.configuratorReturnsAlwaysSameAnnotatedTypeConfigurator()github
bc)

veto() forces the container to ignore the type.

Coverage

org.jboss.cdi.tck.tests.decorators.custom
Test archive name: 9da47bd02649dabcc929abaf44cfab131268ed7
CustomDecoratorTest.testCustomImplementationOfDecoratorInterface()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.synthetic
Test archive name: 64987b56ad65eddb67bc4c8db52dd1e9f1b23f4d
ProcessBeanAttributesNotFiredForSyntheticBeanTest.testProcessBeanAttributesNotFired()github
org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 30abba83a12189638e3a61afe8367083f1cd48
ProcessAnnotatedTypeTest.testVeto()github
bd)

getSource() returns the Extension instance that added the annotated type.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.synthetic
Test archive name: 2f5371913b60257fe37d13ea81cba7cc31b5c0f3
ProcessSyntheticAnnotatedTypeTest.testEventsSources()github

Any observer of this event is permitted to wrap and/or replace the AnnotatedType. The container must use the final value of this property, after all observers have been called, as the only source of types and annotations for the the program elements.

ca)

Test replacing AnnotatedType added by BeforeBeanDiscovery.addAnnotatedType().

Coverage

org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 30abba83a12189638e3a61afe8367083f1cd48
ProcessAnnotatedTypeTest.testSetAnnotatedType()github
k)

Any observer of this event is permitted to wrap and/or replace the AnnotatedType by calling either setAnnotatedType() or configureAnnotatedType(). If both methods are called within an observer notification an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.invalid
Test archive name: c4e193d1dc8fac49bebeeb8f8a2dcb75523ab91
ConfiguratorAndSetMethodTest.testPAT()github
e)

If any observer method of a ProcessAnnotatedType event throws an exception, the exception is treated as a definition error by the container.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.broken.processAnnotatedObserverThrowsException
Test archive name: 3e299d6e68d2bdbf16a439ee57f7e02c8fae540
ProcessAnnotatedTypeEventThrowsExceptionTest.testProcessAnnotatedTypeEventThrowsExceptionNotOk()github
f)

If any ProcessAnnotatedType method is called outside of the observer method invocation, an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.events
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testProcessAnnotatedTypeEventFails()github
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testProcessSyntheticAnnotatedTypeEventFails()github

#### Section 11.5.7 - ProcessInjectionPoint event [process_injection_point]

a)

The container must fire an event for every injection point of every bean, interceptor and decorator. The event object must be of type jakarta.enterprise.inject.spi.ProcessInjectionPoint<T, X> where T is the bean class and X is the declared type of the injection point.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint.modify
Test archive name: 4fa72cfe42aeecee7e498e45fd18a51b1b6e6d31
InjectionPointOverridingTest.testOverridingFieldInjectionPoint()github
Test archive name: 4fa72cfe42aeecee7e498e45fd18a51b1b6e6d31
InjectionPointOverridingTest.testDelegateInjectionPoint()github
Test archive name: 4fa72cfe42aeecee7e498e45fd18a51b1b6e6d31
InjectionPointOverridingTest.testNewInjectionPointDiscovered()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testFieldInjectionPoint()github
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testConstructorInjectionPoint()github
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testInitializerInjectionPoint()github
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testProducerMethodInjectionPoint1()github
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testProducerMethodInjectionPoint2()github
ba)

getInjectionPoint() returns the InjectionPoint object that will be used by the container to perform injection.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testFieldInjectionPoint()github
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testConstructorInjectionPoint()github
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testInitializerInjectionPoint()github
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testProducerMethodInjectionPoint1()github
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testProducerMethodInjectionPoint2()github
bb)

setInjectionPoint() replaces the InjectionPoint.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint.modify
Test archive name: 4fa72cfe42aeecee7e498e45fd18a51b1b6e6d31
InjectionPointOverridingTest.testOverridingFieldInjectionPoint()github
Test archive name: 4fa72cfe42aeecee7e498e45fd18a51b1b6e6d31
InjectionPointOverridingTest.testDelegateInjectionPoint()github
Test archive name: 4fa72cfe42aeecee7e498e45fd18a51b1b6e6d31
InjectionPointOverridingTest.testNewInjectionPointDiscovered()github
bba)

configureInjectionPoint() returns an InjectionPointConfigurator (as defined in InjectionPointConfigurator interface) initialized with the InjectionPoint processed by the event to easily configure the InjectionPoint which will be used to replace the original one at the end of observer invocation.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.injectionPoint
Test archive name: 2b8cba1e53dccbb33d64142963a595f8ef959e6
InjectionPointConfiguratorTest.configuratorInitializedWithOriginalInjectionPoint()github
bbb)

configureInjectionPoint() method always returns the same InjectionPointConfigurator.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators
Test archive name: 197ecbb8c830aef2b1f8c3c1a9aea450963248f
BasicConfiguratorsTest.configuratorReturnsAlwaysSameInjectionPointConfigurator()github
bc)

addDefinitionError() registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint.broken
Test archive name: abcb6a11b79534a32a479c18c3e93b0876510
AddDefinitionErrorTest.testDeployment()github
c)

Any observer of this event is permitted to wrap and/or replace the InjectionPoint. The container must use the final value of this property, after all observers have been called, whenever it performs injection upon the injection point.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint.modify
Test archive name: 4fa72cfe42aeecee7e498e45fd18a51b1b6e6d31
InjectionPointOverridingTest.testOverridingFieldInjectionPoint()github
Test archive name: 4fa72cfe42aeecee7e498e45fd18a51b1b6e6d31
InjectionPointOverridingTest.testDelegateInjectionPoint()github
Test archive name: 4fa72cfe42aeecee7e498e45fd18a51b1b6e6d31
InjectionPointOverridingTest.testNewInjectionPointDiscovered()github
g)

Any observer of this event is permitted to wrap and/or replace the AnnotatedType by calling either setAnnotatedType() or configureAnnotatedType(). If both methods are called within an observer notification an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.invalid
Test archive name: c4e193d1dc8fac49bebeeb8f8a2dcb75523ab91
ConfiguratorAndSetMethodTest.testPIP()github
d)

If any observer method of a ProcessInjectionPoint event throws an exception, the exception is treated as a definition error by the container.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint.broken
Test archive name: 2a98b075f7b2213476721094cd3386ed4ec5a9
ThrowExceptionTest.testDeployment()github
e)

If any ProcessInjectionPoint method is called outside of the observer method invocation, an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.events
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testProcessInjectionPointEventFails()github

#### Section 11.5.7.1 - InjectionPointConfigurator interface [injection_point_configurator]

With InjectionPointConfigurator you can perform the following operation:

ba)

Set the type of `InjectionPoint` with type method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.injectionPoint
Test archive name: 2b8cba1e53dccbb33d64142963a595f8ef959e6
InjectionPointConfiguratorTest.changeTypeAndAddQualifier()github
bb)

Add a qualifier with addQualifier method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.injectionPoint
Test archive name: 2b8cba1e53dccbb33d64142963a595f8ef959e6
InjectionPointConfiguratorTest.changeTypeAndAddQualifier()github
bc)

Set or add multiple qualifiers with addQualifiers and qualifiers methods.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.injectionPoint
Test archive name: 2b8cba1e53dccbb33d64142963a595f8ef959e6
InjectionPointConfiguratorTest.replaceQualifiersAndDelegate()github
be)

Make the injection point delegate with delegate method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.injectionPoint
Test archive name: 2b8cba1e53dccbb33d64142963a595f8ef959e6
InjectionPointConfiguratorTest.replaceQualifiersAndDelegate()github
bf)

Make the injection point a transient field with transientField method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.injectionPoint
Test archive name: 2b8cba1e53dccbb33d64142963a595f8ef959e6
InjectionPointConfiguratorTest.readFromFieldAndCheckTransientField()github

#### Section 11.5.8 - ProcessInjectionTarget event [process_injection_target]

The container must fire an event for every bean, interceptor or decorator. The event object must be of type jakarta.enterprise.inject.spi.ProcessInjectionTarget<X>, where x is the managed bean class.

aaa)

Test event is fired for a managed bean

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testInjectionTargetInject()github
org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessInjectionTargetFiredForManagedBean()github

getAnnotatedType() returns the AnnotatedType representing the managed bean class.

aba)

Test type for a managed bean

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testGetAnnotatedTypeOnProcessInjectionTarget()github
ba)

getInjectionTarget() returns the InjectionTarget object that will be used by the container to perform injection.

Coverage

No tests exist for this assertion

bb)

setInjectionTarget() replaces the InjectionTarget.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testSettingInjectionTargetReplacesIt()github
da)

addDefinitionError() registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.

Coverage

org.jboss.cdi.tck.tests.extensions.producer.broken.injectionTargetError
Test archive name: dd23dec616d8bcf14a8d55b7acb235b4eba
InjectionTargetDefinitionErrorTest.testAddingDefinitionError()github

Any observer of this event is permitted to wrap and/or replace the InjectionTarget. The container must use the final value of this property, after all observers have been called, whenever it performs injection upon the managed bean.

ea)

Test type for a managed bean

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testSettingInjectionTargetReplacesIt()github
f)

If any observer method of a ProcessInjectionTarget event throws an exception, the exception is treated as a definition error by the container.

Coverage

org.jboss.cdi.tck.tests.extensions.annotated.broken.processInjectionTargetThrowsException
Test archive name: 9e5ad33f17e74d310dab031783c9e38e9f4c32
ProcessInjectionTargetEventThrowsExceptionTest.testProcessInjectionTargetEventThrowsExceptionNotOk()github
g)

If any ProcessInjectionTarget method is called outside of the observer method invocation, an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.events
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testProcessInjectionTargetEventFails()github

#### Section 11.5.9 - ProcessBeanAttributes event [process_bean_attributes]

The container must fire an event for each enabled bean, interceptor or decorator deployed in a bean archive, before registering the Bean object. No event is fired for any @New qualified bean, defined in Section 3.14, "@New qualified beans" or beans added programmatically using AfterBeanDiscovery.addBean() or for any built-in beans. The event object must be of type jakarta.enterprise.inject.spi.ProcessBeanAttributes<T> where T is the bean class of the bean, the return type of the producer method, or the type of the producer field.

aa)

Event is fired for enabled bean.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.specialization
Test archive name: f959173a26132581b2ace4f98b3a9606472b6de
VetoTest.testSpecializedBeanAvailableAfterSpecializingBeanVetoed()github
Test archive name: ca4d64dc82ea8f98fca0ebd5d5d14ad7bd0fe
SpecializationTest.testProcessBeanAttributesFiredProperlyForSpecializedBean()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.specialization.broken
Test archive name: e1b99352a5784337a5691b3e4c4da13f2f687b0
TypeConflictDetectionTest.testDeployment()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testManagedBeanAttributes()github
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testSessionBeanAttributes()github
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testProducerMethodBeanAttributes()github
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testProducerFieldBeanAttributes()github
ab)

Event is fired for enabled interceptor.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testInterceptorBeanAttributes()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.interceptor
Test archive name: 3378b67d576deca8ffe4eb24aaf452e957a0
InterceptorProcessBeanAttributesTest.testAlphaInterceptorObserved()github
Test archive name: 3378b67d576deca8ffe4eb24aaf452e957a0
InterceptorProcessBeanAttributesTest.testBravoInterceptorObserved()github
ac)

Event is fired for enabled decorator.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testDecoratorBeanAttributes()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.decorator
Test archive name: ac0cd66c6a4468484d76562961d1d4bbd9f47c8
DecoratorProcessBeanAttributesTest.testAlphaDecoratorObserved()github
Test archive name: ac0cd66c6a4468484d76562961d1d4bbd9f47c8
DecoratorProcessBeanAttributesTest.testBravoDecoratorObserved()github
ad)

No event is fired for any @New qualified bean.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testManagedBeanAttributes()github
ae)

No event is fired for beans added programmatically using AfterBeanDiscovery.addBean().

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.synthetic
Test archive name: 64987b56ad65eddb67bc4c8db52dd1e9f1b23f4d
ProcessBeanAttributesNotFiredForSyntheticBeanTest.testProcessBeanAttributesNotFired()github
af)

No event is fired for any built-in bean.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.builtin
Test archive name: 28c438e06822e36fa389a68b1ac9d6163ff1197
ProcessBeanAttributesNotFiredForBuiltinBean.testProcessBeanAttributesNotFired()github

getAnnotated() returns the AnnotatedType representing the bean class, the AnnotatedMethod representing the producer field, or the AnnotatedField representing the producer field.

baa)

Test managed bean.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testManagedBeanAnnotated()github
bac)

Test producer method.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testProducerMethodAnnotated()github
bad)

Test producer field.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testProducerFieldAnnotated()github
bb)

getBeanAttributes() returns the BeanAttributes object that will be used by the container to manage instances of the bean.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testSessionBeanAttributes()github
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testInterceptorBeanAttributes()github
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testDecoratorBeanAttributes()github
bc)

setBeanAttributes() replaces the BeanAttributes.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.modify
Test archive name: bcd3f1347517f71bdd6685144d9aa1c58f0191c
SetBeanAttributesTest.testBeanModified()github
bca)

configureBeanAttributes() returns a BeanAttributesConfigurator (as defined in BeanAttributesConfigurator interface) initialized with the BeanAttributes processed by the event to easily configure the BeanAttributes which will be used to replace the original one at the end of observer invocation.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.beanAttributes
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.configuratorInitializedWithOriginalBeanAttributes()github
bcb)

configureBeanAttributes() method always returns the same BeanAttributesConfigurator

Coverage

org.jboss.cdi.tck.tests.extensions.configurators
Test archive name: 197ecbb8c830aef2b1f8c3c1a9aea450963248f
BasicConfiguratorsTest.configuratorReturnsAlwaysSameBeanAttributesConfigurator()github
bd)

addDefinitionError() registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.broken
Test archive name: efec121ea020b0778fc7fa87b612617b165c4c1f
AddDefinitionErrorTest.testDeployment()github
be)

veto() forces the container to ignore the bean.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.specialization
Test archive name: f959173a26132581b2ace4f98b3a9606472b6de
VetoTest.testSpecializedBeanAvailableAfterSpecializingBeanVetoed()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.veto
Test archive name: 4e902c263f98c9f5c8260e5fef512a15ad74dd
VetoTest.testBeanVetoed()github
bf)

ignoreFinalMethods() method instructs the container to ignore all non-static, final methods with public, protected or default visibility declared on any bean type of the specific bean during validation of injection points that require proxyable bean type. These method should never be invoked upon bean instances. Otherwise, unpredictable behavior results. It will bypass standard rules defined in Unproxyable bean types.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.ignoreFinalMethods
Test archive name: 5f65a7ccac5757ce9618a97b4491b05040cb2e
IgnoreFinalMethodsTest.testAppDeployedAndBeanIsAvailable()github

Any observer of this event is permitted to wrap and/or replace the BeanAttributes. The container must use the final value of this property, after all observers have been called, to manage instances of the bean. Changes to BeanAttributes are not propagated to the annotated type from which the bean definition was created.

ca)

Test the final value of this property is used.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.modify
Test archive name: bcd3f1347517f71bdd6685144d9aa1c58f0191c
SetBeanAttributesTest.testBeanModified()github
cc)

Test the changes are not propagated.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.modify
Test archive name: bcd3f1347517f71bdd6685144d9aa1c58f0191c
SetBeanAttributesTest.testChangesAreNotPropagated()github
d)

If any observer method of a ProcessBeanAttributes event throws an exception, the exception is treated as a definition error by the container.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.broken
Test archive name: 56627bd53c0133efb96c0ac63c4fc8a6ba794a7
ThrowExceptionTest.testDeployment()github
g)

Any observer of this event is permitted to wrap and/or replace the AnnotatedType by calling either setAnnotatedType() or configureAnnotatedType(). If both methods are called within an observer notification an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.invalid
Test archive name: c4e193d1dc8fac49bebeeb8f8a2dcb75523ab91
ConfiguratorAndSetMethodTest.testPBA()github
e)

Any bean which has its bean attributes altered must have it’s definition validated during deployment validation.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.modify.broken
Test archive name: 9c46bca6b0eb22d4a38aebf416dbd5782d94c884
SetBeanAttributesTest.testBeanDefinitionIsValidated()github
f)

If any ProcessBeanAttributes method is called outside of the observer method invocation, an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.events
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testProcessBeanAttributesEventFails()github

#### Section 11.5.9.1 - BeanAttributesConfigurator interface [bean_attributes_configurator]

a)

BeanAttributesConfigurator is obtainable during ProcessBeanAttributes event and is therefore automatically initialized from existing BeanAttributes.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.beanAttributes
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testSingleAdditionMethods()github
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testMultiAdditionMethods()github
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testReplacementMethods()github

With `BeanAttributesConfigurator` you can perform the following operation:

ba)

Add type with addType or addTransitiveTypeClosure methods.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.beanAttributes
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testSingleAdditionMethods()github
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testReplacementMethods()github
bb)

Set multiple types with types methods.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.beanAttributes
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testMultiAdditionMethods()github
bc)

Set scope with scope method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.beanAttributes
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testMultiAdditionMethods()github
bd)

Add a qualifier with addQualifier method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.beanAttributes
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testSingleAdditionMethods()github
be)

Set or add multiple qualifiers with addQualifiers and qualifiers methods.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.beanAttributes
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testMultiAdditionMethods()github
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testReplacementMethods()github
bf)

Add a stereotype with addStereotype method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.beanAttributes
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testSingleAdditionMethods()github
bg)

Set or add multiple stereotypes with addStereotypes and stereotypes methods.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.beanAttributes
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testMultiAdditionMethods()github
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testReplacementMethods()github
bh)

Set the bean name name method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.beanAttributes
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testSingleAdditionMethods()github
bi)

Make the bean an alternative with alternative methods.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.beanAttributes
Test archive name: c49b78a13dbef4d3563b3c56d53ceb4cb7817
BeanAttributesConfiguratorTest.testMultiAdditionMethods()github

#### Section 11.5.10 - ProcessBean event [process_bean]

aa)

The container must fire an event for each bean, interceptor or decorator deployed in a bean archive, after firing the ProcessBeanAttributes for the bean and before registering the Bean object. No event is fired for any @New qualified bean, defined in Section 3.12, "@New qualified beans".

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessBeanFiredForInterceptor()github
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessBeanFiredForDecorator()github
ba)

For a managed bean with bean class X, the container must raise an event of type ProcessManagedBean<X>.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessBeanEvent()github
org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessManagedBeanFired()github
bb)

Test ProcessManagedBean is fired after ProcessBeanAttributes.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessBeanEvent()github
eaa)

For a producer method with method return type X of a bean with bean class T, the container must raise an event of type ProcessProducerMethod<T, X>.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerMethodEvent()github
eab)

Test ProcessProducerMethod is fired after ProcessBeanAttributes.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerMethodEvent()github
eba)

For a producer field with field type X of a bean with bean class T, the container must raise an event of type ProcessProducerField<T, X>.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerFieldEvent()github
ebb)

Test ProcessProducerField is fired after ProcessBeanAttributes.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerFieldEvent()github
eca)

For a custom implementation of Bean, the container must raise an event of type ProcessSyntheticBean <X>.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.bean
Test archive name: 226315f365f1a7c2555699cd696d2f5e765d6dc
BeanConfiguratorTest.processSynthethicBeanEventFired()github
org.jboss.cdi.tck.tests.extensions.afterBeanDiscovery
Test archive name: 69c08051d15243f4def07d9335e6f77bde2633d
AfterBeanDiscoveryTest.testProcessBeanIsFired()github
ec)

Resources are considered to be producer fields.

Coverage

org.jboss.cdi.tck.tests.extensions.producer.remote
Test archive name: 6298718fec69e5f67d88d58e1a3b9c91588af1
RemoteProducerTest.testResourceAreConsideredToBeProducerField()github

The interface jakarta.enterprise.inject.spi.ProcessBean is a supertype of all these event types.

eda)

Test ProcessManagedBean

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessBeanEvent()github
edc)

Test ProcessProducerMethod

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerMethodEvent()github
edd)

Test ProcessProducerField

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerFieldEvent()github

getAnnotated() returns the AnnotatedType representing the bean class, the AnnotatedMethod representing the producer method, or the AnnotatedField representing the producer field. If invoked upon a ProcessSyntheticBean event, non-portable behavior results and the returned value should be ignored.

efa)

Test ProcessManagedBean

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessBeanEvent()github
efc)

Test ProcessProducerMethod

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerMethodEvent()github
efd)

Test ProcessProducerField

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerFieldEvent()github

getBean() returns the Bean object that is about to be registered. The Bean may implement Interceptor or Decorator.

fa)

Test ProcessManagedBean

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessBeanEvent()github
fc)

Test ProcessProducerMethod

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerMethodEvent()github
fd)

Test ProcessProducerField

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerFieldEvent()github
h)

addDefinitionError() registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.

Coverage

org.jboss.cdi.tck.tests.extensions.container.event.broken.processBeanObserverRegistersException
Test archive name: 3ebf359da17eaab8267e2f17ff99df18d83e1115
AddDefinitionErrorTest.testAddDefinitionError()github
hd)

If any observer method of a ProcessBean event throws an exception, the exception is treated as a definition error by the container.

Coverage

org.jboss.cdi.tck.tests.extensions.container.event.broken.processBeanObserverThrowsException
Test archive name: 1ca8a051c429aff98755da3a4064e8b519df42b
ThrowExceptionInProcessBeanObserverTest.testProcessBeanObserverThrowsException()github
The following assertion is not made explicitly by the spec, however it is implied i)

Check the getAnnotatedProducerMethod()

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerMethodEvent()github
The following assertion is not made explicitly by the spec, however it is implied j)

Check the getAnnotatedDisposesParameter()

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerMethodEvent()github

Check the getAnnotatedBeanClass()

The following assertion is not made explicitly by the spec, however it is implied l)

Check for managed bean

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessBeanEvent()github
The following assertion is not made explicitly by the spec, however it is implied n)

Check the getAnnotatedProducerField()

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerFieldEvent()github
o)

If any ProcessBean method is called outside of the observer method invocation, an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.events
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testProcessBeanEventFails()github
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testProcessManagedBeanEventFails()github
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testProcessSessionBeanEventFails()github
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testProcessProducerMethodEventFails()github
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testProcessProducerFieldEventFails()github

#### Section 11.5.11 - ProcessProducer event [process_producer]

The container must fire an event for each producer method or field of each enabled bean, including resources.

aa)

Test producer method

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testProcessProducerEventFiredForProducerMethod()github
org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceCallsProducerMethod()github
ab)

Test producer field

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testProcessProducerEventFiredForProducerField()github
org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceAccessesProducerField()github
ac)

Test resource producer field

Coverage

org.jboss.cdi.tck.tests.extensions.producer.remote
Test archive name: 6298718fec69e5f67d88d58e1a3b9c91588af1
RemoteProducerTest.testProduceCallsOverridenResourceProducerMethod()github

The event object must be of type jakarta.enterprise.inject.spi.ProcessProducer<T, X>, where T is the bean class of the bean that declares the producer method or field and X is the return type of the producer method or the type of the producer field.

ba)

Test producer method

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testProcessProducerEventFiredForProducerMethod()github
org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceCallsProducerMethod()github
bb)

Test producer field

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testProcessProducerEventFiredForProducerField()github
org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceAccessesProducerField()github

getAnnotatedMember() returns the AnnotatedField representing the producer field or the AnnotatedMethod representing the producer method.

ca)

Test producer method

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceCallsProducerMethod()github
cb)

Test producer field

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceAccessesProducerField()github

getProducer() returns the Producer object that will be used by the container to call the producer method or read the producer field.

da)

Test producer method

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceCallsProducerMethod()github
db)

Test producer field

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceAccessesProducerField()github
e)

setProducer() replaces the Producer.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testSetProducerOverridesProducer()github
org.jboss.cdi.tck.tests.extensions.producer.remote
Test archive name: 6298718fec69e5f67d88d58e1a3b9c91588af1
RemoteProducerTest.testProduceCallsOverridenResourceProducerMethod()github
f)

configureProducer() returns a ProducerConfigurator (as defined in ProducerConfigurator interface) initialized with the Producer processed by this event to configure the Producer that will replace the original one at the end of the observer invocation. Each call returns the same configurator instance within an observer notification

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.producer
Test archive name: a4647beeee792fca7ba146e12b3343e1ce74fb2b
ProducerConfiguratorTest.configuratorOptionsTest()github
g)

addDefinitionError() registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.

Coverage

org.jboss.cdi.tck.tests.extensions.producer.broken.processing
Test archive name: dbd4d5afe4155e88b9e71d278d7e6bdb70e4e6e4
ProducerProcessingWithDefinitionErrorTest.testExplicitDefinitionError()github

Any observer of this event is permitted to wrap and/or replace the Producer by calling either setProducer() or configureProducer(). If both methods are called within an observer notification an IllegalStateException is thrown. The container must use the final value of this property, after all observers have been called, whenever it calls the producer or disposer.

ga)

Test producer method

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testSetProducerOverridesProducer()github
gb)

Test producer field

Coverage

org.jboss.cdi.tck.tests.extensions.producer.remote
Test archive name: 6298718fec69e5f67d88d58e1a3b9c91588af1
RemoteProducerTest.testProduceCallsOverridenResourceProducerMethod()github
gc)

If both methods setProducer() and configureProducer() are called within an observer notification an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.producer.broken
Test archive name: e6d9e31b4780b4400d7afffca3133eb5dc6fa9
ModifyingProducerViaConfigureAndSetTest.testDeploymentThrowsISE()github
h)

If any observer method of a ProcessProducer event throws an exception, the exception is treated as a definition error by the container.

Coverage

org.jboss.cdi.tck.tests.extensions.producer.broken.processing
Test archive name: a3a52b8c1a3da0bd76945cd2227b9d5a63f22ab
ProducerProcessingWithExceptionTest.testException()github
i)

If any ProcessProducer method is called outside of the observer method invocation, an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.events
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testProcessProducer()github

#### Section 11.5.11.1 - ProducerConfigurator interface [producer_configurator]

With ProducerConfigurator you can perform the following operations:

a)

Set a callback to produce a new instance with produceWith() method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.producer
Test archive name: a4647beeee792fca7ba146e12b3343e1ce74fb2b
ProducerConfiguratorTest.configuratorOptionsTest()github
b)

Set a callback to destroy the produced instance with disposeWith() method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.producer
Test archive name: a4647beeee792fca7ba146e12b3343e1ce74fb2b
ProducerConfiguratorTest.configuratorOptionsTest()github

#### Section 11.5.12 - ProcessObserverMethod event [process_observer_method]

aaa)

The container must fire an event for each observer method of each enabled bean, before registering the ObserverMethod object. The event object must be of type jakarta.enterprise.inject.spi.ProcessObserverMethod<T, X> where T is the bean class of the bean that declares the observer method and X is the observed event type of the observer method.

Coverage

org.jboss.cdi.tck.tests.extensions.observer
Test archive name: daa283d120f8b9ddb8c9b42ef50206e86a69ca5
ProcessObserverMethodEventTest.testProcessObserverMethodEventsSent()github
aab)

For a custom implementation of jakarta.enterprise.inject.spi.ObserverMethod, the container must raise an event of type jakarta.enterprise.inject.spi.ProcessSyntheticObserverMethod<T, X>, where T is the observed event type of the observer method and X is the return value of ObserverMethod.getBeanClass().

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.syntheticEventInvokedAndReturningSourceTest()github
aba)

getAnnotatedMethod() returns the AnnotatedMethod representing the observer method. If invoked upon a ProcessSyntheticObserverMethod event, non-portable behavior results and the returned value should be ignored.

Coverage

org.jboss.cdi.tck.tests.extensions.observer
Test archive name: daa283d120f8b9ddb8c9b42ef50206e86a69ca5
ProcessObserverMethodEventTest.testGetAnnotatedMethod()github
ba)

getObserverMethod() returns the ObserverMethod object that will be used by the container to call the observer method.

Coverage

org.jboss.cdi.tck.tests.extensions.observer
Test archive name: daa283d120f8b9ddb8c9b42ef50206e86a69ca5
ProcessObserverMethodEventTest.testGetObserverMethod()github
da)

addDefinitionError() registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.

Coverage

org.jboss.cdi.tck.tests.extensions.observer.broken.definitionError
Test archive name: 687b993a3a6fc359b67279a43fb38a516bbf8c8
ProcessObserverMethodErrorTest.testAddDefinitionError()github
daa)

setObserverMethod() replaces the ObserverMethod.

Coverage

org.jboss.cdi.tck.tests.extensions.observer
Test archive name: daa283d120f8b9ddb8c9b42ef50206e86a69ca5
ProcessObserverMethodEventTest.replaceWithSetObserverMethod()github
dab)

configureObserverMethod() returns an ObserverMethodConfigurator (as defined in ObserverMethodConfigurator interface) initialized with the ObserverMethod processed by the event to easily configure the ObserverMethod which will be used to replace the original one at the end of observer invocation.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.configuratorInitializedWithOriginalObserverMethod()github
dac)

configureObserverMethod() method always returns the same ObserverMethodConfigurator

Coverage

org.jboss.cdi.tck.tests.extensions.configurators
Test archive name: 197ecbb8c830aef2b1f8c3c1a9aea450963248f
BasicConfiguratorsTest.configuratorReturnsAlwaysSameObserverMethodConfigurator()github
dad)

veto() forces the container to ignore the ObserverMethod.

Coverage

org.jboss.cdi.tck.tests.extensions.observer
Test archive name: daa283d120f8b9ddb8c9b42ef50206e86a69ca5
ProcessObserverMethodEventTest.vetoEventD()github
dae)

getSource() returns the Extension instance that added the observer method.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.observerMethod
Test archive name: 9c247a2b95f69f7af9fe81ebdd1ce523c91a1d
ObserverMethodConfiguratorTest.syntheticEventInvokedAndReturningSourceTest()github
e)

Any observer of this event is permitted to wrap and/or replace the AnnotatedType by calling either setAnnotatedType() or configureAnnotatedType(). If both methods are called within an observer notification an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.configurators.invalid
Test archive name: c4e193d1dc8fac49bebeeb8f8a2dcb75523ab91
ConfiguratorAndSetMethodTest.testPOM()github
db)

If any observer method of a ProcessObserverMethod event throws an exception, the exception is treated as a definition error by the container.

Coverage

org.jboss.cdi.tck.tests.extensions.observer.broken.exception
Test archive name: 6d4c67ad982460f0c76caad0d0b9a398d240e176
ProcessObserverMethodExceptionTest.testExceptionIsDefinitionError()github
dc)

If any ProcessObserverMethod method is called outside of the observer method invocation, an IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.events
Test archive name: 6b4d6fba2376795aff605fa0f34618107436492e
ContainerLifeCycleEventRuntimeInvocationTest.testProcessObserverMethodEventFails()github

#### Section 11.6 - Configurators interfaces [configurators]

CDI 2.0 introduced the following Configurators interface:

aa)

AnnotatedTypeConfigurator for AnnotatedType configuration.

ab)

InjectionPointConfigurator for InjectionPoint configuration

ac)

BeanAttributesConfigurator for BeanAttributes configuration

ad)

BeanConfigurator for Bean configuration

ae)

ObserverMethodConfigurator for ObserverMethod configuration.

af)

ProducerConfigurator interface for Producer configuration

ag)

The container must provide implementation for all these configurators and make them available in matching container lifecycle events as defined in `Container lifecycle events`.

#### Section 11.7 - The InterceptionFactory interface [interception_factory]

a)

Method ignoreFinalMethods() instructs the container to ignore all non-static, final methods with public, protected or default visibility declared by any class in the type hierarchy of the intercepted instance during invocation of createInterceptedInstance() method. Ignored methods should never be invoked upon the wrapper instance. Otherwise, unpredictable behavior results.

Coverage

org.jboss.cdi.tck.tests.extensions.interceptionFactory
Test archive name: bf3afca6a03a46d6d613b2aa61b6e4913f4213f8
InterceptionFactoryTest.producedWithFinalMethodIsIntercepted()github
b)

Method configure() returns an AnnotatedTypeConfigurator (as defined in AnnotatedTypeConfigurator SPI) initialized with the AnnotatedType created either for the class passed to BeanManager.createInterceptionFactory(CreationalContext, Class) or derived from the InterceptionFactory parameter injection point. The method always return the same AnnotatedTypeConfigurator

Coverage

org.jboss.cdi.tck.tests.extensions.interceptionFactory
Test archive name: bf3afca6a03a46d6d613b2aa61b6e4913f4213f8
InterceptionFactoryTest.producedInstanceIsIntercepted()github
Test archive name: bf3afca6a03a46d6d613b2aa61b6e4913f4213f8
InterceptionFactoryTest.producedWithFinalMethodIsIntercepted()github

Method createInterceptedInstance()

ca)

returns a wrapper instance whose method invocations are intercepted by method interceptors and forwarded to a provided instance.

Coverage

org.jboss.cdi.tck.tests.extensions.interceptionFactory
Test archive name: bf3afca6a03a46d6d613b2aa61b6e4913f4213f8
InterceptionFactoryTest.producedInstanceIsIntercepted()github
Test archive name: bf3afca6a03a46d6d613b2aa61b6e4913f4213f8
InterceptionFactoryTest.producedWithFinalMethodIsIntercepted()github
org.jboss.cdi.tck.tests.se.discovery.trimmed
Test archive name: 8c1338703c3d54318fdc3ea66adcfc1325d61040
TrimmedBeanArchiveSETest.discoveredTypes()github
cb)

can be only called once, subsequent calls will throw an IllegalStateException.

Coverage

org.jboss.cdi.tck.tests.extensions.interceptionFactory.broken
Test archive name: 3285da35b895da937a79ab7dead0c0bb6ecc8fb
BrokenInterceptedInstanceTest.illegalExceptionIsThrownForSubsequentCall()github
cd)

If it is called at the type of the instance which is not proxyable as defined in `Unproxyable bean types` an UnproxyableResolutionException exception is thrown.

Coverage

org.jboss.cdi.tck.tests.extensions.interceptionFactory.broken
Test archive name: 3285da35b895da937a79ab7dead0c0bb6ecc8fb
BrokenInterceptedInstanceTest.unproxyableExceptionIsThrown()github
ce)

If the provided instance is an internal container construct (such as client proxy), non-portable behavior results.

f)

An InterceptionFactory can be obtain be calling BeanManager.createInterceptionFactory as defined in `Obtain an InterceptionFactory`

Coverage

org.jboss.cdi.tck.tests.extensions.interceptionFactory.customBean
Test archive name: e31a3bbc86fef9b2c9b865a0a78e438defca3fb3
CustomBeanWithInterceptorTest.customBeanIntercepted()github
g)

The container must provide a bean with scope `@Dependent`, bean type InterceptionFactory and qualifier `@Default`.

Coverage

org.jboss.cdi.tck.tests.extensions.interceptionFactory
Test archive name: bf3afca6a03a46d6d613b2aa61b6e4913f4213f8
InterceptionFactoryTest.interceptionFactoryBeanIsAvailable()github
h)

If an injection point of type InterceptionFactory and qualifier @Default exists and is not a parameter of a producer method, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.extensions.interceptionFactory.broken
Test archive name: 17d6dcd6f557d4740b193a13bdc59fc239899
InvalidInterceptionFactoryInjectionPointTest.noopTest()github

#### Section 12 - Packaging and deployment [packaging_deployment]

a)

When an application is started, the container must perform bean discovery, detect definition errors and deployment problems and raise events that allow portable extensions to integrate with the deployment lifecycle.

Bean discovery is the process of determining:

ba)

The bean archives that exist in the application, and the beans they contain

bb)

Which alternatives, interceptors and decorators are enabled for each bean archive

bc)

The ordering of enabled interceptors and decorators

c)

Additional beans may be registered programmatically with the container by the application or a portable extension after the automatic bean discovery completes. Portable extensions may even integrate with the process of building the Bean object for a bean, to enhance the container’s built-in functionality.

#### Section 12.1 - Bean archives [bean_archive]

a)

Bean classes of enabled beans must be deployed in bean archives.

oa)

An archive which contains a beans.xml file with the bean-discovery-mode of none is not a bean archive.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testNoBeanArchiveModeNone()github
ob)

An archive which contains an extension and no beans.xml file is not a bean archive.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testNotBeanArchiveExtension()github

An explicit bean archive is an archive which contains a beans.xml file with a version number of 1.1 (or later), with the bean-discovery-mode of all, or with no version number, or that is an empty file.

ba)

Test an archive which contains a beans.xml file with a version number of 1.1, with the bean-discovery-mode of all.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testExplicitBeanArchiveModeAll()github
bb)

Test an archive which contains a beans.xml file with no version number.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testExplicitBeanArchiveEmptyDescriptor()github
bc)

Test an archive which contains an empty beans.xml.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testExplicitBeanArchiveEmptyDescriptor()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testExplicitBeanArchiveLegacyDescriptor()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testExplicitBeanArchiveLegacyDescriptor()github
ca)

An implicit bean archive is any other archive which contains one or more bean classes with a bean defining annotation as defined in Section 2.5.1, “Bean defining annotations”.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testNormalScopeImplicitBeanArchiveNoDescriptor()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testNormalScopeImplicitBeanArchiveModeAnnotated()github

When determining which archives are bean archives, the container must consider:

da)

Library jars

dc)

Directories in the JVM classpath.

The beans.xml file must be named:

fa)

META-INF/beans.xml

h)

If beans.xml file with version 1.1 is used, the bean-discovery-mode attribute is required.

i)

For compatibility with Contexts and Dependency 1.0, products must contain an option to cause an archive to be ignored by the container when no beans.xml is present.

k)

If a bean class is deployed in two different bean archives, non-portable behaviour results. Portable applications must deploy each bean class in no more than one bean archive.

l)

Explicit bean archives may contain classes which are not deployed as beans. For example a bean archive might contain an abstract class not annotated with @Decorator.

m)

Implicit bean archives are likely to contain classes which are not deployed as beans.

n)

An extension may be deployed in any archive, including those that are not bean archives.

Coverage

org.jboss.cdi.tck.tests.extensions.registration
Test archive name: fd49ea251f3d71e1db295a620b341d64ef318ce
BeanRegistrationByExtensionInNonBeanArchiveTest.shouldFindBeanReference()github
Test archive name: 33b68aedfaae8ad81daa5015fbdac6aaeddc130
TwoBeansOneClassTest.testTwoBeansWithOneBaseClass()github
Test archive name: b66b67c9d3a7e6b271cdd474a0e3d638967113f5
BeanRegistrationByExtensionInEarLibraryTest.shouldFindBeanReference()github
Test archive name: b66b67c9d3a7e6b271cdd474a0e3d638967113f5
BeanRegistrationByExtensionInEarLibraryTest.shouldRegisterExtensions()github
Test archive name: fa930ec3df5324439b18577bc16f3361680b7b5
BeanRegistrationByExtensionInWarLibraryTest.shouldFindBeanReference()github
org.jboss.cdi.tck.tests.lookup.manager.provider.init
Test archive name: 775e1baba67d80836b431bf4b4161080f765b0b7
CDIProviderInitTest.testAccessingBeanManager()github

#### Section 12.2 - Application initialization lifecycle [initialization]

a)

When an application is started, the container performs the following steps.

b)

First, the container must search for service providers for the service jakarta.enterprise.inject.spi.Extension defined in Section 11.5, "Container lifecycle events", instantiate a single instance of each service provider, and search the service provider class for observer methods of initialization events.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd
Test archive name: 23c0c6dc959677bc56ef23ddf0f4d3d2c8ee7ed7
BeforeBeanDiscoveryTest.testBeforeBeanDiscoveryEventIsCalled()github
org.jboss.cdi.tck.tests.deployment.initialization
Test archive name: 88a85b7aa215287fbf602a8eb7c87730f788a558
ApplicationInitializationLifecycleTest.testInitialization()github
org.jboss.cdi.tck.tests.extensions.alternative.deployment
Test archive name: 8a325680be2ac764a8125cd1ce5fe777f5f3533c
AlternativeInLibraryWithExtensionTest.testAlternative()github
c)

Next, the container must fire an event of type BeforeBeanDiscovery, as defined in Section 11.5.1, "BeforeBeanDiscovery event".

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd
Test archive name: 23c0c6dc959677bc56ef23ddf0f4d3d2c8ee7ed7
BeforeBeanDiscoveryTest.testBeforeBeanDiscoveryEventIsCalled()github
org.jboss.cdi.tck.tests.deployment.initialization
Test archive name: 88a85b7aa215287fbf602a8eb7c87730f788a558
ApplicationInitializationLifecycleTest.testInitialization()github
i)

Next, the container must perform type discovery, as defined in Section 12.4.1, “Type discovery”

Coverage

org.jboss.cdi.tck.tests.deployment.initialization
Test archive name: 88a85b7aa215287fbf602a8eb7c87730f788a558
ApplicationInitializationLifecycleTest.testInitialization()github
j)

Next, the container must fire an event of type AfterTypeDiscovery, as defined in Section 11.5.2., "AfterTypeDiscovery event".

Coverage

org.jboss.cdi.tck.tests.deployment.initialization
Test archive name: 88a85b7aa215287fbf602a8eb7c87730f788a558
ApplicationInitializationLifecycleTest.testInitialization()github
ja)

Next, the container must perform bean discovery, as defined in Section 12.4.3, “Bean discovery”

Coverage

org.jboss.cdi.tck.tests.deployment.initialization
Test archive name: 88a85b7aa215287fbf602a8eb7c87730f788a558
ApplicationInitializationLifecycleTest.testInitialization()github
org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testManagedBean()github
e)

Next, the container must fire an event of type AfterBeanDiscovery, as defined in Section 11.5.2, "AfterBeanDiscovery event", and abort initialization of the application if any observer registers a definition error.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.broken.addDefinitionError
Test archive name: c81036f36ff5f0e182b7a72f1046ae689633adea
AddDefinitionErrorTest.testObserverDefinitionErrorTreatedAsDefinitionError()github
f)

Next, the container must detect deployment problems by validating bean dependencies and specialization and abort initialization of the application if any deployment problems exist, as defined in Section 2.9, "Problems detected automatically by the container".

Coverage

org.jboss.cdi.tck.tests.deployment.initialization
Test archive name: 88a85b7aa215287fbf602a8eb7c87730f788a558
ApplicationInitializationLifecycleTest.testInitialization()github
g)

Next, the container must fire an event of type AfterDeploymentValidation, as defined in Section 11.5.3, "AfterDeploymentValidation event", and abort initialization of the application if any observer registers a deployment problem.

Coverage

org.jboss.cdi.tck.tests.deployment.initialization
Test archive name: 88a85b7aa215287fbf602a8eb7c87730f788a558
ApplicationInitializationLifecycleTest.testInitialization()github
h)

Finally, the container begins directing requests to the application.

Coverage

org.jboss.cdi.tck.tests.deployment.initialization
Test archive name: 88a85b7aa215287fbf602a8eb7c87730f788a558
ApplicationInitializationLifecycleTest.testInitialization()github

#### Section 12.3 - Application shutdown lifecycle [shutdown]

When an application is stopped, the container performs the following steps:

a)

First, the container must destroy all contexts.

Coverage

org.jboss.cdi.tck.tests.deployment.shutdown
Test archive name: bc50d2dbebade51b96e7e73a1881db07c72c680
ApplicationShutdownLifecycleTest.testShutdown()github
b)

Finally, the container must fire an event of type BeforeShutdown, as defined in Section 11.5.4, "BeforeShutdown event".

Coverage

org.jboss.cdi.tck.tests.deployment.shutdown
Test archive name: bc50d2dbebade51b96e7e73a1881db07c72c680
ApplicationShutdownLifecycleTest.testShutdown()github

#### Section 12.4 - Type and Bean discovery [type_bean_discovery]

a)

The container automatically discovers managed beans (according to the rules of Section 3.1.1, "Which Java classes are managed beans?") in bean archives and searches the bean classes for producer methods, producer fields, disposer methods and observer methods.

#### Section 12.4.1 - Type discovery [type_discovery_steps]

First the container must discover types. The container discovers:

a)

The container discovers each Java class, interface or enum deployed in an explicit bean archive.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testExplicitBeanArchiveModeAll()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testExplicitBeanArchiveEmptyDescriptor()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testExplicitBeanArchiveLegacyDescriptor()github
b)

The container discovers each Java class with a bean defining annotation in an implicit bean archive.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testNormalScopeImplicitBeanArchiveNoDescriptor()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testNormalScopeImplicitBeanArchiveModeAnnotated()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testDependentScopeImplicitBeanArchiveNoDescriptor()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testPseudoScopeImplicitBeanArchiveModeAnnotated()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testInterceptorIsBeanDefiningAnnotation()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testDecoratorIsBeanDefiningAnnotation()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testStereotypeImplicitBeanArchiveNoDescriptor()github
Test archive name: 4b4fdd3c1a96b4f1e0ae1671a4169bcf48326a7b
BeanDiscoveryTest.testStereotypeImplicitBeanArchiveModeAnnotated()github

For every type discovered the container must create an AnnotatedType representing the type and fire an event of type ProcessAnnotatedType, as defined in Section 11.5.6.

c)

Check managed bean

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testInjectionTargetInject()github
org.jboss.cdi.tck.tests.extensions.annotated
Test archive name: 30abba83a12189638e3a61afe8367083f1cd48
ProcessAnnotatedTypeTest.testProcessAnnotatedTypeEventsSent()github
org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessAnnotatedTypeFiredForManagedBean()github
d)

If an extension calls BeforeBeanDiscovery.addAnnotatedType() or AfterTypeDiscovery.addAnnotatedType(), the type passed must be added to the set of discovered types.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.bbd
Test archive name: 23c0c6dc959677bc56ef23ddf0f4d3d2c8ee7ed7
BeforeBeanDiscoveryTest.testAddAnnotatedType()github
org.jboss.cdi.tck.tests.extensions.lifecycle.atd
Test archive name: 818e661cfbd2b082c3acde9c96b2e87d9c8ff026
AfterTypeDiscoveryTest.testAddAnnotatedType()github

#### Section 12.4.2 - Exclude filters [exclude_filters]

Exclude filters are defined by <exclude> elements in the beans.xml for the bean archive as children of the <scan> element.

a)

By default an exclude filter is active.

Coverage

org.jboss.cdi.tck.tests.deployment.exclude
Test archive name: b52c65f74b1e8cb2d49867bfe71d9ce713c9054
ExcludeFiltersTest.testTypeFcqnMatchesExcludeFilterName()github
Test archive name: b52c65f74b1e8cb2d49867bfe71d9ce713c9054
ExcludeFiltersTest.testTypePackageMatchesExcludeFilterName()github
b)

An exclude filter is not active if the definition contains a child element named <if-class-available> with a name attribute, and the classloader for the bean archive can load a class for that name.

Coverage

org.jboss.cdi.tck.tests.deployment.exclude
Test archive name: b52c65f74b1e8cb2d49867bfe71d9ce713c9054
ExcludeFiltersTest.testExcludeClassActivators()github
c)

An exclude filter is not active if the definition contains a child element named <if-class-not-available> with a name attribute, and the classloader for the bean archive cannot load a class for that name.

Coverage

org.jboss.cdi.tck.tests.deployment.exclude
Test archive name: b52c65f74b1e8cb2d49867bfe71d9ce713c9054
ExcludeFiltersTest.testExcludeClassActivators()github
d)

An exclude filter is not active if the definition contains a child element named <if-system-property> with a name attribute, and there is no system property defined for that name.

Coverage

org.jboss.cdi.tck.tests.deployment.exclude
Test archive name: b52c65f74b1e8cb2d49867bfe71d9ce713c9054
ExcludeFiltersTest.testExcludeSystemPropertyActivator()github
e)

An exclude filter is not active if the definition contains a child element named <if-system-property> with a name attribute and a value attribute, and there is no system property defined for that name with that value.

Coverage

org.jboss.cdi.tck.tests.deployment.exclude
Test archive name: b52c65f74b1e8cb2d49867bfe71d9ce713c9054
ExcludeFiltersTest.testExcludeSystemPropertyActivator()github
f)

The type is excluded from discovery if the fully qualified name of the type being discovered matches the value of the name attribute of the exclude filter.

Coverage

org.jboss.cdi.tck.tests.deployment.exclude
Test archive name: b52c65f74b1e8cb2d49867bfe71d9ce713c9054
ExcludeFiltersTest.testTypeFcqnMatchesExcludeFilterName()github
g)

The type is excluded from discovery if the package name of the type being discovered matches the value of the name attribute with a suffix ".*" of the exclude filter.

Coverage

org.jboss.cdi.tck.tests.deployment.exclude
Test archive name: b52c65f74b1e8cb2d49867bfe71d9ce713c9054
ExcludeFiltersTest.testTypePackageMatchesExcludeFilterName()github
h)

The type is excluded from discovery if the package name of the type being discovered starts with the value of the name attribute with a suffix ".**" of the exclude filter.

Coverage

org.jboss.cdi.tck.tests.deployment.exclude
Test archive name: b52c65f74b1e8cb2d49867bfe71d9ce713c9054
ExcludeFiltersTest.testTypePackageMatchesExcludeFilterName()github

#### Section 12.4.3 - Trimmed bean archive [trimmed_bean_archive]

a)

If an explicit bean archive contains the <trim/> element in its beans.xml file, types that don’t have either a bean defining annotation (as defined in Bean defining annotations) or any scope annotation, are removed from the set of discovered types.

Coverage

org.jboss.cdi.tck.tests.se.discovery.trimmed
Test archive name: 8c1338703c3d54318fdc3ea66adcfc1325d61040
TrimmedBeanArchiveSETest.discoveredTypes()github
org.jboss.cdi.tck.tests.deployment.trimmed
Test archive name: d37dbc6f10585bfe1c7f9f9129b238ffb3d59c3
TrimmedBeanArchiveTest.testDiscoveredBean()github
Test archive name: d37dbc6f10585bfe1c7f9f9129b238ffb3d59c3
TrimmedBeanArchiveTest.testProducerNotDsicovered()github
Test archive name: d37dbc6f10585bfe1c7f9f9129b238ffb3d59c3
TrimmedBeanArchiveTest.testDiscoveredBeanWithStereoType()github

#### Section 12.4.4 - Bean discovery [bean_discovery_steps]

For every type in the set of discovered types (as defined in Type discovery), the container must:

c)

Inspect the type metadata to determine if it is a bean.

d)

detect definition errors by validating the class and its metadata.

e)

if the class is a managed bean, fire an event of type ProcessInjectionPoint for each injection point in the class, as defined in ProcessInjectionPoint event.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testFieldInjectionPoint()github
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testConstructorInjectionPoint()github
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testInitializerInjectionPoint()github
org.jboss.cdi.tck.tests.extensions.beanDiscovery.event.ordering
Test archive name: cdfcdb659525ec202ade929eea7bffee564d6e
LifecycleEventOrderingTest.testEventsWereFiredInCorrectOrderForManagedBean()github
f)

if the class is a managed bean, fire an event of type ProcessInjectionTarget, as defined in ProcessInjectionTarget event.

Coverage

org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessInjectionTargetFiredForManagedBean()github
org.jboss.cdi.tck.tests.extensions.beanDiscovery.event.ordering
Test archive name: cdfcdb659525ec202ade929eea7bffee564d6e
LifecycleEventOrderingTest.testEventsWereFiredInCorrectOrderForManagedBean()github
g)

determine which alternatives, interceptors and decorators are enabled, according to the rules defined in Enabled and disabled beans, Interceptor enablement and ordering and Decorator enablement and ordering.

Coverage

org.jboss.cdi.tck.tests.alternative
Test archive name: 48f06c489c8b4bdc13a3773c7120883c263491bf
AlternativeAvailabilityTest.testAlternativeAvailability()github
org.jboss.cdi.tck.tests.decorators.definition
Test archive name: 56c77f7877b1c965bf5e6a467060948fb5e1dfe
DecoratorDefinitionTest.testDecoratorIsManagedBean()github
org.jboss.cdi.tck.tests.interceptors.invocation
Test archive name: ab95f7838ed4b6f1ad22179e8df1a3de30fe1ed8
InterceptorInvocationTest.testManagedBeanIsIntercepted()github
h)

if the class is an enabled bean, interceptor or decorator, fire an event of type ProcessBeanAttributes, as defined in ProcessBeanAttributes event.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessBeanEvent()github
org.jboss.cdi.tck.tests.extensions.beanDiscovery.event.ordering
Test archive name: cdfcdb659525ec202ade929eea7bffee564d6e
LifecycleEventOrderingTest.testEventsWereFiredInCorrectOrderForManagedBean()github
i)

if the class is an enabled bean, interceptor or decorator and if ProcessBeanAttributes.veto() wasn’t called in previous step, fire an event which is a subtype of ProcessBean, as defined in ProcessBean event.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessBeanEvent()github
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessBeanFiredForInterceptor()github
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessBeanFiredForDecorator()github
org.jboss.cdi.tck.tests.extensions.beanDiscovery.event.ordering
Test archive name: cdfcdb659525ec202ade929eea7bffee564d6e
LifecycleEventOrderingTest.testEventsWereFiredInCorrectOrderForManagedBean()github

For each enabled bean, the container must search the class for producer methods and fields, as defined in Producer methods and in Producer fields, including resources, and for each producer:

ja)

if it is a producer method, fire an event of type ProcessInjectionPoint for each injection point in the method parameters, as defined in ProcessInjectionPoint event

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testFieldInjectionPoint()github
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testConstructorInjectionPoint()github
org.jboss.cdi.tck.tests.extensions.beanDiscovery.event.ordering
Test archive name: cdfcdb659525ec202ade929eea7bffee564d6e
LifecycleEventOrderingTest.testEventsWereFiredInCorrectOrderForProducer()github
jb)

fire an event of type ProcessProducer, as defined in ProcessProducer event.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerMethodEvent()github
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerFieldEvent()github
org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceCallsProducerMethod()github
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testProduceAccessesProducerField()github
org.jboss.cdi.tck.tests.extensions.beanDiscovery.event.ordering
Test archive name: cdfcdb659525ec202ade929eea7bffee564d6e
LifecycleEventOrderingTest.testEventsWereFiredInCorrectOrderForProducer()github
jc)

if the producer method or field is enabled, fire an event of type ProcessBeanAttributes, as defined in ProcessBeanAttributes event

Coverage

org.jboss.cdi.tck.tests.extensions.beanDiscovery.event.ordering
Test archive name: cdfcdb659525ec202ade929eea7bffee564d6e
LifecycleEventOrderingTest.testEventsWereFiredInCorrectOrderForProducer()github
org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testProducerMethodBeanAttributes()github
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testProducerFieldBeanAttributes()github
jd)

if the producer method or field is enabled and if ProcessBeanAttributes.veto() wasn’t called in previous step, fire an event which is a subtype of ProcessBean, as defined in ProcessBean event.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerMethodEvent()github
Test archive name: ef6ee93768603b1dbdefa6191f2d775932d45b
ProcessBeanTest.testProcessProducerFieldEvent()github
org.jboss.cdi.tck.tests.extensions.beanDiscovery.event.ordering
Test archive name: cdfcdb659525ec202ade929eea7bffee564d6e
LifecycleEventOrderingTest.testEventsWereFiredInCorrectOrderForProducer()github
je)

For each enabled bean, the container must search for disposer methods as defined in Disposer methods, and for each disposer method fire an event of type ProcessInjectionPoint for each injection point in the method parameters, as defined in ProcessInjectionPoint event.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testDisposerMethodInjectionPoint()github

For each enabled bean, the container must search the class for observer methods, and for each observer method:

ka)

fire an event of type ProcessInjectionPoint for each injection point in the method parameters, as defined in ProcessInjectionPoint event

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testObserverMethodInjectionPoint()github
kb)

fire an event of type ProcessObserverMethod, as defined in ProcessObserverMethod event.

Coverage

org.jboss.cdi.tck.tests.extensions.observer
Test archive name: daa283d120f8b9ddb8c9b42ef50206e86a69ca5
ProcessObserverMethodEventTest.testProcessObserverMethodEventsSent()github
Test archive name: daa283d120f8b9ddb8c9b42ef50206e86a69ca5
ProcessObserverMethodEventTest.testGetObserverMethod()github
l)

For each enabled bean that is not an interceptor or decorator, the container registers an instance of the Bean interface defined in Section 11.1, "The Bean interface".

m)

For each enabled interceptor, the container registers an instance of the Interceptor interface as defined in Section 11.1.2, "The Interceptor interface".

n)

For each enabled decorator, the container registers an instance of the Decorator interface defined in Section 11.1.1, "The Decorator interface".

o)

For each observer method of every enabled bean, the container registers an instance of the ObserverMethod interface defined in Section 11.1.3, "The ObserverMethod interface".

Coverage

org.jboss.cdi.tck.tests.event.observer.resolve
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testObserverMethodAutomaticallyRegistered()github
Test archive name: 2cc7b5aef914a1aa2258de3f832a78adc9a05955
ResolveEventObserversTest.testObserverMethodNotAutomaticallyRegisteredForDisabledBeans()github

#### Section 13 - Bootstrapping a CDI container in Java SE [se_bootstrap]

a)

In Java SE, the CDI container must be explicitly bootstrapped by the application. This is performed with `SeContainerInitializer` abstract class and its static method `newInstance()`.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testContainerIsInitialized()github
b)

`SeContainerInitializer` is a service provider of the service jakarta.enterprise.inject.se.SeContainerInitializer declared in META-INF/services. It allows the configuration of the CDI container before its bootstrapping.

c)

The `SeContainerInitializer.initialize()` method bootstraps the container and returns a `SeContainer` instance.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testContainerIsInitialized()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testInvocationOfInitializedMethodReturnsNewSeContainerInstance()github

Unless specified differently each method of `SeContainerInitializer` returns the current `SeContainerInitializer` object.

da)

newInstance() static method returns an instance of the implementation of `SeContainerInitializer` discovered by java service-provider. Each call returns a new instance of `SeContainerInitializer`.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testInvocationOfInitializedMethodReturnsNewSeContainerInstance()github
db)

addBeanClasses() add classes to the the synthetic bean archive

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testSyntheticArchive()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAlternativesInSE()github
dc)

addPackages() add packages content to the synthetic bean archive. Versions exist by providing classes in the wished package or Package objects themselves. Other version of the method allows recursive addition

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAddPackageNotRecursively()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAddPackageRecursively()github
de)

addExtensions() add the provided extensions (class or instance) to the synthetic bean archive.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAddExtensionAsExtensionInstance()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAddExtensionAsClass()github
df)

enableInterceptors() adds interceptor classes to the list of enabled interceptors for the synthetic bean archive.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAddInterceptor()github
dg)

enableDecorators() adds decorator classes to the list of enabled decorators for the synthetic bean archive.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAddDecorator()github
dh)

selectAlternatives() adds alternatives classes to the list of selected alternatives for the synthetic bean archive.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAlternativesInSE()github
di)

selectAlternativeStereotypes() adds alternative stereotype classes to the list of selected alternative stereotypes for the synthetic bean archive.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAlternativesInSE()github
dj)

addProperty() add a configuration property for the container

Coverage

org.jboss.cdi.tck.tests.se.discovery.implicit
Test archive name: 7f9752df663e9148f1967531317981b5ffdbeaa
ImplicitBeanArchiveSETest.testImplicitArchiveDiscovered()github
dk)

setProperties() set the Map of configuration properties for the container. replace previous properties.

Coverage

org.jboss.cdi.tck.tests.se.discovery.implicit
Test archive name: 2799624e4f936877dca9a36f5d7624e545999b
ImplicitBeanArchiveWithSystemPropertyTest.testImplicitArchiveDiscovered()github
dm)

disableDiscovery() deactivate automatic type scanning and discovery. All bean archive will be ignored except the implicit bean archive.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testSyntheticArchive()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAlternativesInSE()github
dn)

setClassLoader() change the default class loader for the container

Coverage

org.jboss.cdi.tck.tests.se.container.customClassloader
Test archive name: 3e78dcea8dffbb4295ce617f874a68974a29a8
CustomClassLoaderSETest.testCustomClassLoader()github
do)

initialize() bootstrap the container and returns a `SeContainer` as defined in `SeContainer interface`.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testContainerIsInitialized()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testInvocationOfInitializedMethodReturnsNewSeContainerInstance()github
e)

Every invocation of the `SeContainerInitializer.initialize()` method returns a new `SeContainer` instance.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testInvocationOfInitializedMethodReturnsNewSeContainerInstance()github
f)

The application context is started automatically by the container on start up.

Coverage

org.jboss.cdi.tck.tests.se.context
Test archive name: 305ce66e67ba9336a12df18219ff373ee34df
ContextSETest.testEventIsFiredWhenAplicationContextInitialized()github
Test archive name: 305ce66e67ba9336a12df18219ff373ee34df
ContextSETest.testEventIsFiredWhenAplicationContextInitialized()github

#### Section 13.1 - SeContainerInitializer class [se_container_initializer]

a)

A CDI implementation is required to provide an implementation of `SeContainerInitializer` declared as a service-provider. `newInstance()` static method uses java service-provider to obtain an implementation of `SeContainerInitializer` and return an instance of it. There must be exactly one provider available, otherwise an `IllegalStateException` is thrown.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testContainerIsInitialized()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testInvocationOfInitializedMethodReturnsNewSeContainerInstance()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAlternativesInSE()github
b)

`SeContainerInitializer` configuration allows explicit addition of elements to the set of automatically discovered elements. These additions are done in an internal synthetic bean archive that is added to the set of bean archives discovered by the container during deployment.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testSyntheticArchive()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAlternativesInSE()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAddPackageNotRecursively()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAddPackageRecursively()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAddExtensionAsExtensionInstance()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAddExtensionAsClass()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAddInterceptor()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testAddDecorator()github
c)

This synthetic bean archive behaves like an explicit bean archive (as defined in Bean archives).

#### Section 13.2 - SeContainer interface [se_container]

a)

The jakarta.enterprise.inject.se.SeContainer interface provides access to the BeanManager and programmatic lookup as defined in The Instance interface.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testSyntheticArchive()github
b)

SeContainer extends AutoCloseable, so when dereferenced, it should shutdown automatically.

'SeContainer' methods:

ca)

close() method explicitly shutdown the container. If it is called and the container was already shutdown, it throws an IllegalStateException.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testContainerCloseMethodOnNotInitializedContainer()github
cb)

isRunning() method returns true if called before container shutdown and false after.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testContainerIsInitialized()github
cc)

getBeanManager() method returns the BeanManager (as defined in The BeanManager object) for the running container. if it is called and the container was already shutdown, it throws an IllegalStateException.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.seContainerThrowsISEWhenAccessingBmAtShutdownContainer()github
d)

SeContainer implements jakarta.enterprise.inject.Instance and therefore might be used to perform programmatic lookup as defined in "The Instance interface". If no qualifier is passed to SeContainer.select() method, the @Default qualifier is assumed.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.testSeContainerLookup()github
e)

If any Instance.select() method is called and the container was already shutdown, the IllegalStateException is thrown.

Coverage

org.jboss.cdi.tck.tests.se.container
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.instanceSelectClassThrowsISEWhenAccessedAfterShutdown()github
Test archive name: 69e677bc8eb9ea22cfde94a5a175a787704f0
BootstrapSEContainerTest.instanceSelectAnnotationThrowsISEWhenAccessedAfterShutdown()github

#### Section 14.1.1 - Application context lifecycle in Java SE [application_context_se]

a)

The application context is shared between all the beans that execute within the same container

Coverage

org.jboss.cdi.tck.tests.se.context
Test archive name: 305ce66e67ba9336a12df18219ff373ee34df
ContextSETest.applicationContextSharedBetweenAllBeansWithinContainer()github
b)

An event with qualifier @Initialized(ApplicationScoped.class) is fired when the application context is initialized

Coverage

org.jboss.cdi.tck.tests.se.context
Test archive name: 305ce66e67ba9336a12df18219ff373ee34df
ContextSETest.testEventIsFiredWhenAplicationContextInitialized()github
c)

An event with qualifier @Destroyed(ApplicationScoped.class) is fired when the application is destroyed

Coverage

org.jboss.cdi.tck.tests.se.context
Test archive name: 305ce66e67ba9336a12df18219ff373ee34df
ContextSETest.testEventIsFiredWhenAplicationContextDestroyed()github
d)

The event payload is any java.lang.Object

Coverage

org.jboss.cdi.tck.tests.se.context
Test archive name: 305ce66e67ba9336a12df18219ff373ee34df
ContextSETest.testEventIsFiredWhenAplicationContextInitialized()github
Test archive name: 305ce66e67ba9336a12df18219ff373ee34df
ContextSETest.testEventIsFiredWhenAplicationContextDestroyed()github

#### Section 15.1 - Bean archive in Java SE [bean_archive_se]

An archive which doesn’t contain a beans.xml file can’t be discovered as an implicit bean archive unless:

a)

Application is launched with system property jakarta.enterprise.inject.scan.implicit set to true

Coverage

org.jboss.cdi.tck.tests.se.discovery.implicit
Test archive name: 2799624e4f936877dca9a36f5d7624e545999b
ImplicitBeanArchiveWithSystemPropertyTest.testImplicitArchiveDiscovered()github
b)

the container was initialized with a parameter map containing an entry with jakarta.enterprise.inject.scan.implicit as key and Boolean.TRUE as value

Coverage

org.jboss.cdi.tck.tests.se.discovery.implicit
Test archive name: 7f9752df663e9148f1967531317981b5ffdbeaa
ImplicitBeanArchiveSETest.testImplicitArchiveDiscovered()github

#### Section 16.1.1 - Obtaining a reference to the CDI container in Java SE [provider_se]

a)

In Java SE, while the access to CDI container and `BeanManager` described in `Obtaining a reference to the CDI container` is available, the preferred way to access them is through `SeContainer` interface as described in `SeContainer interface`.

#### Section 17.2 - Bean types for Java EE component [bean_types_ee]

The bean types of a bean may be restricted by annotating the bean class or producer method or field with the annotation @jakarta.enterprise.inject.Typed. When a @Typed annotation is explicitly specified, only the types whose classes are explicitly listed using the value member, together with java.lang.Object are bean types of the bean.

a)

Check session bean

Coverage

org.jboss.cdi.tck.tests.lookup.typesafe.resolution
Test archive name: c1a2df27a61f5349deb5e45553f7b2ccb77acbba
EnterpriseResolutionByTypeTest.testBeanTypesOnSessionBean()github

If a bean class or producer method or field specifies a @Typed annotation, and the value member specifies a class which does not correspond to a type in the unrestricted set of bean types of a bean, the container automatically detects the problem and treats it as a definition error.

b)

Check session bean

Coverage

org.jboss.cdi.tck.tests.definition.bean.broken.restricted
Test archive name: 2c6e07c1cd0d72dcf5e466323c811f3949c8c5
RestrictedSessionBeanTest.testInvalidTypedValueOnSessionBean()github

#### Section 17.3.1 - Built-in scope types in Java EE [builtin_scopes_ee]

a)

When running in Java EE, the implementations of the @RequestScoped, @ApplicationScoped and @SessionScoped annotations provided by the container, represent the standard scopes defined by the Java Servlets specification.

#### Section 17.4 - Default bean discovery mode for Java EE [default_bean_discovery_ee]

When running in Java EE, If the bean discovery mode is annotated, the container must extend the rules defined in Default bean discovery mode with:

a)

bean classes of EJB sessions beans, are discovered

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.enterprise
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testImplicitBeanArchiveNoDescriptor()github
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testImplicitBeanArchiveModeAnnotated()github
b)

producer methods that are on an EJB session bean are discovered

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.enterprise.annotated
Test archive name: bbb0876c29fd6ff2417dd8b7d7267c955c1c797
EnterpriseDefaultBeanDiscoveryModeTest.testProducerMethodDiscovered()github
c)

producer fields that are on an EJB session bean are discovered

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.enterprise.annotated
Test archive name: bbb0876c29fd6ff2417dd8b7d7267c955c1c797
EnterpriseDefaultBeanDiscoveryModeTest.testProducerFieldDiscovered()github
d)

disposer methods that are on an EJB session bean are discovered

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.enterprise.annotated
Test archive name: bbb0876c29fd6ff2417dd8b7d7267c955c1c797
EnterpriseDefaultBeanDiscoveryModeTest.testDisposerMethodDiscovered()github
e)

observer methods that are on an EJB session bean are discovered.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.enterprise.annotated
Test archive name: bbb0876c29fd6ff2417dd8b7d7267c955c1c797
EnterpriseDefaultBeanDiscoveryModeTest.testObserverMethodDiscovered()github

#### Section 17.5 - Bean names in Java EE [names_ee]

a)

A bean with a name may be referred to by its name in Unified EL expressions.

Coverage

org.jboss.cdi.tck.tests.lookup.el.integration
Test archive name: f9eea6a29feaafb7f3b246d62cac6bb2dbdb91
IntegrationWithUnifiedELTest.testELResolverRegisteredWithJsf()github
Test archive name: f9eea6a29feaafb7f3b246d62cac6bb2dbdb91
IntegrationWithUnifiedELTest.testELResolverRegisteredWithServletContainer()github

#### Section 17.5.1 - Default bean names for EJB session beans [default_name_ee]

a)

In the circumstances listed in 2.6.2 "Default bean names", the rule for determining default name for an EJB session bean are defined in 17.2.5 "Default bean name for a session bean".

#### Section 18.1.1 - Which Java classes are managed beans in Java EE? [what_classes_are_beans_ee]

a)

A top-level Java class is not a managed bean if it is annotated with any of the EJB component-defining annotations

Coverage

org.jboss.cdi.tck.tests.implementation.simple.definition
Test archive name: 90d1b7b239f44a1451f36488b8c21a2433fac4a
EnterpriseBeanNotDiscoveredAsManagedBeanTest.testClassesImplementingEnterpriseBeanInterfaceNotDiscoveredAsSimpleBean()github
b)

A top-level Java class is not a managed bean if it is declared as an EJB bean class in ejb-jar.xml

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: b12d13dd28b7fb18244c6188bea52da93e226dab
EnterpriseBeanViaXmlTest.testEjbDeclaredInXmlNotSimpleBean()github

#### Section 18.2 - EJB Session beans [session_beans]

aa)

A session bean is a bean that is implemented by a session bean with an EJB 3.x client view that is not annotated with @Vetoed or in a package annotated @Vetoed.

Coverage

org.jboss.cdi.tck.tests.vetoed.enterprise
Test archive name: 20335b437b598a70686a3023508b3a34c7aa0c1
EnterpriseVetoedTest.testClassLevelVeto()github
Test archive name: 20335b437b598a70686a3023508b3a34c7aa0c1
EnterpriseVetoedTest.testPackageLevelVeto()github
ab)

The basic lifecycle and semantics of EJB session beans are defined by the EJB specification.

b)

A stateless session bean must belong to the @Dependent pseudo-scope

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testStatelessMustBeDependentScoped()github
c)

A singleton bean must belong to either the @ApplicationScoped scope or to the @Dependent pseudo-scope

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testSingletonWithDependentScopeOK()github
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testSingletonWithApplicationScopeOK()github
da)

If a session bean specifies an illegal scope, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.broken.singletonWithConversationScope
Test archive name: 931f777997624ed47e3aafed932337166dd35b3a
SingletonWithConversationScopeTest.testSingletonWithConversationScopeFails()github
org.jboss.cdi.tck.tests.implementation.enterprise.broken.statelessWithRequestScope
Test archive name: 55f09f41d58323f9c5899c9b1321538b37387ca
StatelessWithRequestScopeTest.testStatelessWithRequestScopeFails()github
org.jboss.cdi.tck.tests.implementation.enterprise.broken.statelessWithSessionScope
Test archive name: edc37cf2eb0c0e16cd08faf81d66a22e38bea2c
StatelessWithSessionScopeTest.testStatelessWithSessionScopeFails()github
org.jboss.cdi.tck.tests.implementation.enterprise.broken.statelessWithApplicationScope
Test archive name: 2c15db22e33e9c568e15abbff13359f4b3b77b0
StatelessWithApplicationScopeTest.testStatelessWithSessionScopeFails()github
org.jboss.cdi.tck.tests.implementation.enterprise.broken.singletonWithRequestScope
Test archive name: a1453674b751a2d2419f695e3131c16e8fabb4
SingletonWithRequestScopeTest.testSingletonWithRequestScopeFails()github
org.jboss.cdi.tck.tests.implementation.enterprise.broken.singletonWithSessionScope
Test archive name: f22922eb12d1ff4678615fa62f71e564242b24a3
SingletonWithSessionScopeTest.testSingletonWithSessionScopeFails()github
org.jboss.cdi.tck.tests.implementation.enterprise.broken.statelessWithConversationScope
Test archive name: 14785b7936e1eb7a95126a98bf730cb0e27
StatelessWithConversationScopeTest.testStatelessWithConversationScopeFails()github
e)

A stateful session bean may have any scope.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testBeanWithScopeAnnotation()github
f)

When a contextual instance of a session bean is obtained via the dependency injection service, the behavior of SessionContext.getInvokedBusinessInterface() is specific to the container implementation. Portable applications should not rely upon the value returned by this method.

g)

If the bean class of a session bean is annotated @Interceptor, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.broken.statelessInterceptor
Test archive name: 926340a5ded1819ee969bda9848bb7645b312
InterceptorAnnotatedStatelessSessionBeanTest.testStatelessSessionBeanNotAllowedToBeInterceptor()github
h)

If the bean class of a session bean is annotated @Decorator, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.broken.statelessDecorator
Test archive name: 95ae51eaef1c2e3639c18e634fc3b04592c4c169
DecoratorAnnotatedStatelessSessionBeanTest.testStatelessSessionBeanNotAllowedToBeDecorator()github
i)

If the session bean class is a generic type, it must have scope @Dependent. If a session bean with a parameterized bean class declares any scope other than @Dependent, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.broken.genericStateless
Test archive name: df20c7b9f924cce4ccaedcf694464d2b0fc67c5
GenericStatelessSessionBeanTest.testRequestScopedGenericStatelessSessionBean()github
j)

If packages annotated @Vetoed are split across classpath entries, non-portable behavior results. An application can prevent packages being split across jars by sealing the package as defined by the Extension Mechanism Architecture.

#### Section 18.2.1 - EJB remove methods of session beans [session_bean_ejb_remove_method]

a)

If a session bean is a stateful session bean, and the scope is @Dependent, the application may call any EJB remove method of a contextual instance of the session bean.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.remove
Test archive name: 3a4f256042a5b9b92ac8adc1d5ad6d7b71ccd3d
EnterpriseBeanRemoveMethodTest.testApplicationMayCallAnyRemoveMethodOnDependentScopedSessionEnterpriseBeans()github
b)

If a session bean is a stateful session bean, and the scope is not @Dependent, the application may not directly call any EJB remove method of any instance of the session bean. If the application directly calls an EJB remove method of any contextual instance of a session bean that is a stateful session bean and declares any scope other than @Dependent, an UnsupportedOperationException is thrown

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.remove
Test archive name: 3a4f256042a5b9b92ac8adc1d5ad6d7b71ccd3d
EnterpriseBeanRemoveMethodTest.testApplicationCannotCallRemoveMethodOnNonDependentScopedSessionEnterpriseBean()github
da)

If the application directly calls an EJB remove method of a contextual instance of a session bean that is a stateful session bean and has scope @Dependent then no parameters are passed to the method by the container.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.remove
Test archive name: 3a4f256042a5b9b92ac8adc1d5ad6d7b71ccd3d
EnterpriseBeanRemoveMethodTest.testApplicationMayCallRemoveMethodOnDependentScopedSessionEnterpriseBeansButNoParametersArePassed()github
dba)

If the application directly calls an EJB remove method of a contextual instance of a session bean that is a stateful session bean and has scope @Dependent then the container ignores the instance instead of destroying it when Contextual.destroy() is called, as defined in Section 6.5, "Lifecycle of stateful session beans"

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testRemovedEjbIgnored()github

#### Section 18.2.2 - Bean types of a session bean [session_bean_types]

aa)

The unrestricted set of bean types for a session bean contains all local interfaces of the bean and their superinterfaces.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition.remote
Test archive name: 41ce62d8c5e1e47045153490893c64beb2ae6ee
RemoteInterfaceNotInAPITypesTest.testRemoteInterfacesAreNotInAPITypes()github
org.jboss.cdi.tck.tests.definition.bean.types.enterprise
Test archive name: d099a4a8e67c608c22cf3920445ec0b6a4f7e88
SessionBeanTypesTest.testGenericHierarchyBeanTypes()github
Test archive name: d099a4a8e67c608c22cf3920445ec0b6a4f7e88
SessionBeanTypesTest.testSessionBeanWithBothLocalInterfaceAndNoInterfaceView()github
org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testBeanTypesAreLocalInterfacesWithoutWildcardTypesOrTypeVariablesWithSuperInterfaces()github
ba)

If the session bean has a no-interface view, the set of bean types contains the bean class and all superclasses.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: b12d13dd28b7fb18244c6188bea52da93e226dab
EnterpriseBeanViaXmlTest.testEjbDeclaredInXmlNotSimpleBean()github
org.jboss.cdi.tck.tests.definition.bean.types.enterprise
Test archive name: d099a4a8e67c608c22cf3920445ec0b6a4f7e88
SessionBeanTypesTest.testGenericHierarchyBeanTypes()github
Test archive name: d099a4a8e67c608c22cf3920445ec0b6a4f7e88
SessionBeanTypesTest.testSessionBeanWithBothLocalInterfaceAndNoInterfaceView()github
Test archive name: d099a4a8e67c608c22cf3920445ec0b6a4f7e88
SessionBeanTypesTest.testSessionBeanExtendingSessionBeanWithLocalClientView()github
Test archive name: d099a4a8e67c608c22cf3920445ec0b6a4f7e88
SessionBeanTypesTest.testSessionBeanWithNoInterfaceView()github
org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testEnterpriseBeanClassLocalView()github
c)

java.lang.Object is a bean type of every session bean

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition.remote
Test archive name: 41ce62d8c5e1e47045153490893c64beb2ae6ee
RemoteInterfaceNotInAPITypesTest.testRemoteInterfacesAreNotInAPITypes()github
org.jboss.cdi.tck.tests.definition.bean.types.enterprise
Test archive name: d099a4a8e67c608c22cf3920445ec0b6a4f7e88
SessionBeanTypesTest.testGenericHierarchyBeanTypes()github
Test archive name: d099a4a8e67c608c22cf3920445ec0b6a4f7e88
SessionBeanTypesTest.testSessionBeanWithBothLocalInterfaceAndNoInterfaceView()github
org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testObjectIsInAPITypes()github
d)

Remote interfaces are not included in the set of bean types

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition.remote
Test archive name: 41ce62d8c5e1e47045153490893c64beb2ae6ee
RemoteInterfaceNotInAPITypesTest.testRemoteInterfacesAreNotInAPITypes()github
e)

The resulting set of bean types for a session bean consists only of legal bean types, all other types are removed from the set of bean types.

Coverage

org.jboss.cdi.tck.tests.definition.bean.types.enterprise.illegal
Test archive name: fe5dbaa1ec6ed3d822a1e2884e19c49afb8017a5
BeanTypesWithIllegalTypeTest.sessionBeanTypesContainsOnlyLegalTypes()github

#### Section 18.2.3 - Declaring a session bean [declaring_session_bean]

aa)

A session bean does not require any special annotations apart from the component-defining annotation (or XML declaration) required by the EJB specification.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testObjectIsInAPITypes()github

A bean class may also specify a scope, name, stereotypes and/or qualifiers.

ba)

Test a bean class with a scope.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testBeanWithScopeAnnotation()github
bb)

Test a bean class with a name.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testBeanWithNamedAnnotation()github
bd)

Test a bean class with a stereotype.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testBeanWithStereotype()github
be)

Test a bean class with a qualifier.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testBeanWithQualifiers()github
c)

A session bean class may extend another bean class.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testBeanTypesAreLocalInterfacesWithoutWildcardTypesOrTypeVariablesWithSuperInterfaces()github

#### Section 18.2.4 - Specializing a session bean [specialize_session_bean]

aa)

If a bean class of a session bean X is annotated @Specializes, then the bean class of X must directly extend the bean class of another session bean Y. Then X directly specializes Y, as defined in Section 4.3 "Specialization".

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.enterprise
Test archive name: bb209c1f59c5551822b62accc771bf57c02fe41
EnterpriseBeanSpecializationTest.testDirectSpecialization()github
da)

If the bean class of X does not directly extend the bean class of another session bean, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.enterprise.broken.extend.nothing
Test archive name: c6d3e38284fcd9ab55ee8c642ab3b7ce288247f7
DirectlyExtendsNothingTest.testSpecializingClassDirectlyExtendsNothing()github
org.jboss.cdi.tck.tests.inheritance.specialization.enterprise.broken.extend.managedbean
Test archive name: bf7f6b9d5da3a3f0a1974a931e29d33d9a5ae47
DirectlyExtendsSimpleBeanTest.testSpecializingClassDirectlyExtendsSimpleBean()github
org.jboss.cdi.tck.tests.inheritance.specialization.simple.broken.extendejb
Test archive name: 64a83f92bd3246fa5148cb88fb0e46ca8bfd2ce
SpecializingBeanExtendsEnterpriseBeanTest.testSpecializingClassDirectlyExtendsEnterpriseBean()github

When an enabled bean specializes a second bean, we can be certain that the second bean is never instantiated or called by the container. Even if the second bean defines a producer or observer method, the method will never be called.

The following assertion is not made explicitly by the spec, however it is implied ca)

The second bean is never instantiated.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.enterprise
Test archive name: bb209c1f59c5551822b62accc771bf57c02fe41
EnterpriseBeanSpecializationTest.testSpecializedBeanNotInstantiated()github

#### Section 18.2.5 - Default bean name for a session bean [session_bean_name]

a)

The default name for a session bean is the unqualified class name of the session bean class, after converting the first character to lower case.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testBeanWithStereotype()github
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testDefaultName()github

#### Section 18.3 - Producer methods on EJB session bean [producer_method_ee]

a)

If the bean is a session bean, the producer method must be either a business method exposed by a local business interface of the EJB or a static method of the bean class

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.enterprise.nonbusiness
Test archive name: 84662f033d1bf67a7df531580904941183338fc
ProducerMethodNotBusinessMethodTest.testProducerMethodOnSessionBeanMustBeBusinessMethod()github
org.jboss.cdi.tck.tests.implementation.producer.method.broken.enterprise.remoteMethod
Test archive name: cbf390d13eb49a82cd13a56eded68a8ed7adacc3
RemoteBusinessProducerMethodTest.producerMethodOnSessionBeanCannotBeRemoteBusinessMethod()github
The following assertion is not made explicitly by the spec, however it is implied aa)

If a producer method X is annotated @Specializes, then it must be non-static and directly override another producer method Y. Then X directly specializes Y, as defined in Section 4.3 "Specialization".

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.producer.method.enterprise
Test archive name: 60e0ce7a61a4548860f32baf738cc656ccb7618
EnterpriseProducerMethodSpecializationTest.testSpecializingProducerMethod()github

#### Section 18.3.1 - Declaring a producer method in an EJB session bean [declaring_producer_method_ee]

a)

If a non-static method of a session bean class is annotated @Produces, and the method is not a business method exposed by a local business interface of the session bean, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.broken.enterprise.nonbusiness
Test archive name: 84662f033d1bf67a7df531580904941183338fc
ProducerMethodNotBusinessMethodTest.testProducerMethodOnSessionBeanMustBeBusinessMethod()github
org.jboss.cdi.tck.tests.implementation.producer.method.broken.enterprise.remoteMethod
Test archive name: cbf390d13eb49a82cd13a56eded68a8ed7adacc3
RemoteBusinessProducerMethodTest.producerMethodOnSessionBeanCannotBeRemoteBusinessMethod()github
c)

When the container calls a producer method, if the method is non-static the container must obtain a contextual instance of the bean which declares the method, as defined by Section 6.5.2 "Contextual instance of a bean", then invoke the method upon this instance.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.producer.method.enterprise
Test archive name: 60e0ce7a61a4548860f32baf738cc656ccb7618
EnterpriseProducerMethodSpecializationTest.testSpecializingProducerMethod()github

#### Section 18.4 - Producer field on EJB session bean [producer_field_ee]

a)

If the bean is a session bean, the producer field must be a static field of the bean class.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition.enterprise
Test archive name: ccb7962a69e63e66adf9524c274593754fe34
EnterpriseProducerFieldDefinitionTest.testStaticProducerField()github

#### Section 18.4.1 - Declaring a producer field in an EJB session bean [declaring_producer_field_ee]

a)

If a non-static field of a session bean class is annotated @Produces, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.producer.field.definition.broken.enterprise.nonstatic
Test archive name: 77dca65588f55165aa4b4f61f0da43d64ea4e
NonStaticFieldOfSessionBeanTest.testNonStaticFieldOfSessionBeanCannotBeProducerField()github

#### Section 18.5 - Disposer methods on EJB session bean [disposer_method_ee]

a)

If the bean is a session bean, the disposer method must be a business method exposed by a local business interface of the EJB or a static method of the bean class.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.enterprise.methodOnSessionBean
Test archive name: 202bd7554abfd41998d16f66cd3b29a9b2d3ad5
DisposalMethodOnSessionBeanTest.testDisposalMethodNotBusinessOrStatic()github
org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.enterprise.remoteMethod
Test archive name: 1ec0c682271bf9e5576eccd0f66c1ee5ceb2176
RemoteBusinessDisposalMethodTest.disposalMethodOnSessionBeanCannotBeRemoteBusinessMethod()github

#### Section 18.5.1 - Declaring a disposer method on an EJB session bean [declaring_disposer_method_ee]

a)

If a non-static method of a session bean class has a parameter annotated @Disposes, and the method is not a business method exposed by a local business interface of the session bean, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.enterprise.methodOnSessionBean
Test archive name: 202bd7554abfd41998d16f66cd3b29a9b2d3ad5
DisposalMethodOnSessionBeanTest.testDisposalMethodNotBusinessOrStatic()github
org.jboss.cdi.tck.tests.implementation.disposal.method.definition.broken.enterprise.remoteMethod
Test archive name: 1ec0c682271bf9e5576eccd0f66c1ee5ceb2176
RemoteBusinessDisposalMethodTest.disposalMethodOnSessionBeanCannotBeRemoteBusinessMethod()github

#### Section 18.6 - Java EE components [javaee_components]

The instance used by the container to service an invocation of a Java EE component will not be the same instance obtained when using @Inject, instantiated by the container to invoke a producer method, observer method or disposer method, or instantiated by the container to access the value of a producer field.

a)

Test instance obtained using @Inject.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.ee.components
Test archive name: 4bce9169b6994ee4326a45402a10c433426080
JavaEEComponentsTest.testComponentInject()github
b)

Test instance instantiated by the container to invoke a producer method.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.ee.components
Test archive name: 4bce9169b6994ee4326a45402a10c433426080
JavaEEComponentsTest.testComponentProducerMethod()github
c)

Test instance instantiated by the container to invoke a disposer method.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.ee.components
Test archive name: 4bce9169b6994ee4326a45402a10c433426080
JavaEEComponentsTest.testComponentProducerField()github
d)

Test instance instantiated by the container to invoke a observer method.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.ee.components
Test archive name: 4bce9169b6994ee4326a45402a10c433426080
JavaEEComponentsTest.testComponentObserverMethod()github
e)

Test instance instantiated by the container to access the value of a producer field.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.ee.components
Test archive name: 4bce9169b6994ee4326a45402a10c433426080
JavaEEComponentsTest.testComponentDisposerMethod()github

#### Section 18.7 - Resources [resources]

ka)

The container is not required to support resources with scope other than @Dependent.

l)

A resource may not declare a bean EL name

#### Section 18.7.1 - Declaring a resource [declaring_resource]

aa)

A resource may be declared by specifying a Java EE component environment injection annotation as part of a producer field declaration. The producer field may be static.

bb)

For a Java EE resource, @Resource must be specified.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.resource.staticProducer
Test archive name: 1013435cc539e4b7dbbba28064ac785cea58
InjectionOfResourceStaticProducerFieldTest.testInjectionOfResource()github
org.jboss.cdi.tck.tests.implementation.simple.resource.env
Test archive name: dedc6d5ace7963e7119a9865eca6c1a74203870
EnvInjectionTest.testInjectionOfEnv()github
org.jboss.cdi.tck.tests.implementation.simple.resource.env.staticProducer
Test archive name: 14af22d28155e346309f42ad83bae859a1dad3ca
EnvInjectionStaticProducerFieldTest.testInjectionOfEnv()github
org.jboss.cdi.tck.tests.implementation.simple.resource.resource
Test archive name: ebbc9979f588862a2f46db928659f995e14026
InjectionOfResourceTest.testInjectionOfResource()github
cc)

For a persistence context, @PersistenceContext must be specified.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext
Test archive name: 1eae27f98290531822165ef7add3ab1cd9c5b1
PersistenceContextInjectionTest.testInjectionOfPersistenceContext()github
org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext.staticProducer
Test archive name: ec794cea8f55be407a28364e3297eae16cfc8086
PersistenceInjectionStaticProducerFieldTest.testInjectionOfPersistenceContext()github
dd)

For a persistence unit, @PersistenceUnit must be specified.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext
Test archive name: 1eae27f98290531822165ef7add3ab1cd9c5b1
PersistenceContextInjectionTest.testInjectionOfPersistenceUnit()github
org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext.staticProducer
Test archive name: ec794cea8f55be407a28364e3297eae16cfc8086
PersistenceInjectionStaticProducerFieldTest.testInjectionOfPersistenceUnit()github
ee)

For a remote EJB, @EJB must be specified.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.ejb
Test archive name: 568ffe774883be30361935104e336690677eb7
EjbInjectionTest.testInjectionOfEjbs()github
org.jboss.cdi.tck.tests.implementation.simple.resource.ejb.staticProducer
Test archive name: a376f2ac1e2ac247f4c96afd486b4cd374abae1
EjbInjectionStaticProducerFieldTest.testInjectionOfEjbs()github
ff)

For a web service, @WebServiceRef must be specified.

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual.ws
Test archive name: 55dfba437967a67527bc28b93c65765380d7
WebServiceResourceTest.testResourceBeanTypes()github
org.jboss.cdi.tck.tests.implementation.simple.resource.ws.staticProducer
Test archive name: f2f023dcd42d7546836dc9e9ad6074c680356b7e
WebServiceResourceStaticProducerFieldTest.testResourceProduced()github
org.jboss.cdi.tck.tests.lookup.injection.non.contextual.ws
Test archive name: 55dfba437967a67527bc28b93c65765380d7
WebServiceResourceTest.testResourceInvocation()github
gg)

The injection annotation specifies the metadata needed to obtain the resources, entity manager, entity manager factory, remote EJB instance or web service reference from the component environment.

hh)

The bean type and qualifiers of the resource are determined by the producer field declaration.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext
Test archive name: 1eae27f98290531822165ef7add3ab1cd9c5b1
PersistenceContextInjectionTest.testBeanTypesAndBindingTypesOfPersistenceContext()github
i)

If the producer field declaration specifies an EL name, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.broken.name
Test archive name: 15e23ccf427454669b59d24e49116fa9474293ca
ResourceDefinitionWithNameTest.testDeployment()github
j)

If the matching object in the Java EE component environment is not of the same type as the producer field declaration, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.broken.type.persistence.unit
Test archive name: ea61f91bef90d9f8f04257fef3ebaa262599e9c
ResourceDefinitionWithDifferentTypeTest.testDeployment()github
org.jboss.cdi.tck.tests.implementation.simple.resource.broken.type.ws
Test archive name: a6ea3a28c39ac0d03ea8fedb3f2b84615da0dc24
ResourceDefinitionWithDifferentTypeTest.testDeployment()github
org.jboss.cdi.tck.tests.implementation.simple.resource.broken.type
Test archive name: 99a758fa9ec19d6faae5397ba59ca914e5593a37
ResourceDefinitionWithDifferentTypeTest.testDeployment()github
org.jboss.cdi.tck.tests.implementation.simple.resource.broken.type.persistence.context
Test archive name: 384083fdc55d95556741cffa183099876e8fff
ResourceDefinitionWithDifferentTypeTest.testDeployment()github
org.jboss.cdi.tck.tests.implementation.simple.resource.broken.type.ejb
Test archive name: cf8095108e55b31954be3fca054e7b199121dd
ResourceDefinitionWithDifferentTypeTest.testDeployment()github
org.jboss.cdi.tck.tests.implementation.simple.resource.broken.type.env
Test archive name: d91e69c8cb8a682a2616f7bcd9cbb3ecf7189a
ResourceDefinitionWithDifferentTypeTest.testDeployment()github

#### Section 18.7.2 - Bean types of a resource [resource_types]

The unrestricted set of bean types for a resource is determined by the declared type of the producer field, as specified by Section 3.4.1, "Bean types of a producer field".

aa)

Check @Resource

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.env
Test archive name: dedc6d5ace7963e7119a9865eca6c1a74203870
EnvInjectionTest.testResourceBeanTypes()github
org.jboss.cdi.tck.tests.implementation.simple.resource.resource
Test archive name: ebbc9979f588862a2f46db928659f995e14026
InjectionOfResourceTest.testResourceBeanTypes()github
ab)

Check @PersistenceContext

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext
Test archive name: 1eae27f98290531822165ef7add3ab1cd9c5b1
PersistenceContextInjectionTest.testBeanTypesAndBindingTypesOfPersistenceContext()github
ac)

Check @PersistenceUnit

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext
Test archive name: 1eae27f98290531822165ef7add3ab1cd9c5b1
PersistenceContextInjectionTest.testBeanTypesOfPersistenceUnit()github
ad)

Check @EJB

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.ejb
Test archive name: 568ffe774883be30361935104e336690677eb7
EjbInjectionTest.testResourceBeanTypes()github
ae)

Check @WebServiceRef

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual.ws
Test archive name: 55dfba437967a67527bc28b93c65765380d7
WebServiceResourceTest.testResourceBeanTypes()github
b)

The resulting set of bean types for a resource consists only of legal bean types, all other types are removed from the set of bean types.

#### Section 18.8 - Additional built-in beans [additional_builtin_beans]

a)

A Java EE or embeddable EJB container must provide a bean with qualifier @Default and bean type jakarta.transaction.UserTransaction, allowing injection of a reference to the JTA UserTransaction.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin
Test archive name: 4a4aa98989c64c112086f0f3adf5f6c35b20f960
BuiltInBeansTest.testUserTransactionBean()github
b)

A Java EE or embeddable EJB container must provide a bean with qualifier @Default and bean type javax.security.Principal, allowing injection of a Principal representing the current caller identity.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin
Test archive name: 4a4aa98989c64c112086f0f3adf5f6c35b20f960
BuiltInBeansTest.testPrincipalBean()github
da)

A servlet container must provide a bean with qualifier @Default and bean type jakarta.servlet.http.HttpServletRequest, allowing injection of a reference to the HttpServletRequest. This bean is passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.servlet
Test archive name: bd9ca44244ffb32ec31dbcc45824d2cfa3bd1
ServletContainerBuiltinBeanTest.testBuiltinBeansAvailableForInjection()github
Test archive name: bd9ca44244ffb32ec31dbcc45824d2cfa3bd1
ServletContainerBuiltinBeanTest.testBuiltinBeansFromClient()github
db)

A servlet container must provide a bean with qualifier @Default and bean type jakarta.servlet.http.HttpSession, allowing injection of a reference to the HttpSession. This bean is passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.servlet
Test archive name: bd9ca44244ffb32ec31dbcc45824d2cfa3bd1
ServletContainerBuiltinBeanTest.testBuiltinBeansAvailableForInjection()github
Test archive name: bd9ca44244ffb32ec31dbcc45824d2cfa3bd1
ServletContainerBuiltinBeanTest.testBuiltinBeansFromClient()github
dc)

A servlet container must provide a bean with qualifier @Default and bean type jakarta.servlet.ServletContext, allowing injection of a reference to the ServletContext. This bean is passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.servlet
Test archive name: bd9ca44244ffb32ec31dbcc45824d2cfa3bd1
ServletContainerBuiltinBeanTest.testBuiltinBeansAvailableForInjection()github
Test archive name: bd9ca44244ffb32ec31dbcc45824d2cfa3bd1
ServletContainerBuiltinBeanTest.testBuiltinBeansFromClient()github
e)

If a Java EE component class has an injection point of type UserTransaction and qualifier @Default, and may not validly make use of the JTA UserTransaction according to the Java EE platform specification, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.broken.transaction
Test archive name: 97754e74d9b17a25c825b59eb58a9a6ed5dbcb52
UserTransactionInvalidInjectionTest.testUserTransactionInjection()github

#### Section 18.9 - Injected fields in Java EE [injected_fields_ee]

An injected field is a non-static, non-final field of a bean class or of any other classes supporting injection.

b)

Test a Java EE component class.

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoServlet()github
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoFilter()github
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoServletListener()github
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoTagHandler()github
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoTagLibraryListener()github
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoJSFManagedBean()github

#### Section 18.10 - Initializer methods in Java EE [initializer_methods_ee]

An initializer method is a default-access, public, protected or private, non-abstract, non-static, non-generic method of a bean class or of any Java EE component class supporting injection.

b)

Test a Java EE component class.

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testServletInitializerMethodCalled()github
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testFilterInitializerMethodCalled()github
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testServletListenerInitializerMethodCalled()github
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testTagLibraryListenerInitializerMethodCalled()github
e)

If the bean is a session bean, the initializer method is not required to be a business method of the session bean.

Coverage

org.jboss.cdi.tck.tests.implementation.initializer
Test archive name: e618dbb3deec401df53f782030e5136773ba192b
EjbInitializerMethodTest.testInitializerMethodNotABusinessMethod()github
f)

All initializer method parameters are injection points.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testInitializerMethodsCalledWithCurrentParameterValues()github

#### Section 18.11 - @New qualified beans in Java EE [new_ee]

j)

For each session bean, a second bean exists which has the same bean class.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testForEachEnterpriseBeanANewBeanExists()github
k)

For each session bean, a second bean exists which has the same bean types.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testForEachEnterpriseBeanANewBeanExists()github
l)

For each session bean, a second bean exists which has the same bean constructor.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: dc8bcabe99e3b746053de1cd43330155c5c5016
NewEnterpriseBeanICTest.testNewBeanHasSameConstructor()github
m)

For each session bean, a second bean exists which has the same initializer methods.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: dc8bcabe99e3b746053de1cd43330155c5c5016
NewEnterpriseBeanICTest.testNewBeanHasSameInitializers()github
n)

For each session bean, a second bean exists which has the same injected fields.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanHasSameInjectedFields()github
o)

For each session bean, a second bean exists which has the same interceptor bindings.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanHasTheSameInterceptorBindings()github
p)

This second bean has scope @Dependent.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanIsDependentScoped()github
r)

This second bean has exactly one qualifier: @jakarta.enterprise.inject.New(X.class) where x is the bean class.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanHasOnlyOneQualifier()github
s)

This second bean has no bean name.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanHasNoBeanELName()github
t)

This second bean has no stereotypes.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanHasNoStereotypes()github
u)

This second bean has no observer methods.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanHasNoObservers()github
v)

This second bean has no producer methods.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: dc8bcabe99e3b746053de1cd43330155c5c5016
NewEnterpriseBeanICTest.testNewBeanHasNoProducerMethods()github
x)

This second bean has no disposer methods.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: dc8bcabe99e3b746053de1cd43330155c5c5016
NewEnterpriseBeanICTest.testNewBeanHasNoDisposalMethods()github

Note that this second bean exists, and may be enabled and available for injection even if the first bean is disabled, as defined by Section 5.1.2, “Enabled and disabled beans” or if the bean class is deployed outside of a bean deployment archive, as defined in Section 12.1, “Bean deployment archives”, and is therefore not discovered during the bean discovery process defined in Chapter 12, Packaging and deployment. The container discovers @New qualified beans by inspecting injection points of other enabled beans.

yb)

Check that @New on a field injection point (which is a session bean class) outside the BDA, but in the classpath causes a session bean with qualifier @New and the given type to be created

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanCreatedForFieldInjectionPoint()github
yd)

Check that @New on a initializer method injection point (which is a session bean class) outside the BDA, but in the classpath causes a session bean with qualifier @New and the given type to be created

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanCreatedForInitializerInjectionPoint()github
yf)

Check that @New on a constructor injection point (which is a session bean class) outside the BDA, but in the classpath causes a session bean with qualifier @New and the given type to be created

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanCreatedForConstructorInjectionPoint()github
yh)

Check that @New on a producer method injection point (which is a session bean class) outside the BDA, but in the classpath causes a session bean with qualifier @New and the given type to be created

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanCreatedForProducerMethod()github
yj)

Check that @New on a observer method injection point (which is a session bean class) outside the BDA, but in the classpath causes a session bean with qualifier @New and the given type to be created

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanCreatedForObserverMethod()github
yl)

Check that @New on a disposer method injection point (which is a session bean class) outside the BDA, but in the classpath causes a session bean with qualifier @New and the given type to be created

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.newBean
Test archive name: b287f8ad1c0472908833d89e577fce7d34b1f
NewEnterpriseBeanTest.testNewBeanCreatedForDisposerMethod()github

#### Section 18.12 - Inheritance of type-level metadata in Java EE [type_level_inheritance_ee]

Suppose a class X is extended directly or indirectly by the bean class of a managed bean Y. If X is annotated with a qualifier type, stereotype or interceptor binding type Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and neither Y nor any intermediate class that is a subclass of X and a superclass of Y declares an annotation of type Z.

al)

Test qualifier type for directly extended session bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.definition.qualifier.enterprise
Test archive name: d4c0304bff6de9c45365de91904a9569631c2b5
EnterpriseQualifierDefinitionTest.testQualifierDeclaredInheritedIsInherited()github
ala)

Test qualifier type for directly extended session bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.definition.qualifier.enterprise
Test archive name: d4c0304bff6de9c45365de91904a9569631c2b5
EnterpriseQualifierDefinitionTest.testQualifierNotDeclaredInheritedIsNotInherited()github
am)

Test stereotype for directly extended session bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.enterprise
Test archive name: 292ea83d5bf662f1abad04233ecc8a2a19e395c
EnterpriseStereotypeDefinitionTest.testStereotypeDeclaredInheritedIsInherited()github
ama)

Test stereotype for directly extended session bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.enterprise
Test archive name: 292ea83d5bf662f1abad04233ecc8a2a19e395c
EnterpriseStereotypeDefinitionTest.testStereotypeNotDeclaredInheritedIsNotInherited()github
an)

Test interceptor binding type for directly extended session bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.inheritance
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testInterceptorBindingDirectlyInheritedFromSessionBean()github
ana)

Test interceptor binding type for directly extended session bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.inheritance
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testInterceptorBindingDirectlyInheritedFromSessionBean()github
ap)

Test qualifier type for indirectly extended session bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.definition.qualifier.enterprise
Test archive name: d4c0304bff6de9c45365de91904a9569631c2b5
EnterpriseQualifierDefinitionTest.testQualifierDeclaredInheritedIsIndirectlyInherited()github
apa)

Test qualifier type for indirectly extended session bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.definition.qualifier.enterprise
Test archive name: d4c0304bff6de9c45365de91904a9569631c2b5
EnterpriseQualifierDefinitionTest.testQualifierNotDeclaredInheritedIsNotIndirectlyInherited()github
aq)

Test stereotype for indirectly extended session bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.enterprise
Test archive name: 292ea83d5bf662f1abad04233ecc8a2a19e395c
EnterpriseStereotypeDefinitionTest.testStereotypeDeclaredInheritedIsIndirectlyInherited()github
aqa)

Test stereotype for indirectly extended session bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.enterprise
Test archive name: 292ea83d5bf662f1abad04233ecc8a2a19e395c
EnterpriseStereotypeDefinitionTest.testStereotypeNotDeclaredInheritedIsNotIndirectlyInherited()github
ar)

Test interceptor binding type for indirectly extended session bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.inheritance
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testInterceptorBindingIndirectlyInheritedFromSessionBean()github
ara)

Test interceptor binding type for indirectly extended session bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.inheritance
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testInterceptorBindingIndirectlyInheritedFromSessionBean()github

Suppose a class X is extended directly or indirectly by the bean class of a managed bean Y. If X is annotated with a scope type Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and neither Y nor any intermediate class that is a subclass of X and a superclass of Y declares a scope type.

be)

Test scope type for directly extended session bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.definition.scope.enterprise
Test archive name: f04a4fa23542f366d850519fc8ad9ecb17c19428
EnterpriseScopeDefinitionTest.testScopeTypeDeclaredInheritedIsInherited()github
bea)

Test scope type for directly extended session bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.definition.scope.enterprise
Test archive name: f04a4fa23542f366d850519fc8ad9ecb17c19428
EnterpriseScopeDefinitionTest.testScopeTypeNotDeclaredInheritedIsNotInherited()github
bh)

Test scope type for indirectly extended session bean annotated @Inherited is inherited.

Coverage

org.jboss.cdi.tck.tests.definition.scope.enterprise
Test archive name: f04a4fa23542f366d850519fc8ad9ecb17c19428
EnterpriseScopeDefinitionTest.testScopeTypeDeclaredInheritedIsIndirectlyInherited()github
bha)

Test scope type for indirectly extended session bean not annotated @Inherited is not inherited.

Coverage

org.jboss.cdi.tck.tests.definition.scope.enterprise
Test archive name: f04a4fa23542f366d850519fc8ad9ecb17c19428
EnterpriseScopeDefinitionTest.testScopeTypeNotDeclaredInheritedIsNotIndirectlyInherited()github
hhj)

For class X which is extended directly by the bean class of a session bean Y, a scope type explicitly declared by X and inherited by Y from X takes precedence over default scopes of stereotypes declared or inherited by Y.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.enterprise
Test archive name: 292ea83d5bf662f1abad04233ecc8a2a19e395c
EnterpriseStereotypeDefinitionTest.testStereotypeScopeIsOverriddenByInheritedScope()github
hhk)

For class X which is extended indirectly by the bean class of a session bean Y, a scope type explicitly declared by X and inherited by Y from X takes precedence over default scopes of stereotypes declared or inherited by Y.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.enterprise
Test archive name: 292ea83d5bf662f1abad04233ecc8a2a19e395c
EnterpriseStereotypeDefinitionTest.testStereotypeScopeIsOverriddenByIndirectlyInheritedScope()github

#### Section 18.13 - Inheritance of member-level metadata in Java EE [member_level_inheritance_ee]

Suppose a class X is extended directly or indirectly by the bean class of a managed bean. If X declares an injected field x then Y inherits x.

ab)

Check session bean X directly extends session bean Y

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testFieldDeclaredInSuperclassInjected()github
ad)

Check session bean X indirectly extends session bean Y

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testFieldDeclaredInSuperclassIndirectlyInjected()github

Suppose a class X is extended directly or indirectly by the bean class of a managed bean Y. If X declares an initializer, non-static observer, @PostConstruct or @PreDestroy method x() then Y inherits x() if and only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y overrides the method x().

bab)

Check session bean X directly extends session bean Y with @PostConstruct

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testDirectSubClassInheritsPostConstructOnSuperclass()github
bad)

Check session bean X indirectly extends session bean Y with @PostConstruct

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testIndirectSubClassInheritsPostConstructOnSuperclass()github
bbb)

Check session bean X directly extends session bean Y with @PostDestroy

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testSubClassInheritsPreDestroyOnSuperclass()github
bbd)

Check session bean X indirectly extends session bean Y with @PostDestroy

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testIndirectSubClassInheritsPreDestroyOnSuperclass()github
df)

Check session bean X directly extends session bean Y with a non-static observer method

Coverage

org.jboss.cdi.tck.tests.event.observer.inheritance.enterprise
Test archive name: d84f9eb178b25d22c59d4ad57ccea95f153cfd0
EnterpriseObserverInheritanceTest.testNonStaticObserverMethodInherited()github
dl)

Check session bean X indirectly extends session bean Y with a non-static observer method

Coverage

org.jboss.cdi.tck.tests.event.observer.inheritance.enterprise
Test archive name: d84f9eb178b25d22c59d4ad57ccea95f153cfd0
EnterpriseObserverInheritanceTest.testNonStaticObserverMethodIndirectlyInherited()github
dn)

Check session bean X directly extends session bean Y with a initializer method

Coverage

org.jboss.cdi.tck.tests.inheritance.initializer
Test archive name: cf472cf0dd531f677b343a7ff71e99a9741eb66
InitializerMethodInheritanceTest.testSessionBeanDirectlyInheritsInitializer()github
dp)

Check session bean X indirectly extends session bean Y with a initializer method

Coverage

org.jboss.cdi.tck.tests.inheritance.initializer
Test archive name: cf472cf0dd531f677b343a7ff71e99a9741eb66
InitializerMethodInheritanceTest.testSessionBeanIndirectlyInheritsInitializer()github

Suppose a class X is extended directly or indirectly by the bean class of a managed bean. If X declares a non-static method x() annotated with an interceptor binding type Z then Y inherits the binding if and only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y overrides the method x().

kb)

Check session bean X directly extends managed bean Y

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.inheritance
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testMethodInterceptorBindingDirectlyInheritedFromSessionBean()github
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testMethodInterceptorBindingDirectlyNotInheritedFromSessionBean()github
kd)

Check session bean X indirectly extends managed bean Y

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.inheritance
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testMethodInterceptorBindingIndirectlyInheritedFromSessionBean()github
Test archive name: d817ec5e20c971a7f98a369c1832eaab385442
InterceptorBindingInheritanceTest.testMethodInterceptorBindingIndirectlyNotInheritedFromSessionBean()github

Suppose a class X is extended directly or indirectly by the bean class of a managed bean or session bean Y. If X declares an initializer, non-static observer, @PostConstruct or @PreDestroy method x() then Y inherits x() if and only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y overrides the method x().

dd)

Check session bean X directly extends session bean Y with a non-static producer method

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition.enterprise
Test archive name: e795ca61318f27688fc883ae37ee62ef633446e
EnterpriseProducerMethodDefinitionTest.testNonStaticProducerMethodNotInheritedBySpecializingSubclass()github
Test archive name: e795ca61318f27688fc883ae37ee62ef633446e
EnterpriseProducerMethodDefinitionTest.testNonStaticProducerMethodNotInherited()github
de)

Check session bean X directly extends session bean Y with a non-static disposer method

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.inheritance
Test archive name: 17e2aee0d37719fdb6783da57eb6d1516776bbd
DisposerMethodInheritanceTest.testSessionBeanDisposerMethodNotInherited()github
dj)

Check session bean X indirectly extends session bean Y with a non-static producer method

Coverage

org.jboss.cdi.tck.tests.implementation.producer.method.definition.enterprise
Test archive name: e795ca61318f27688fc883ae37ee62ef633446e
EnterpriseProducerMethodDefinitionTest.testNonStaticProducerMethodNotIndirectlyInherited()github
dk)

Check session bean X indirectly extends session bean Y with a non-static disposer method

Coverage

org.jboss.cdi.tck.tests.implementation.disposal.method.definition.inheritance
Test archive name: 17e2aee0d37719fdb6783da57eb6d1516776bbd
DisposerMethodInheritanceTest.testSessionBeanDisposerMethodNotInherited()github

#### Section 18.14.1 - Direct and indirect specialization in Java EE [direct_and_indirect_specialization_ee]

The following assertion is not made explicitly by the spec, however it is implied ia)

A bean X is said to specialize another bean Y if X directly specializes Y.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.enterprise
Test archive name: bb209c1f59c5551822b62accc771bf57c02fe41
EnterpriseBeanSpecializationTest.testDirectSpecialization()github
org.jboss.cdi.tck.tests.inheritance.specialization.producer.method.enterprise
Test archive name: 60e0ce7a61a4548860f32baf738cc656ccb7618
EnterpriseProducerMethodSpecializationTest.testSpecializingProducerMethod()github
Test archive name: 60e0ce7a61a4548860f32baf738cc656ccb7618
EnterpriseProducerMethodSpecializationTest.testSpecializingBeanInjection()github
The following assertion is not made explicitly by the spec, however it is implied j)

A bean X that specializes bean Y will include all qualifiers of Y, together with all qualifiers declared explicitly by X.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.enterprise
Test archive name: bb209c1f59c5551822b62accc771bf57c02fe41
EnterpriseBeanSpecializationTest.testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean()github
The following assertion is not made explicitly by the spec, however it is implied k)

A bean X that specializes bean Y will have the same name as Y if Y has a name.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.enterprise
Test archive name: bb209c1f59c5551822b62accc771bf57c02fe41
EnterpriseBeanSpecializationTest.testSpecializingBeanHasNameOfSpecializedBean()github

If Y has a bean name and X declares a bean name explicitly the container automatically detects the problem and treats it as a definition error.

lc)

Test that a specializing enterprise bean with a name throws a definition exception.

Coverage

org.jboss.cdi.tck.tests.inheritance.specialization.enterprise.broken.name
Test archive name: f81b78a36ab21fbd147c471efbdca4258714d9c9
SameNameTest.testSpecializingAndSpecializedBeanHasName()github

#### Section 19.1 - Modularity in Java EE [selection_ee]

A bean is available for injection in a certain module if the bean is not an interceptor or decorator, the bean is enabled, the bean is either not an alternative, or the module is a bean archive and the bean is a selected alternative of the bean archive, and the bean class is required to be accessible to classes in the module, according to the class accessibility requirements of the module architecture.

The following assertion is not made explicitly by the spec, however it is implied d)

Check an enabled session bean can be injected

Coverage

org.jboss.cdi.tck.tests.lookup.modules
Test archive name: fd324a159cb59b51cdfb7599c62569a70cb
EnabledSessionBeanInjectionAvailability02Test.testInjection()github
Test archive name: 4985f9b283dbcadc8cb4b4babb1917a8b1a1166
EnabledSessionBeanInjectionAvailabilityTest.testInjection()github
The following assertion is not made explicitly by the spec, however it is implied j)

Check a disabled session bean is not injectable

Coverage

org.jboss.cdi.tck.tests.lookup.modules.broken
Test archive name: f2d27cb1353abe683f308442425ee234e43652
DisabledSessionBeanInjectionNotAvailableTest.testInjection()github
The following assertion is not made explicitly by the spec, however it is implied k)

Check a specialized session bean is not injectable

Coverage

org.jboss.cdi.tck.tests.lookup.modules
Test archive name: 888557d736a5211315aed65e95da41de20df7df4
SpecializedBeanInjectionNotAvailable02Test.testSessionBeanInjection()github
Test archive name: 95e9877b16b34ba4f070edc4c04681e1e81aff1e
SpecializedBeanInjectionNotAvailableTest.testSessionBeanInjection()github
The following assertion is not made explicitly by the spec, however it is implied p)

Check a selected alternative being session bean is injected

Coverage

org.jboss.cdi.tck.tests.lookup.modules
Test archive name: b19bba92bfde67ea9a7357107583e074403988e
SelectedAlternativeSessionBeanInjectionAvailabilityTest.testInjection()github
Test archive name: c97cf94ddab0a8d19cf86f8d0fdba312d3c1362
SelectedAlternativeSessionBeanInjectionAvailability02Test.testInjection()github

#### Section 19.1.1 - Declaring selected alternatives for an application in Java EE [declaring_selected_alternatives_application_ee]

The following assertion is not made explicitly by the spec, however it is implied a)

A stereotype may declare an @Alternative annotation, which specifies that every bean with the stereotype is an alternative.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.alternative.enterprise
Test archive name: 6a988eaf2bb64c5bee312dd7af3a90bfb795e445
EnterpriseStereotypeAlternativeSpecializeTest.testStereotypeAlternative()github
Test archive name: e5c716e193a1f597b68fbd5d6151ce53e4e2a
EnterpriseStereotypeAlternativeTest.testStereotypeAlternative()github

An alternative may be given a priority for the application by placing the @Priority annotation on the bean class of a session bean.

ab)

Test @Priority on the bean class of a session bean.

Coverage

org.jboss.cdi.tck.tests.alternative.selection.enterprise
Test archive name: 6bccc5f735c7ba514e93742245a4a0ec2def937
EnterpriseSelectedAlternative02Test.testAlternativeSessionBeanSelected()github
Test archive name: 5aefe85bd72de5c28a8fa8cbb581ad545a43a626
EnterpriseSelectedAlternative01Test.testAlternativeSessionBeanSelected()github

#### Section 19.1.2 - Declaring selected alternatives for a bean archive in Java EE [declaring_selected_alternatives_bean_archive_ee]

a)

An alternative may be explicitly declared using the <alternatives> element of the beans.xml file of the bean archive. The <alternative> element contains a list of bean classes and stereotypes.

An alternative is selected for the bean archive if the alternative is a session bean and the bean class of the bean is listed.

bb)

Test selected session bean.

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.ear.modules
Test archive name: b3b0a05066d9bec3659b91c3a2413dfa351982c
EnterpriseArchiveModulesTest.testAlternatives()github
org.jboss.cdi.tck.tests.alternative.enterprise
Test archive name: 752ba766dcb419649bbe3b2d807f21ded493814
SessionBeanAlternativeTest.testEnabledPolicyAvailable()github

#### Section 19.1.3 - Unsatisfied and ambiguous dependencies in Java EE [unsatisfied_and_ambig_dependencies_ee]

The container must validate all injection points of all enabled beans, all observer methods, all disposer methods and all other Java EE component classes supporting injection when the application is initialized to ensure that there are no unsatisfied or ambiguous dependencies. If an unsatisfied or ambiguous dependency exists, the container automatically detects the problem and treats it as a deployment problem.

ad)

Test unsatisfied dependency for Java EE component.

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual.broken.unsatisfied
Test archive name: e36a5420c6cd5b528e2022ebd2b0fb34cd9a62a
UnsatisfiedInjectionIntoNonContextualComponentTest.testInjectionIntoServlet()github
ah)

Test ambiguous dependency for Java EE component.

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual.broken.ambiguous
Test archive name: de78c27a6e98a46b0bdd396373bfd36d22f8765
AmbiguousInjectionIntoNonContextualComponentTest.testInjectionIntoServlet()github

#### Section 19.2 - EL name resolution [name_resolution_ee]

a)

An EL name resolves to a bean if the name can be resolved to a bean according to rules in 5.3, "Name resolution", and the bean is available for injection in the war containing the JSP or JSF page with the EL expression.

Coverage

org.jboss.cdi.tck.tests.lookup.el.integration
Test archive name: f9eea6a29feaafb7f3b246d62cac6bb2dbdb91
IntegrationWithUnifiedELTest.testELResolverRegisteredWithJsf()github
Test archive name: f9eea6a29feaafb7f3b246d62cac6bb2dbdb91
IntegrationWithUnifiedELTest.testELResolverRegisteredWithServletContainer()github

#### Section 19.3 - Dependency injection in Java EE [injection_ee]

a)

The container is required to perform dependency injection whenever it creates a contextual instance of a session bean.

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testInjectionOnContextualSessionBean()github
org.jboss.cdi.tck.tests.lookup.injection.visibility
Test archive name: 371cb9029ff39b9ee4446d425de14c98e5f222e
InjectionVisibilityTest.testPackagePrivateSetMethodInjection()github
c)

The container is required to perform dependency injection whenever it instantiates non-contextual instances of session beans (for example, session beans obtained by the application from JNDI or injected using @EJB).

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testInjectionOnNonContextualSessionBean()github

The container is required to perform dependency injection whenever it instantiates instances of any other Java EE component class supporting injection.

ea)

Test injection into a servlet listener

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoServletListener()github
eb)

Test injection into a tag handler

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoTagHandler()github
ec)

Test injection into a tag library listener

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoTagLibraryListener()github
ed)

Test injection into an EJB Interceptor

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testInjectionOnEJBInterceptor()github
ee)

Test injection into a WS endpoint

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual.ws
Test archive name: 55dfba437967a67527bc28b93c65765380d7
WebServiceResourceTest.testInjectionIntoWebServiceEndpoint()github
ef)

Test injection into a servlet

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoServlet()github
eg)

Test injection into a filter

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoFilter()github
f)

A Java EE 5 container is not required to support injection for non-contextual objects.

#### Section 19.3.1 - Injection using the bean constructor in Java EE [instantiation_ee]

The bean constructor may be identified by annotating the constructor @Inject

The following assertion is not made explicitly by the spec, however it is implied a)

Test an @Inject constructor is used on a session bean

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testConstructorAnnotatedInjectCalled()github

When the container instantiates a session bean with a constructor annotated @Inject, the container calls this constructor, passing an injectable reference to each parameter. If there is no constructor annotated @Inject, the container calls the constructor with no parameters.

ab)

Test session bean with a constructor annotated @Inject.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testConstructorAnnotatedInjectCalled()github
bb)

Test constructor with no parameters is used for a session bean

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.definition
Test archive name: 9fafc8dfa2951a2a8b454256342f4b547d06375
EnterpriseBeanDefinitionTest.testConstructorWithNoParamsUsed()github

#### Section 19.3.2 - Injection of fields and initializer methods in Java EE [fields_initializer_methods_ee]

When the container creates a new instance of session bean the container must: Initialize the values of all injected fields. The container sets the value of each injected field to an injectable reference. Call all initializer methods, passing an injectable reference to each parameter.

aa)

Test session bean fields injected

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testInjectionOnContextualSessionBean()github
ab)

Test session bean initializer methods called

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testInjectionOnContextualSessionBean()github
ae)

Test Servlet fields injected

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoServlet()github
af)

Test Servlet initializer methods called

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testServletInitializerMethodCalled()github
ag)

Test Servlet Filter fields injected

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoFilter()github
ah)

Test Servlet Filter initializer methods called

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testFilterInitializerMethodCalled()github
ai)

Test Servlet Listener fields injected

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoServletListener()github
aj)

Test Servlet Listener initializer methods called

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testServletListenerInitializerMethodCalled()github
ak)

Test non-contextual session bean fields injected

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testInjectionOnNonContextualSessionBean()github
al)

Test non-contextual session bean initializer methods called

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testInjectionOnNonContextualSessionBean()github
am)

Test tag handler fields injected

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoTagHandler()github
an)

Test tag handler initializer methods called

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoTagHandler()github
ao)

Test EJB interceptor fields injected

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testInjectionOnEJBInterceptor()github
ap)

Test EJB interceptor initializer methods called

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testInjectionOnEJBInterceptor()github
aq)

Test WS endpoint fields injected

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual.ws
Test archive name: 55dfba437967a67527bc28b93c65765380d7
WebServiceResourceTest.testInjectionIntoWebServiceEndpoint()github
ar)

Test WS endpoint bean initializer methods called

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual.ws
Test archive name: 55dfba437967a67527bc28b93c65765380d7
WebServiceResourceTest.testInjectionIntoWebServiceEndpoint()github
as)

Test tag handler listener fields injected

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoTagLibraryListener()github
at)

Test tag handler listener initializer methods called

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testTagLibraryListenerInitializerMethodCalled()github
au)

Test JSF managed bean fields injected

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoJSFManagedBean()github
av)

Test JSF managed bean initializer methods called

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoJSFManagedBean()github

The container must ensure that: Initializer methods declared by a class X in the type hierarchy of the bean are called after all injected fields declared by X or by superclasses of X have been initialized, and after all Java EE component environment resource dependencies declared by X or by superclasses of X have been injected. Any @PostConstruct callback declared by a class X in the type hierarchy of the bean is called after all initializer methods declared by X or by superclasses of X have been called, after all injected fields declared by X or by superclasses of X have been initialized, and after all Java EE component environment resource dependencies declared by X or by superclasses of X have been injected. Any servlet init() method is called after all initializer methods have been called, all injected fields have been initialized and all Java EE component environment resource dependencies have been injected.

ba)

Test session bean initializer methods called after injected field of X

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testInjectionOnContextualSessionBean()github
bb)

Test session bean initializer methods called after injected field of superclass of X

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: efaf2f431c77651bfda043d115d235e465c276
SessionBeanInjectionOrderingTest.testInitializerCalledAfterFieldInjectionOfSuperclass()github
bc)

Test session bean initializer methods called after EE resource injection of X

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: efaf2f431c77651bfda043d115d235e465c276
SessionBeanInjectionOrderingTest.testInitializerCalledAfterResourceInjection()github
bd)

Test session bean initializer methods called after EE resource injection of superclass of X

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: efaf2f431c77651bfda043d115d235e465c276
SessionBeanInjectionOrderingTest.testInitializerCalledAfterResourceInjection()github
be)

Test session bean @PostConstruct called after initializer of X

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: 412b3ff2bc454795167321c523d3c1c2e90cc92
SessionBeanInjectionTest.testInjectionOnContextualSessionBean()github
bf)

Test session bean @PostConstruct called after initializer of superclass of X

Coverage

org.jboss.cdi.tck.tests.lookup.injection.enterprise
Test archive name: efaf2f431c77651bfda043d115d235e465c276
SessionBeanInjectionOrderingTest.testPostConstructCalledAfterInitializerOfSuperclass()github
bi)

Test managed bean initializer methods called after EE resource injection of X

Coverage

org.jboss.cdi.tck.tests.lookup.injection
Test archive name: 7666e237b452108821298e1be845739be0136c6c
InjectionTest.testInjectionFieldsAndInitializerMethods()github
org.jboss.cdi.tck.tests.lookup.injection.persistence
Test archive name: c139fa6c3575e661ad736c765ee89536054b7a2
PersistenceResourceInjectionTest.testInitializerMethodsAfterEEResourcePersistenceInjection()github
org.jboss.cdi.tck.tests.lookup.injection.ws
Test archive name: dfb557d287972af9e95297b3bbe07e85a59d4acc
WebServiceResourceInjectionTest.testInitializerMethodsCalledAfterEEResourceWebServiceRefInjection()github
bj)

Test managed bean initializer methods called after EE resource injection of superclass of X

Coverage

org.jboss.cdi.tck.tests.lookup.injection
Test archive name: 7666e237b452108821298e1be845739be0136c6c
InjectionTest.testInjectionFieldsAndInitializerMethods()github
org.jboss.cdi.tck.tests.lookup.injection.persistence
Test archive name: c139fa6c3575e661ad736c765ee89536054b7a2
PersistenceResourceInjectionTest.testInitializerMethodsAfterEEResourcePersistenceInjection()github
org.jboss.cdi.tck.tests.lookup.injection.ws
Test archive name: dfb557d287972af9e95297b3bbe07e85a59d4acc
WebServiceResourceInjectionTest.testInitializerMethodsCalledAfterEEResourceWebServiceRefInjection()github
bm)

Servlet init() method called after initializer method

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testServletInitializerMethodCalled()github
bn)

Servlet init() method called after injected fields

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoServlet()github
bo)

Servlet init() method called after Java EE resource injection

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testServletInitCalledAfterResourceInjection()github
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testServletInitCalledAfterPersistenceResourceInjection()github
Test archive name: ab28a7f03c159ddc1af43e792c46d4d282d3759
WebServiceInjectionIntoNonContextualComponentTest.testServletInitCalledAfterResourceInjection()github
bp)

Servlet Filter init() method called after initializer method

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testFilterInitializerMethodCalled()github
bq)

Servlet Filter init() method called after injected fields

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testInjectionIntoFilter()github
br)

Servlet Filter init() method called after Java EE resource injection

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testFilterInitCalledAfterResourceInjection()github
Test archive name: f1734be4ec13222f463bb1959ddf568119234690
InjectionIntoNonContextualComponentTest.testFilterInitCalledAfterPersistenceResourceInjection()github
Test archive name: ab28a7f03c159ddc1af43e792c46d4d282d3759
WebServiceInjectionIntoNonContextualComponentTest.testFilterInitCalledAfterResourceInjection()github

#### Section 19.3.3 - Destruction of dependent objects in Java EE [dependent_objects_destruction_ee]

a)

When the container destroys an instance of a bean, the container destroys all dependent objects, as defined in Section 6.4.2, "Destruction of objects with scope @Dependent", after the @PreDestroy callback completes.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testDependentObjectsDestroyed()github

#### Section 19.3.4 - Bean metadata in Java EE [bean_metadata_ee]

a)

Interceptor and decorator instances associated with Java EE components that are not considered beans (as defined by this specification) cannot obtain information about the beans they intercept and decorate (as defined in Bean metadata) and thus null is injected into relevant injection points.

Coverage

org.jboss.cdi.tck.tests.implementation.builtin.metadata.ee
Test archive name: 37de9b9be1afa78a3f317d484935ad6c245638e9
BuiltinMetadataEEBeanTest.interceptedBeanForEEComponentIsNullInInterceptor()github

#### Section 20.1 - Dependent pseudo-scope in Java EE [dependent_context_ee]

ca)

When a bean is declared to have @Dependent scope, when a unified EL expression in a JSF or JSP page that refers to the bean by its EL name is evaluated, at most one instance of the bean is instantiated. This instance exists to service just a single evaluation of the EL expression. It is reused if the bean EL name appears multiple times in the EL expression, but is never reused when the EL expression is evaluated again, or when another EL expression is evaluated.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testInstanceUsedForElEvaluationNotShared()github

#### Section 20.1.2 - Destruction of objects with scope @Dependent in Java EE [dependent_destruction_ee]

The container must ensure that all dependent objects of a non-contextual instance of a bean or other Java EE component class are destroyed when the instance is destroyed by the container.

aaab)

Test with a Java EE component.

Coverage

org.jboss.cdi.tck.tests.context.dependent.ejb
Test archive name: efc1809411c2edcbe567d325cbcbce06fa872e
DependentContextEjbTest.testDestroyingEjbDestroysDependents()github
Test archive name: efc1809411c2edcbe567d325cbcbce06fa872e
DependentContextEjbTest.testDestroyingEjbDestroysDependentSimples()github
eee)

The container must ensure that all @Dependent scoped contextual instances created during evaluation of a Unified EL expression in a JSP or JSF page are destroyed when the evaluation completes.

Coverage

org.jboss.cdi.tck.tests.context.dependent
Test archive name: fe249a27523c2d59c142e247852478e9d494734f
DependentContextTest.testDependentsDestroyedWhenElEvaluationCompletes()github

#### Section 20.1.3 - Dependent pseudo-scope and Unified EL [dependent_scope_el]

a)

Suppose a Unified EL expression in a JSF or JSP page refers to a bean with scope @Dependent by its EL name. Each time the EL expression is evaluated the bean is instantiated at most once, and the resulting instance is reused for every appearance of the EL name, and the resulting instance is destroyed when the evaluation completes.

Coverage

org.jboss.cdi.tck.tests.lookup.el
Test archive name: 402292eb879ff8fb0441e41749ec64751e41a94
ResolutionByNameTest.testQualifiedNameLookup()github
b)

Portable extensions that integrate with the container via Unified EL should also ensure that these rules are enforced.

#### Section 20.2.1 - Passivation capable beans in Java EE [passivation_capable_ee]

As defined by the EJB specification, a stateful session bean is passivation capable if interceptors and decorators of the bean are passivation capable, and the stateful session bean does not have the passivationCapable flag set to false.

aa)

Test a passivation capable stateful session bean with passivationCapable flag set to true.

Coverage

org.jboss.cdi.tck.tests.context.passivating.enterprise.valid
Test archive name: 6798fe5f3e5ad09428367a362d585d4fcd79ea
StatefulSessionBeanTest.testDeployment()github
Test archive name: 6493ea473586b74938bb39d3af439a76d98155d
StatefulSessionBeanXmlDescriptorTest.testDeployment()github
ab)

Test a stateful session bean with passivationCapable flag set to false.

Coverage

org.jboss.cdi.tck.tests.context.passivating.enterprise.invalid
Test archive name: 22956f1cb6725360301845d2cca5e7d5676c759e
StatefulSessionBeanXmlDescriptorTest.testDeployment()github
Test archive name: 4e60e370c2952b1792f26fd1a41f523f8383f50
StatefulSessionBeanTest.testDeployment()github
i)

As defined by the EJB specification, a stateless session bean or a singleton session bean is not passivation capable.

#### Section 20.2.2 - Passivation capable dependencies in java EE [passivation_capable_dependency_ee]

aa)

The container must guarantee that all stateless session beans are passivation capable dependencies.

Coverage

org.jboss.cdi.tck.tests.context.passivating.dependency.sessionbean
Test archive name: c1f9ba5c72d4f65ac5660209b9d3fd8524517b
SessionBeanPassivationDependencyTest.testStateless()github
ab)

The container must guarantee that all singleton session beans are passivation capable dependencies.

Coverage

org.jboss.cdi.tck.tests.context.passivating.dependency.sessionbean
Test archive name: c1f9ba5c72d4f65ac5660209b9d3fd8524517b
SessionBeanPassivationDependencyTest.testSingleton()github
ac)

The container must guarantee that all passivation capable stateful session beans are passivation capable dependencies.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testSerializeSFSB()github

The container must guarantee that all resources are passivation capable dependencies.

da)

Test resource for a Java EE resource.

Coverage

org.jboss.cdi.tck.tests.context.passivating.dependency.resource.persistence
Test archive name: 4729e54c10dcd4fcca9f2089915bf286a0e311ac
DataSourcePassivationDependencyTest.testDataSource()github
db)

Test resource for a persistence unit.

Coverage

org.jboss.cdi.tck.tests.context.passivating.dependency.resource.persistence
Test archive name: 9252d5a7323abdfb80eb3d121d3b1b526dcc3981
ResourcePassivationDependencyTest.testPersistenceUnitAndContext()github
dc)

Test resource for a persistence context.

Coverage

org.jboss.cdi.tck.tests.context.passivating.dependency.resource.persistence
Test archive name: 9252d5a7323abdfb80eb3d121d3b1b526dcc3981
ResourcePassivationDependencyTest.testPersistenceUnitAndContext()github
dd)

Test resource for a remote EJB.

Coverage

org.jboss.cdi.tck.tests.context.passivating.dependency.resource.remote
Test archive name: 72880fc98b42c362f336ddc3948208389449452
ResourcePassivationDependencyTest.testRemoteSessionBean()github
de)

Test resource for a web service.

Coverage

org.jboss.cdi.tck.tests.context.passivating.dependency.resource.webservice
Test archive name: 2d9e1d6a72a6d913df27cdd1cc79a92ecf1411
WebResourcePassivationCapableDependencyTest.testWebResourcePassivated()github

#### Section 20.2.3 - Validation of passivation capable beans and dependencies in Java EE [passivation_validation_ee]

If a stateful session bean which declares a passivating scope, or a built-in bean is not passivation capable then the container automatically detects the problem and treats it as a deployment problem.

aa)

Test non-transient injected field.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.enterprise
Test archive name: 1015ec47bcbce03d79178927fb99f609befbd22
NonPassivationCapableEjbWithPassivatingScopeTest.testDeployment()github
b)

Test stateful session bean.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.interceptor.enterprise
Test archive name: f55ccb55115e4f9e93ce1e51c42e8e841f14a7a
EnterpriseBeanWithNonPassivatingInterceptorTest.testEnterpriseBeanWithNonPassivatingDecoratorFails()github
org.jboss.cdi.tck.tests.context.passivating.broken.decorator.enterprise
Test archive name: 414d9b1f1f1e7dbc53cf34d7d9356819ff6fd
EnterpriseBeanWithNonPassivatingDecoratorTest.testEnterpriseBeanWithNonPassivatingDecoratorFails()github
ba)

If a stateful session bean which declares a passivating scope has a non-transient injected field that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.enterprise.field
Test archive name: adf240d9a8594b9688543a523e8ff93c16afed
UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest.testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoStatefulSessionBeanFails()github

If a stateful session bean has an interceptor or decorator with a non-transient injected field that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem.

bda)

Test an interceptor with an injected field.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.interceptor.enterprise.field
Test archive name: cef9546b3f16ee861e1f72e4b4277eeae6748b80
EnterpriseBeanWithNonPassivatingInjectedFieldInInterceptorTest.testSessionBeanWithNonPassivatingInjectedFieldInInterceptorFails()github
bdd)

Test a decorator with an injected field.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.decorator.enterprise.field
Test archive name: 154bba4d875b6ba725896dfc5ffd821390096f3
EnterpriseBeanWithNonPassivatingInjectedFieldInDecoratorTest.testSessionBeanWithNonPassivatingInjectedFieldInDecoratorFails()github

If a bean which declares a passivating scope type has a decorator or interceptor which is not a passivation capable dependency, the container automatically detects the problem and treats it as a deployment problem.

hb)

Test a stateful session bean with decorator which is not a passivation capable dependency.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.decorator.enterprise
Test archive name: 414d9b1f1f1e7dbc53cf34d7d9356819ff6fd
EnterpriseBeanWithNonPassivatingDecoratorTest.testEnterpriseBeanWithNonPassivatingDecoratorFails()github
hd)

Test a stateful session bean with interceptor which is not a passivation capable dependency.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.interceptor.enterprise
Test archive name: f55ccb55115e4f9e93ce1e51c42e8e841f14a7a
EnterpriseBeanWithNonPassivatingInterceptorTest.testEnterpriseBeanWithNonPassivatingDecoratorFails()github
The following assertion is not made explicitly by the spec, however it is implied j)

Stateful session bean which does not declare a passivating scope needn't be passivation capable.

Coverage

org.jboss.cdi.tck.tests.context.passivating.enterprise
Test archive name: 6f5debce8b4dd1e93ae2e2bd62deb7796daa193d
NonPassivationCapableSessionBeanTest.testDeployment()github

If a producer method or field of scope @Dependent returns an unserializable object for injection into an injection point that requires a passivation capable dependency, the container must throw an IllegalProductException

fab)

Test for a runtime exception with a producer method.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.producer.method.enterprise
Test archive name: 5aa17c50216e4ae63ca597aa571d51605157b3a4
EnterpriseBeanWithIllegalDependencyTest.testFieldInjectionPointRequiringPassivationCapableDependency()github
Test archive name: 5aa17c50216e4ae63ca597aa571d51605157b3a4
EnterpriseBeanWithIllegalDependencyTest.testSetterInjectionPointRequiringPassivationCapableDependency()github
Test archive name: 5aa17c50216e4ae63ca597aa571d51605157b3a4
EnterpriseBeanWithIllegalDependencyTest.testConstructorInjectionPointRequiringPassivationCapableDependency()github
Test archive name: 5aa17c50216e4ae63ca597aa571d51605157b3a4
EnterpriseBeanWithIllegalDependencyTest.testProducerMethodParamInjectionPointRequiringPassivationCapableDependency()github
fbb)

Test for a runtime exception with a producer field.

Coverage

org.jboss.cdi.tck.tests.context.passivating.broken.producer.field.enterprise
Test archive name: 16f6637aea793b754d873418f3bd9cfdcfe57f6
EnterpriseBeanWithIllegalDependencyTest.testFieldInjectionPointRequiringPassivationCapableDependency()github
Test archive name: 16f6637aea793b754d873418f3bd9cfdcfe57f6
EnterpriseBeanWithIllegalDependencyTest.testSetterInjectionPointRequiringPassivationCapableDependency()github
Test archive name: 16f6637aea793b754d873418f3bd9cfdcfe57f6
EnterpriseBeanWithIllegalDependencyTest.testConstructorInjectionPointRequiringPassivationCapableDependency()github

#### Section 20.3 - Context management for built-in scopes in Java EE [builtin_contexts_ee]

The built-in request and application context objects are active during servlet, web service and EJB invocations, and the built in session and request context objects are active during servlet and web service invocations. For other kinds of invocations, a portable extension may define a custom context object for any or all of the built-in scopes.

#### Section 20.3.1 - Request context lifecycle in Java EE [request_context_ee]

The request scope is active during the service() method of any servlet in the web application, during the doFilter() method of any servlet filter and when the container calls any ServletRequestListener or AsyncListener.

aa)

Check service() method.

Coverage

org.jboss.cdi.tck.tests.context.request
Test archive name: e0b12dfa4cd5d93bfedc6d3993c9dc19c083
RequestContextTest.testRequestScopeActiveDuringServiceMethod()github
ab)

Check doFilter() method.

Coverage

org.jboss.cdi.tck.tests.context.request
Test archive name: e0b12dfa4cd5d93bfedc6d3993c9dc19c083
RequestContextTest.testRequestScopeActiveDuringServletFilter()github
ac)

Check ServletRequestListener.

Coverage

org.jboss.cdi.tck.tests.context.request
Test archive name: e0b12dfa4cd5d93bfedc6d3993c9dc19c083
RequestContextTest.testRequestScopeActiveDuringServiceMethod()github
Test archive name: e0b12dfa4cd5d93bfedc6d3993c9dc19c083
RequestContextTest.testRequestScopeActiveDuringServletFilter()github
ad)

Check AsyncListener.

Coverage

org.jboss.cdi.tck.tests.context.request.async
Test archive name: 84d0d1ad778fce6522fdc5fef6535099e9e04b
RequestContextAsyncListenerTest.testRequestContextActiveOnComplete()github
Test archive name: 84d0d1ad778fce6522fdc5fef6535099e9e04b
RequestContextAsyncListenerTest.testRequestContextActiveOnTimeout()github
Test archive name: 84d0d1ad778fce6522fdc5fef6535099e9e04b
RequestContextAsyncListenerTest.testRequestContextActiveOnError()github
Test archive name: 84d0d1ad778fce6522fdc5fef6535099e9e04b
RequestContextAsyncListenerTest.testRequestContextActiveOnStartAsync()github
b)

The request scope is active during any Java EE web service invocation.

Coverage

org.jboss.cdi.tck.tests.context.request.jaxrs
Test archive name: 11b5bca1a810979261cbb7a8a0c79f7594ac391c
RequestContextTest.testRequestScopeActiveDuringWebServiceInvocation()github
org.jboss.cdi.tck.tests.context.request.ws
Test archive name: 2a1f6f6da8c03555e9ff54777d4beaf8489c3d7
RequestContextTest.testRequestScopeActiveDuringWebServiceInvocation()github

The request scope is active during any remote method invocation of any EJB, during any asynchronous method invocation of any EJB, during any call to an EJB timeout method and during message delivery to any EJB message-driven bean.

ga)

Test the request scope is active during a remote method invocation of any EJB.

Coverage

org.jboss.cdi.tck.tests.context.request.ejb
Test archive name: f35a53453983b37b5bf5df735da43e812cd9f698
EJBRequestContextTest.testRequestScopeActiveDuringRemoteCallToEjb()github
gb)

Test the request scope is active during any asynchronous method invocation of any EJB.

Coverage

org.jboss.cdi.tck.tests.context.request.ejb
Test archive name: f35a53453983b37b5bf5df735da43e812cd9f698
EJBRequestContextTest.testRequestScopeActiveDuringAsyncCallToEjb()github
gc)

Test the request scope is active during any call to an EJB timeout method.

Coverage

org.jboss.cdi.tck.tests.context.request.ejb
Test archive name: f35a53453983b37b5bf5df735da43e812cd9f698
EJBRequestContextTest.testRequestScopeActiveDuringCallToEjbTimeoutMethod()github
gd)

Test the request scope is active during message delivery to any EJB message-driven bean.

Coverage

org.jboss.cdi.tck.tests.context.jms
Test archive name: c5767ddb890bed4cb3d5cedd086106ae17850
MessageDrivenBeanContextTest.testRequestScopeActiveDuringMessageDelivery()github

The request context is destroyed at the end of the servlet request, after the service() method and all doFilter() methods, and all requestDestroyed() and onComplete() notifications return.

ba)

Check service() method.

Coverage

org.jboss.cdi.tck.tests.context.request
Test archive name: e0b12dfa4cd5d93bfedc6d3993c9dc19c083
RequestContextTest.testRequestScopeIsDestroyedAfterServletRequest()github
bb)

Check doFilter() methods.

Coverage

org.jboss.cdi.tck.tests.context.request
Test archive name: e0b12dfa4cd5d93bfedc6d3993c9dc19c083
RequestContextTest.testRequestScopeIsDestroyedAfterServletRequest()github
bc)

Check requestDestroyed() notification.

Coverage

org.jboss.cdi.tck.tests.context.request
Test archive name: e0b12dfa4cd5d93bfedc6d3993c9dc19c083
RequestContextTest.testRequestScopeIsDestroyedAfterServletRequest()github
bd)

Check onComplete() notification.

Coverage

org.jboss.cdi.tck.tests.context.request.async
Test archive name: 84d0d1ad778fce6522fdc5fef6535099e9e04b
RequestContextAsyncListenerTest.testRequestContextActiveOnComplete()github
d)

The request context is destroyed after the web service invocation completes.

Coverage

org.jboss.cdi.tck.tests.context.request.jaxrs
Test archive name: 11b5bca1a810979261cbb7a8a0c79f7594ac391c
RequestContextTest.testRequestScopeActiveDuringWebServiceInvocation()github
org.jboss.cdi.tck.tests.context.request.ws
Test archive name: 2a1f6f6da8c03555e9ff54777d4beaf8489c3d7
RequestContextTest.testRequestScopeActiveDuringWebServiceInvocation()github

The request context is destroyed after the EJB remote method invocation, asynchronous method invocation, timeout or message delivery completes.

ha)

Test the request context is destroyed after an EJB remote method invocation.

Coverage

org.jboss.cdi.tck.tests.context.request.ejb
Test archive name: f35a53453983b37b5bf5df735da43e812cd9f698
EJBRequestContextTest.testRequestScopeActiveDuringRemoteCallToEjb()github
hb)

Test the request context is destroyed after an EJB asynchronous method invocation.

Coverage

org.jboss.cdi.tck.tests.context.request.ejb
Test archive name: f35a53453983b37b5bf5df735da43e812cd9f698
EJBRequestContextTest.testRequestScopeActiveDuringAsyncCallToEjb()github
hc)

Test the request context is destroyed after the EJB timeout.

Coverage

org.jboss.cdi.tck.tests.context.request.ejb
Test archive name: f35a53453983b37b5bf5df735da43e812cd9f698
EJBRequestContextTest.testRequestScopeDestroyedAfterCallToEjbTimeoutMethod()github
hd)

Test the request context is destroyed after the message delivery completes.

Coverage

org.jboss.cdi.tck.tests.context.jms
Test archive name: c5767ddb890bed4cb3d5cedd086106ae17850
MessageDrivenBeanContextTest.testRequestScopeActiveDuringMessageDelivery()github

An event with qualifier @Initialized(RequestScoped.class) is fired when the request context is initialized and an event with qualifier @Destroyed(RequestScoped.class) when the request context is destroyed.

ja)

The event payload is the ServletRequest if the context is initialized or destroyed due to a servlet request.

Coverage

org.jboss.cdi.tck.tests.deployment.shutdown
Test archive name: bc50d2dbebade51b96e7e73a1881db07c72c680
ApplicationShutdownLifecycleTest.testShutdown()github
org.jboss.cdi.tck.tests.context.request.event
Test archive name: a67016e87586e111fce443d6ad1d2f7fd24b2d3
RequestScopeEventTest.test()github
jb)

The event payload is the ServletRequest if the context is initialized or destroyed due to a web service invocation.

Coverage

org.jboss.cdi.tck.tests.context.request.jaxrs
Test archive name: 11b5bca1a810979261cbb7a8a0c79f7594ac391c
RequestContextTest.testRequestScopeActiveDuringWebServiceInvocation()github
jc)

The event payload is the java.lang.Object if the context is initialized or destroyed due to a EJB remote method invocation.

Coverage

org.jboss.cdi.tck.tests.context.request.event.remote
Test archive name: 6138106679b8c9aa27cf160fbd78ca7a2d16c92
RequestScopeEventRemoteTest.testRequestScopeActiveDuringRemoteCallToEjb()github
jd)

The event payload is the java.lang.Object if the context is initialized or destroyed due to a EJB asynchronous method invocation.

Coverage

org.jboss.cdi.tck.tests.context.request.event.async
Test archive name: d76da9be13cf608bb9c779a562f09235197a86
RequestScopeEventAsyncTest.testEventsFired()github
je)

The event payload is the java.lang.Object if the context is initialized or destroyed due to a EJB timeout method invocation.

Coverage

org.jboss.cdi.tck.tests.context.request.event.timeout
Test archive name: f253a8aa42c823111cbfe3719ce34eed4e8228fc
RequestScopeEventTimeoutTest.testEventsFired()github
jf)

The event payload is the java.lang.Object if the context is initialized or destroyed due to a message delivery to any EJB message-driven bean.

Coverage

org.jboss.cdi.tck.tests.context.request.event.jms
Test archive name: 24366694ab54ddc83623ef655667ac266c465c4
RequestScopeEventMessageDeliveryTest.testEventsFired()github

#### Section 20.3.2 - Session context lifecycle in Java EE [session_context_ee]

aa)

The session scope is active during the service() method of any servlet in the web application.

Coverage

org.jboss.cdi.tck.tests.context.session
Test archive name: 5d2fef3f2c7c75b4e1e3dbe114f61779fdd1d1
SessionContextTest.testSessionScopeActiveDuringServiceMethod()github
ab)

The session scope is active during the doFilter() method of any servlet filter.

Coverage

org.jboss.cdi.tck.tests.context.session
Test archive name: 5d2fef3f2c7c75b4e1e3dbe114f61779fdd1d1
SessionContextTest.testSessionScopeActiveDuringDoFilterMethod()github
ac)

The session scope is active when the container calls any HttpSessionListener.

Coverage

org.jboss.cdi.tck.tests.context.session.listener
Test archive name: a627cbdbcdb2672841f73dae7caf3e138c64473
SessionContextHttpSessionListenerTest.testSessionScopeActiveDuringHttpSessionListenerCall()github
Test archive name: a627cbdbcdb2672841f73dae7caf3e138c64473
SessionContextHttpSessionListenerTest.testSessionScopeActiveDuringHttpSessionListenerCallOnTimeout()github
org.jboss.cdi.tck.tests.context.session.listener.shutdown
Test archive name: 40ed720be219a134895e6e2e51466ea29a39ca
SessionContextListenerShutdownTest.testApplicationContextDestroyed()github
ad)

The session scope is active when the container calls any AsyncListener.

Coverage

org.jboss.cdi.tck.tests.context.session.async
Test archive name: 12e3cd06754c1b9f72abe8f0c31ecb930cd13
SessionContextAsyncListenerTest.testSessionContextActiveOnComplete()github
Test archive name: 12e3cd06754c1b9f72abe8f0c31ecb930cd13
SessionContextAsyncListenerTest.testSessionContextActiveOnTimeout()github
Test archive name: 12e3cd06754c1b9f72abe8f0c31ecb930cd13
SessionContextAsyncListenerTest.testSessionContextActiveOnError()github
Test archive name: 12e3cd06754c1b9f72abe8f0c31ecb930cd13
SessionContextAsyncListenerTest.testSessionContextActiveOnStartAsync()github
ae)

The session scope is active when the container calls any ServletRequestListener.

Coverage

org.jboss.cdi.tck.tests.context.session
Test archive name: 5d2fef3f2c7c75b4e1e3dbe114f61779fdd1d1
SessionContextTest.testSessionScopeActiveDuringServiceMethod()github
Test archive name: 5d2fef3f2c7c75b4e1e3dbe114f61779fdd1d1
SessionContextTest.testSessionScopeActiveDuringDoFilterMethod()github
org.jboss.cdi.tck.tests.context.session.listener
Test archive name: 9ad153f65d8993286f537d18e98d8efdd9121544
SessionContextServletRequestListenerTest.testSessionScopeActiveDuringServletRequestListenerCall()github
b)

The session context is shared between all servlet requests that occur in the same HTTP servlet session.

Coverage

org.jboss.cdi.tck.tests.context.session
Test archive name: 5d2fef3f2c7c75b4e1e3dbe114f61779fdd1d1
SessionContextTest.testSessionContextSharedBetweenServletRequestsInSameHttpSession()github
ca)

The session context is destroyed at the very end of any request in which invalidate() was called, after all filters and ServletRequestListeners have been called.

Coverage

org.jboss.cdi.tck.tests.context.session.event
Test archive name: ac3e7ee0b0b1afec25b95bffa3de507bf7f35c29
SessionScopeEventTest.test()github
org.jboss.cdi.tck.tests.context.session
Test archive name: 5d2fef3f2c7c75b4e1e3dbe114f61779fdd1d1
SessionContextTest.testSessionContextDestroyedWhenHttpSessionInvalidated()github
cb)

The session context is destroyed when the HTTPSession times out, after all HttpSessionListeners have been called.

Coverage

org.jboss.cdi.tck.tests.context.session
Test archive name: 5d2fef3f2c7c75b4e1e3dbe114f61779fdd1d1
SessionContextTest.testSessionContextDestroyedWhenHttpSessionTimesOut()github
da)

An event with the HttpSession as payload and with qualifier @Initialized(SessionScoped.class) is synchronously fired when the session context is initialized.

Coverage

org.jboss.cdi.tck.tests.context.session.event
Test archive name: ac3e7ee0b0b1afec25b95bffa3de507bf7f35c29
SessionScopeEventTest.test()github
db)

An event with the HttpSession as payload and with qualifier @BeforeDestroyed(SessionScoped.class) is synchronously fired when the session context is about to be destroyed, i.e. before the actual destruction.

Coverage

org.jboss.cdi.tck.tests.context.session.event
Test archive name: ac3e7ee0b0b1afec25b95bffa3de507bf7f35c29
SessionScopeEventTest.test()github
dc)

An event with the HttpSession as payload and with qualifier @Destroyed(SessionScoped.class) is synchronously fired when the session context is destroyed.

Coverage

org.jboss.cdi.tck.tests.context.session.event
Test archive name: ac3e7ee0b0b1afec25b95bffa3de507bf7f35c29
SessionScopeEventTest.test()github

#### Section 20.3.3 - Application context lifecycle in Java EE [application_context_ee]

The application scope is active during the service() method of any servlet in the web application, during the doFilter() method of any servlet filter and when the container calls any ServletContextListener, HttpSessionListener, AsyncListener or ServletRequestListener.

aa)

Check service method

Coverage

org.jboss.cdi.tck.tests.context.application
Test archive name: a78e61b0a7e4df7a5314c6c3d5896c9afd596c59
ApplicationContextTest.testApplicationScopeActiveDuringServiceMethod()github
ab)

Check filter.

Coverage

org.jboss.cdi.tck.tests.context.application
Test archive name: a78e61b0a7e4df7a5314c6c3d5896c9afd596c59
ApplicationContextTest.testApplicationScopeActiveDuringDoFilterMethod()github
ac)

Check ServletContextListener.

Coverage

org.jboss.cdi.tck.tests.context.application
Test archive name: a78e61b0a7e4df7a5314c6c3d5896c9afd596c59
ApplicationContextTest.testApplicationScopeActiveDuringServletContextListenerInvocation()github
ad)

Check HttpSessionListener

Coverage

org.jboss.cdi.tck.tests.context.application
Test archive name: a78e61b0a7e4df7a5314c6c3d5896c9afd596c59
ApplicationContextTest.testApplicationScopeActiveDuringHttpSessionListenerInvocation()github
ae)

Check AsyncListener

Coverage

org.jboss.cdi.tck.tests.context.application.async
Test archive name: f171a3d3289dcf8237159d936219ff9c87d85db
ApplicationContextAsyncListenerTest.testApplicationContextActiveOnComplete()github
Test archive name: f171a3d3289dcf8237159d936219ff9c87d85db
ApplicationContextAsyncListenerTest.testApplicationContextActiveOnTimeout()github
Test archive name: f171a3d3289dcf8237159d936219ff9c87d85db
ApplicationContextAsyncListenerTest.testApplicationContextActiveOnError()github
Test archive name: f171a3d3289dcf8237159d936219ff9c87d85db
ApplicationContextAsyncListenerTest.testApplicationContextActiveOnStartAsync()github
af)

Check ServletRequestListener

Coverage

org.jboss.cdi.tck.tests.context.application
Test archive name: a78e61b0a7e4df7a5314c6c3d5896c9afd596c59
ApplicationContextTest.testApplicationScopeActiveDuringServletRequestListenerInvocation()github
b)

The application scope is active during any Java EE web service invocation.

Coverage

org.jboss.cdi.tck.tests.context.request.ws
Test archive name: 2a1f6f6da8c03555e9ff54777d4beaf8489c3d7
RequestContextTest.testRequestScopeActiveDuringWebServiceInvocation()github

The application scope is also active during any remote method invocation of any EJB, during any asynchronous method invocation of any EJB, during any call to an EJB timeout method and during message delivery to any EJB message-driven bean.

da)

Test remote method invocation

Coverage

org.jboss.cdi.tck.tests.context.application.ejb
Test archive name: faa0ff85677da6766c7bae3d6ca8bb586e4985f
ApplicationContextSharedTest.testApplicationScopeActiveDuringRemoteCallToEjb()github
db)

Test asynchronous method invocation

Coverage

org.jboss.cdi.tck.tests.context.application.ejb
Test archive name: faa0ff85677da6766c7bae3d6ca8bb586e4985f
ApplicationContextSharedTest.testApplicationScopeActiveDuringAsyncCallToEjb()github
dc)

Test EJB timeout method

Coverage

org.jboss.cdi.tck.tests.context.application.ejb
Test archive name: faa0ff85677da6766c7bae3d6ca8bb586e4985f
ApplicationContextSharedTest.testApplicationScopeActiveDuringCallToEjbTimeoutMethod()github
dd)

Test message delivery to any EJB message-driven bean.

Coverage

org.jboss.cdi.tck.tests.context.jms
Test archive name: c5767ddb890bed4cb3d5cedd086106ae17850
MessageDrivenBeanContextTest.testRequestScopeActiveDuringMessageDelivery()github

The application scope is active when the disposer method or @PreDestroy callback of any bean with any normal scope other than @ApplicationScoped is called.

dg)

Test disposer method

Coverage

org.jboss.cdi.tck.tests.context.application.disposer
Test archive name: 60cff9aa68e8b611258e3a32b679416c37037
ApplicationContextDisposerTest.testApplicationContextActiveDuringDispose()github
dh)

Test @PreDestroy method

Coverage

org.jboss.cdi.tck.tests.context.application.predestroy
Test archive name: 38ee7624ccf15f5c8070713506930763f3bdfdc
ApplicationContextPreDestroyTest.testApplicationContextActivePreDestroy()github
h)

The application scope is active during @PostConstruct callback of any bean.

Coverage

org.jboss.cdi.tck.tests.context.application.postconstruct
Test archive name: c2e89cdcb313e9c7543e3ab1258be837064b3
SimpleBeanPostConstructCallbackTest.testSimplePostConstructCallback()github
Test archive name: 3cb8ee63dfa6badd17d52d21a4276e81a11ba3
EagerSingletonPostConstructCallbackTest.testEagerSingletonPostConstructCallback()github
e)

The application context is shared between all servlet requests, asynchronous observer method notifications, web service invocations, EJB remote method invocations, EJB asynchronous method invocations, EJB timeouts and message deliveries to message driven beans that execute within the same application.

Coverage

org.jboss.cdi.tck.tests.context.application
Test archive name: a78e61b0a7e4df7a5314c6c3d5896c9afd596c59
ApplicationContextTest.testApplicationContextSharedBetweenServletRequests()github
Test archive name: a78e61b0a7e4df7a5314c6c3d5896c9afd596c59
ApplicationContextTest.testApplicationContextSharedBetweenJaxRsRequests()github
org.jboss.cdi.tck.tests.context.application.ejb
Test archive name: faa0ff85677da6766c7bae3d6ca8bb586e4985f
ApplicationContextSharedTest.testApplicationContextShared()github
f)

The application context is destroyed when the application is shut down.

Coverage

org.jboss.cdi.tck.tests.context.application.destroy
Test archive name: 6de3a24c687acf82372c5ed942ae13232a83df4
ApplicationContextDestructionTest.testApplicationContextDestroyed()github

An event with qualifier @Initialized(ApplicationScoped.class) is fired when the application context is initialized and an event with qualifier @Destroyed(ApplicationScoped.class) is fired when the application is destroyed.

ga)

The event payload is the ServletContext if the application is a web application deployed to a Servlet container.

Coverage

org.jboss.cdi.tck.tests.deployment.shutdown
Test archive name: bc50d2dbebade51b96e7e73a1881db07c72c680
ApplicationShutdownLifecycleTest.testShutdown()github
org.jboss.cdi.tck.tests.context.application.event
Test archive name: 9a18dd27d7c11ff48282628ffc2b5e14d25be65b
ApplicationScopeEventTest.testServletContextInitializedInvoked()github
Test archive name: a4a7f9dde4d77ae65664947ca2852da98aa80c9
ApplicationScopeEventMultiWarTest.testInitializedApplicationScopedEventObserved()github
gb)

the java.lang.Object for other types of application.

#### Section 20.3.4 - Conversation context lifecycle in Java EE [conversation_context_ee]

The conversation scope is active during all Servlet requests.

a)

Test JSF request.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationActiveDuringNonFacesRequest()github
aa)

Test non-JSF servlet request.

Coverage

org.jboss.cdi.tck.tests.context.conversation.servlet
Test archive name: 44714cc3c1b552333db533281710cc64c08fb7
ServletConversationTest.testTransientConversation()github
Test archive name: 44714cc3c1b552333db533281710cc64c08fb7
ServletConversationTest.testLongRunningConversation()github
Test archive name: 44714cc3c1b552333db533281710cc64c08fb7
ServletConversationTest.testPost()github

An event with qualifier @Initialized(ConversationContext.class) is fired when the conversation context is initialized. An event with qualifier @BeforeDestroyed(ConversationScoped.class) is synchronously fired when the conversation is about to be destroyed, i.e. before the actual destruction.An event with qualifier @Destroyed(ConversationScoped.class) is fired when the conversation is destroyed. The event payload is the conversation id if the conversation context is destroyed and is not associated with a current Servlet request, the ServletRequestEvent if the application is a web application deployed to a Servlet container, any java.lang.Object for other types of application.

ba)

An event with the ServletRequest as the payload and with qualifier @Initialized(ConversationContext.class) is synchronously fired when the conversation context is initialized.

Coverage

org.jboss.cdi.tck.tests.context.conversation.event
Test archive name: 7739d2afd46e73f8f73302974ad9e51de13c3e3
LongRunningConversationLifecycleEventTest.testLifecycleEventFiredForLongRunningConversation()github
Test archive name: 429e99e497662a19c5985593ddf38e51b8a54fb
TransientConversationLifecycleEventTest.testLifecycleEventFiredForTransientConversation()github
bb)

An event with the ServletRequest as the payload and with qualifier @BeforeDestroyed(ConversationScoped.class) is synchronously fired when the conversation is about to be destroyed

Coverage

org.jboss.cdi.tck.tests.context.conversation.event
Test archive name: 7739d2afd46e73f8f73302974ad9e51de13c3e3
LongRunningConversationLifecycleEventTest.testLifecycleEventFiredForLongRunningConversation()github
Test archive name: 429e99e497662a19c5985593ddf38e51b8a54fb
TransientConversationLifecycleEventTest.testLifecycleEventFiredForTransientConversation()github
bc)

An event with the ServletRequest as the payload and with qualifier @Destroyed(ConversationContext.class) is synchronously fired when the conversation context is destroyed.

Coverage

org.jboss.cdi.tck.tests.context.conversation.event
Test archive name: 7739d2afd46e73f8f73302974ad9e51de13c3e3
LongRunningConversationLifecycleEventTest.testLifecycleEventFiredForLongRunningConversation()github
Test archive name: 429e99e497662a19c5985593ddf38e51b8a54fb
TransientConversationLifecycleEventTest.testLifecycleEventFiredForTransientConversation()github
bd)

An event with the conversation id as the payload and with qualifier @Destroyed(ConversationContext.class) is fired when the conversation context is destroyed and is not associated with a current Servlet request.

Coverage

org.jboss.cdi.tck.tests.context.conversation.event.notattached
Test archive name: b7187f6e4b962bd71bd854152881916b34b3fd3
DestroyConversationNotAssociatedWithCurrentRequestEventTest.testLifecycleEventFired()github
c)

Any Servlet request has exactly one associated conversation.

d)

The container provides a filter with the name "CDI Conversation Filter", which may be mapped in web.xml, allowing the user alter when the conversation is associated with the servlet request.

Coverage

org.jboss.cdi.tck.tests.context.conversation.filter
Test archive name: 91cebf6d10e44125cbb748a4cefb35eb89df230
ConversationFilterTest.testConversationActivation()github

If this filter is not mapped in any web.xml in the application, the conversation associated with a Servlet request is determined at the beginning of the request before calling any service() method of any servlet in the web application, calling the doFilter() method of any servlet filter in the web application and before the container calls any ServletRequestListener or AsyncListener in the web application.

da)

Test service() method of a servlet.

Coverage

org.jboss.cdi.tck.tests.context.conversation.determination
Test archive name: e47a6287575a1487988cff08a1f121adb3918b
ConversationDeterminationTest.testConversationDetermination()github
db)

Test doFilter() method of a servlet filter.

Coverage

org.jboss.cdi.tck.tests.context.conversation.determination
Test archive name: e47a6287575a1487988cff08a1f121adb3918b
ConversationDeterminationTest.testConversationDetermination()github
dc)

Test ServletRequestListener.

Coverage

org.jboss.cdi.tck.tests.context.conversation.determination
Test archive name: e47a6287575a1487988cff08a1f121adb3918b
ConversationDeterminationTest.testConversationDetermination()github
dd)

Test AsyncListener.

Coverage

org.jboss.cdi.tck.tests.context.conversation.determination
Test archive name: e47a6287575a1487988cff08a1f121adb3918b
ConversationDeterminationTest.testConversationDetermination()github
e)

By default, a conversation is transient.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testTransientConversationHasNullId()github
f)

A transient conversation may be marked long-running by calling Conversation.begin()

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationBeginMakesConversationLongRunning()github
g)

A long-running conversation may be marked transient by calling Conversation.end()

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationEndMakesConversationTransient()github
ha)

All long-running conversations have a string-valued unique identifier, which may be set by the application when the conversation is marked long-running, or generated by the container

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationIdMayBeSetByApplication()github
hb)

All long-running conversations have a string-valued unique identifier, which may be set by the application when the conversation is marked long-running, or generated by the container

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationIdSetByContainerIsUnique()github
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationIdMayBeSetByContainer()github
j)

If the conversation associated with the current Servlet request is in the transient state at the end of a Servlet request, it is destroyed, and the conversation context is also destroyed.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testTransientConversationInstancesDestroyedAtRequestEnd()github
k)

If the conversation associated with the current Servlet request is in the long-running state at the end of a Servlet request, it is not destroyed.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testLongRunningConversationInstancesNotDestroyedAtRequestEnd()github
n)

The long-running conversation associated with a request may be propagated to any Servlet request via use of a request parameter named cid containing the unique identifier of the conversation. In this case, the application must manage this request parameter.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 746f7bd37c9d278fcd1188f00722ab14f9ae
ManualCidPropagationTest.testManualCidPropagation()github
l)

The long-running conversation context associated with a request that renders a JSF view is automatically propagated to any faces request (JSF form submission) that originates from that rendered page.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7339fc7fa2b6132946e730d2c961837c417694c
LongRunningConversationPropagatedByFacesContextTest.testConversationPropagated()github
Test archive name: 7339fc7fa2b6132946e730d2c961837c417694c
LongRunningConversationPropagatedByFacesContextTest.testConversationPropagatedAjax()github
m)

The long-running conversation context associated with a request that results in a JSF redirect (via a navigation rule) is automatically propagated to the resulting non-faces request, and to any other subsequent request to the same URL. This is accomplished via use of a request parameter named cid containing the unique identifier of the conversation.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7339fc7fa2b6132946e730d2c961837c417694c
LongRunningConversationPropagatedByFacesContextTest.testConversationPropagatedOverRedirect()github

When no conversation is propagated to a Servlet request, or if a request parameter named conversationPropagation has the value none the request is associated with a new transient conversation.

o)

The request is associated with a new transient conversation.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationIdSetByContainerIsUnique()github
oa)

Test request parameter named conversationPropagation.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testSuppressedConversationPropagation()github
p)

All long-running conversations are scoped to a particular HTTP servlet session and may not cross session boundaries.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationsDontCrossSessionBoundary1()github
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testConversationsDontCrossSessionBoundary2()github
qa)

When the HTTP servlet session is invalidated, all long-running conversation contexts created during the current session are destroyed, after the servlet service() method completes.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 699bb53a5ec43272d75fef527346b15ef25e1fc
InvalidatingSessionDestroysConversationTest.testInvalidatingSessionDestroysConversation()github
org.jboss.cdi.tck.tests.context.conversation.servlet
Test archive name: 44714cc3c1b552333db533281710cc64c08fb7
ServletConversationTest.testInvalidatingSessionDestroysConversation()github
Test archive name: 44714cc3c1b552333db533281710cc64c08fb7
ServletConversationTest.testInvalidatingSessionDestroysAllLongRunningConversations()github
r)

The container is permitted to arbitrarily destroy any long-running conversation that is associated with no current JSF request, in order to conserve resources

ta)

The conversation timeout, which may be specified by calling Conversation.setTimeout() is a hint to the container that a conversation should not be destroyed if it has been active within the last given interval in milliseconds.

tb)

If the propagated conversation cannot be restored, the container must associate the request with a new transient conversation and throw an exception of type jakarta.enterprise.context.NonexistentConversationException.

Coverage

org.jboss.cdi.tck.tests.context.conversation
Test archive name: 7ceea1a66213a33c94bf647f63a01d6a648db819
ClientConversationContextTest.testNonexistentConversationExceptionThrown()github

The container ensures that a long-running conversation may be associated with at most one request at a time, by blocking or rejecting concurrent requests. If the container rejects a request, it must associate the request with a new transient conversation and throw an exception of type jakarta.enterprise.context.BusyConversationException.

ua)

Test the container blocks the concurrent request.

Coverage

org.jboss.cdi.tck.tests.context.conversation.filter
Test archive name: 91cebf6d10e44125cbb748a4cefb35eb89df230
ConversationFilterTest.testConversationBusy()github

#### Section 21.1 - Container invocations and interception in Java EE [biz_method_ee]

ac)

When the application invokes a business method of a session bean via an EJB remote or local reference, the invocation is treated as a business method invocation.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.unmanaged
Test archive name: 63e4dbeeac4b942c569d5e9c2297ad63b791e6
UnmanagedInstanceTest.testNonContextualInstanceIsIntercepted()github
ig)

Invocation of EJB timer service timeouts by the container are not business method invocations, but are intercepted by interceptors for EJB timeouts.

Coverage

org.jboss.cdi.tck.tests.interceptors.invocation
Test archive name: ab95f7838ed4b6f1ad22179e8df1a3de30fe1ed8
InterceptorInvocationTest.testTimeoutMethodIntercepted()github

Invocations of message listener methods of message-driven beans during message delivery are business method invocations.

la)

Verify message listener methods are intercepted

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.enterprise.jms
Test archive name: 994731df81c7c6f99a6abf867e3d6b49179ca
MessageDrivenBeanInterceptorInvocationTest.testMessageDrivenBeanMethodIntercepted()github

If, and only if, the invocation is a business method invocation it passes through method interceptors and decorators, and in the case of a session bean, it is subject to EJB services such a declarative transaction management, concurrency, security and asynchronicity, as defined by the EJB specification.

c)

Verify that a session bean's business methods are intercepted

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.enterprise.simpleInterception
Test archive name: ea44d453fcf0ff33b2bba0a4fef26411a7a1b02a
SessionBeanInterceptorDefinitionTest.testSessionBeanIsIntercepted()github
d)

Verify that a session bean's business methods are decorated

Coverage

org.jboss.cdi.tck.tests.decorators.invocation
Test archive name: 51b2bfe7e621fba2d242f789e87e5aa69a0bea6
EJBDecoratorInvocationTest.testEJBDecoratorInvocation()github
org.jboss.cdi.tck.tests.decorators.invocation.enterprise
Test archive name: 2e4637abe583a75d09825e0dbff163a9a8aa34e
EnterpriseDecoratorInvocationTest.testContextualDecorated()github
f)

Verify that a session bean's business methods receive EJB services

h)

Verify that a non-contextual session bean's business methods are intercepted

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.enterprise.nonContextualReference
Test archive name: ae113a1e31c8fe2ad9cac50bb81c111e89a5552
SessionBeanInterceptorOnNonContextualEjbReferenceTest.testNonContextualSessionBeanReferenceIsIntercepted()github
i)

Verify that a non-contextual session bean's business methods are decorated

Coverage

org.jboss.cdi.tck.tests.decorators.invocation.enterprise
Test archive name: 2e4637abe583a75d09825e0dbff163a9a8aa34e
EnterpriseDecoratorInvocationTest.testNonContextualDecorated()github

#### Section 21.1.1 - Lifecycle of EJB stateful session beans [stateful_lifecycle]

aa)

When the create() method of a Bean object that represents a stateful session bean that is called, the container creates and returns a container-specific internal local reference to a new session bean instance. The reference must be passivation capable. This reference is not directly exposed to the application.

bb)

Before injecting or returning a contextual instance to the application, the container transforms its internal reference into an object that implements the bean types expected by the application and delegates method invocations to the underlying stateful session bean instance. This object must be passivation capable.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testCreateSFSB()github
bc)

When the destroy() method is called, and if the underlying EJB was not already removed by direct invocation of a remove method by the application, the container removes the stateful session bean. The @PreDestroy callback must be invoked by the container.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testDestroyRemovesSFSB()github

#### Section 21.1.2 - Lifecycle of EJB stateless and singleton session beans [stateless_lifecycle]

a)

When the create() method of a Bean object that represents a stateless session or singleton session bean is called, the container creates and returns a container-specific internal local reference to the session bean. This reference is not directly exposed to the application.

b)

Before injecting or returning a contextual instance to the application, the container transforms its internal reference into an object that implements the bean types expected by the application and delegates method invocations to the underlying session bean. This object must be passivation capable.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testCreateSLSB()github
c)

When the destroy() method is called, the container simply discards this internal reference.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testDestroyRemovesSFSB()github
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testRemovedEjbIgnored()github

#### Section 21.1.3 - Lifecycle of resources [resource_lifecycle]

When the create() method of a Bean object that represents a resource is called, the container creates and returns a container-specific internal reference to the Java EE component environment resource, entity manager, entity manager factory, remote EJB instance or web service reference. This reference is not directly exposed to the application.

la)

Check Java EE component environment resource

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.env
Test archive name: dedc6d5ace7963e7119a9865eca6c1a74203870
EnvInjectionTest.testProduceEnvProxy()github
org.jboss.cdi.tck.tests.implementation.simple.resource.resource
Test archive name: ebbc9979f588862a2f46db928659f995e14026
InjectionOfResourceTest.testProduceResourceProxy()github
lb)

Check Entity Manager

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext
Test archive name: 1eae27f98290531822165ef7add3ab1cd9c5b1
PersistenceContextInjectionTest.testInjectionOfPersistenceContext()github
lc)

Check Entity Manager Factory

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext
Test archive name: 1eae27f98290531822165ef7add3ab1cd9c5b1
PersistenceContextInjectionTest.testInjectionOfPersistenceUnit()github
Test archive name: 1eae27f98290531822165ef7add3ab1cd9c5b1
PersistenceContextInjectionTest.testPassivationOfPersistenceUnit()github
ld)

Check Remote EJB instance

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.ejb
Test archive name: 568ffe774883be30361935104e336690677eb7
EjbInjectionTest.testInjectionOfEjbs()github
le)

Check Web Service Reference

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.ws
Test archive name: 7e826f47a724934621aad38423b871a684349e
WebServiceReferenceInjectionTest.testInjectionOfWebServiceReference()github

Before injecting or returning a contextual instance to the application, the container transforms its internal reference into an object that implements the bean types expected by the application and delegates method invocations to the underlying resource, entity manager, entity manager factory, remote EJB instance or web service reference. This object must be passivation capable.

ma)

Check delegations to underlying Java EE component environment resource

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.env
Test archive name: dedc6d5ace7963e7119a9865eca6c1a74203870
EnvInjectionTest.testProduceEnvProxy()github
org.jboss.cdi.tck.tests.implementation.simple.resource.resource
Test archive name: ebbc9979f588862a2f46db928659f995e14026
InjectionOfResourceTest.testProduceResourceProxy()github
mb)

Check injected Java EE component environment resource is passivation capable

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.resource
Test archive name: ebbc9979f588862a2f46db928659f995e14026
InjectionOfResourceTest.testPassivatingResource()github
mc)

Check delegations to underlying Entity Manager

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext
Test archive name: 1eae27f98290531822165ef7add3ab1cd9c5b1
PersistenceContextInjectionTest.testInjectionOfPersistenceContext()github
md)

Check injected Entity Manager is passivation capable

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext
Test archive name: 1eae27f98290531822165ef7add3ab1cd9c5b1
PersistenceContextInjectionTest.testPassivationOfPersistenceContext()github
me)

Check delegations to Entity Manager Factory

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext
Test archive name: 1eae27f98290531822165ef7add3ab1cd9c5b1
PersistenceContextInjectionTest.testInjectionOfPersistenceUnit()github
mf)

Check injected Entity Manager Factory is passivation capable

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.persistenceContext
Test archive name: 1eae27f98290531822165ef7add3ab1cd9c5b1
PersistenceContextInjectionTest.testPassivationOfPersistenceUnit()github
mg)

Check delegations to underlying Remote EJB instance

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.ejb
Test archive name: 568ffe774883be30361935104e336690677eb7
EjbInjectionTest.testInjectionOfEjbs()github
mh)

Check injected Remote EJB instance is passivation capable

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.ejb
Test archive name: 568ffe774883be30361935104e336690677eb7
EjbInjectionTest.testPassivationOfEjbs()github
mj)

Check delegations to underlying Web Service Reference

Coverage

No tests exist for this assertion

mk)

Check injected Web Service Reference is passivation capable

Coverage

No tests exist for this assertion

The container must perform ordinary Java EE component environment injection upon any non-static field that functions as a resource declaration, as defined by the Java EE platform and Common Annotations for the Java platform specifications.

o)

Check @Resource injection

Coverage

org.jboss.cdi.tck.tests.implementation.simple.resource.env
Test archive name: dedc6d5ace7963e7119a9865eca6c1a74203870
EnvInjectionTest.testProduceEnvProxy()github
org.jboss.cdi.tck.tests.implementation.simple.resource.resource
Test archive name: ebbc9979f588862a2f46db928659f995e14026
InjectionOfResourceTest.testProduceResourceProxy()github
p)

The container is not required to perform Java EE component environment injection upon a static field. Portable applications should not rely upon the value of a static field that functions as a resource declaration.

q)

References to EJBs and web services are always dependent scoped and a new instance must be obtained for every injection performed.

Coverage

No tests exist for this assertion

r)

For an entity manager associated with a resource definition, it must behave as though it were injected directly using @PersistencContext.

Coverage

No tests exist for this assertion

s)

When the destroy() method of a bean which represents a remote stateful EJB reference is called, the container will not automatically destroy the EJB reference.

Coverage

No tests exist for this assertion

#### Section 22 - Decorators in Java EE [decorators_ee]

a)

When running in Java EE, the container must extend the rules defined for managed beans in Decorators to EJB session beans.

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.ear.modules
Test archive name: b3b0a05066d9bec3659b91c3a2413dfa351982c
EnterpriseArchiveModulesTest.testDecoratorEnablement()github
The following assertion is not made explicitly by the spec, however it is implied b)

A decorator may be enabled for the entire application by applying the @Priority annotation, along with a priority value, on the decorator class.

Coverage

org.jboss.cdi.tck.tests.decorators.ordering.global
Test archive name: 3016bf16d13ec712d9e2804eee189c683ae382f9
EnterpriseDecoratorOrderingTest.testDecoratorsInWebInfClasses()github
The following assertion is not made explicitly by the spec, however it is implied c)

Decorators with the smaller priority values are called first.

Coverage

org.jboss.cdi.tck.tests.decorators.ordering.global
Test archive name: 3016bf16d13ec712d9e2804eee189c683ae382f9
EnterpriseDecoratorOrderingTest.testDecoratorsInWebInfClasses()github
The following assertion is not made explicitly by the spec, however it is implied d)

A decorator may be explicitly enabled by listing its bean class under the <decorators> element of the beans.xml file of the bean archive.

Coverage

org.jboss.cdi.tck.tests.decorators.ordering.global
Test archive name: 3016bf16d13ec712d9e2804eee189c683ae382f9
EnterpriseDecoratorOrderingTest.testDecoratorsInWebInfClasses()github
org.jboss.cdi.tck.tests.decorators.invocation.enterprise
Test archive name: 2e4637abe583a75d09825e0dbff163a9a8aa34e
EnterpriseDecoratorInvocationTest.testContextualDecorated()github
The following assertion is not made explicitly by the spec, however it is implied e)

A decorator is declared by annotating the bean class with the @jakarta.decorator.Decorator stereotype.

Coverage

org.jboss.cdi.tck.tests.decorators.invocation.enterprise
Test archive name: 2e4637abe583a75d09825e0dbff163a9a8aa34e
EnterpriseDecoratorInvocationTest.testContextualDecorated()github
Test archive name: 2e4637abe583a75d09825e0dbff163a9a8aa34e
EnterpriseDecoratorInvocationTest.testNonContextualDecorated()github
The following assertion is not made explicitly by the spec, however it is implied f)

Decorators are called after interceptors.

Coverage

org.jboss.cdi.tck.tests.decorators.invocation.enterprise
Test archive name: 2e4637abe583a75d09825e0dbff163a9a8aa34e
EnterpriseDecoratorInvocationTest.testContextualDecorated()github
The following assertion is not made explicitly by the spec, however it is implied g)

The order of the decorator declarations determines the decorator ordering. Decorators which occur earlier in the list are called first.

Coverage

org.jboss.cdi.tck.tests.decorators.invocation.enterprise
Test archive name: 2e4637abe583a75d09825e0dbff163a9a8aa34e
EnterpriseDecoratorInvocationTest.testContextualDecorated()github

#### Section 22.1 - Decorator beans in Java EE [decorator_bean_ee]

Whenever a business method is invoked on an instance of a bean with decorators, the container intercepts the business method invocation and, after processing all interceptors of the method, invokes decorators of the bean. The container searches for the first decorator of the instance that implements the method that is being invoked as a business method. If such decorator exists, the container calls the method of the decorator.

ab)

Test decorator of session bean is called .

Coverage

org.jboss.cdi.tck.tests.decorators.invocation
Test archive name: 51b2bfe7e621fba2d242f789e87e5aa69a0bea6
EJBDecoratorInvocationTest.testEJBDecoratorInvocation()github
aci)

Test injected HttpServletRequest

Coverage

org.jboss.cdi.tck.tests.decorators.builtin.http.request
Test archive name: 3752bf9e944974bf5a5d2da36abae60bc57554d
BuiltinHttpServletRequestDecoratorTest.testDecoratorIsResolved()github
Test archive name: 3752bf9e944974bf5a5d2da36abae60bc57554d
BuiltinHttpServletRequestDecoratorTest.testDecoratorIsInvoked()github
acj)

Test injected HttpSession

Coverage

org.jboss.cdi.tck.tests.decorators.builtin.http.session
Test archive name: de11f8cad393a43f3ab4316cad88763ecd3213c
BuiltinHttpSessionDecoratorTest.testDecoratorIsResolved()github
Test archive name: de11f8cad393a43f3ab4316cad88763ecd3213c
BuiltinHttpSessionDecoratorTest.testDecoratorIsInvoked()github
ack)

Test injected ServletContext

Coverage

org.jboss.cdi.tck.tests.decorators.builtin.http.servletcontext
Test archive name: 8dba4cefc7b1ea5a4c6bb4af1b55daa1556209f
BuiltinServletContextDecoratorTest.testDecoratorIsResolved()github
Test archive name: 8dba4cefc7b1ea5a4c6bb4af1b55daa1556209f
BuiltinServletContextDecoratorTest.testDecoratorIsInvoked()github
acl)

Test injected InjectionPoint

Coverage

org.jboss.cdi.tck.tests.decorators.builtin.injectionpoint
Test archive name: e064ea5216b8f6bdca71642dc61a4a88857630
BuiltinInjectionPointDecoratorTest.testDecoratorIsResolved()github
Test archive name: e064ea5216b8f6bdca71642dc61a4a88857630
BuiltinInjectionPointDecoratorTest.testDecoratorInvoked()github
acm)

Test injected Principal

Coverage

org.jboss.cdi.tck.tests.decorators.builtin.principal
Test archive name: 29df83565f64d08c1eddfb889599be9affa56c2c
BuiltinPrincipalDecoratorTest.testDecoratorIsResolved()github
Test archive name: 29df83565f64d08c1eddfb889599be9affa56c2c
BuiltinPrincipalDecoratorTest.testDecoratorInvoked()github
acn)

Test injected UserTransaction

Coverage

org.jboss.cdi.tck.tests.decorators.builtin.transaction
Test archive name: 13c252bd88ac3dd9735cc5549e88ce363f1272
BuiltinUserTransactionDecoratorTest.testUserTransactionDecorated()github
The following assertion is not made explicitly by the spec, however it is implied d)

The decorator class may be abstract.

Coverage

org.jboss.cdi.tck.tests.decorators.invocation.enterprise
Test archive name: 2e4637abe583a75d09825e0dbff163a9a8aa34e
EnterpriseDecoratorInvocationTest.testContextualDecorated()github
Test archive name: 2e4637abe583a75d09825e0dbff163a9a8aa34e
EnterpriseDecoratorInvocationTest.testNonContextualDecorated()github
e)

Decorators of a session bean must comply with the bean provider programming restrictions defined by the EJB specification.

Coverage

No tests exist for this assertion

f)

Decorators of a stateful session bean must comply with the rules for instance passivation and conversational state defined by the EJB specification.

Coverage

No tests exist for this assertion

#### Section 23 - Interceptor bindings in Java EE [interceptors_ee]

The following assertion is not made explicitly by the spec, however it is implied b)

A stereotype may declare one interceptor bindings.

Coverage

org.jboss.cdi.tck.tests.definition.stereotype.interceptor.enterprise
Test archive name: ca3c27ed2cd712a88b4d0afc5499aea7e2f59bc
EnterpriseStereotypeInterceptorBindingTest.testStereotypeInterceptorBindings()github

#### Section 23.1 - Interceptor resolution in Java EE [interceptor_resolution_ee]

a)

For a custom implementation of the Interceptor interface defined in Section 11.1.2. "The Interceptor interface", the container also calls intercepts() to determine if the interceptor intercepts an EJB timeout method invocation.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition.custom
Test archive name: 60d9cb364444b7ce7bd7cb318fdbdf3cff5fc851
CustomInterceptorTest.testCustomAroundTimeoutInterceptor()github

#### Section 24.1 - Observer methods in EJB session beans [observer_methods_ee]

d)

An observer method may also be a non-abstract method of an EJB session bean class. It must be either a business method exposed by a local business interface of the EJB or a static method of the bean class.

Coverage

org.jboss.cdi.tck.tests.event.broken.observer.remoteBusinessMethod
Test archive name: 27109c2221bc74caf9c862ad28d5ae76358e833
EJBObserverMethodRemoteBusinessMethodTest.testObserverMethodOnRemoteBusinessMethodFails()github
org.jboss.cdi.tck.tests.event.broken.observer.notBusinessMethod
Test archive name: 331fee07db34f80376f7f9355ed4a8feb35a7c3
EJBObserverMethodNotBusinessMethodTest.testObserverMethodOnEnterpriseBeanNotBusinessMethodOrStaticFails()github
org.jboss.cdi.tck.tests.event.broken.observer.remoteBusinessMethod
Test archive name: 904cc6adf84ea72c337fa6b37a6137aa116a59f
EJBAsyncObserverMethodRemoteBusinessMethodTest.testAsyncObserverMethodOnRemoteBusinessMethodFails()github
org.jboss.cdi.tck.tests.event.observer.resolve.enterprise
Test archive name: 3c1a4e141788214c199b040da632d812ea4ba4c
ResolveEnterpriseEventObserverTest.testObserverMethodOnEnterpriseBeanIsBusinessMethodOrStatic()github

#### Section 24.1.1 - Declaring an observer method in an EJB [observes_ee]

g)

If a non-static method of a session bean class has a parameter annotated @Observes, and the method is not a business method exposed by a local business interface of the EJB, the container automatically detects the problem and treats it as a definition error.

Coverage

org.jboss.cdi.tck.tests.event.broken.observer.remoteBusinessMethod
Test archive name: 27109c2221bc74caf9c862ad28d5ae76358e833
EJBObserverMethodRemoteBusinessMethodTest.testObserverMethodOnRemoteBusinessMethodFails()github
org.jboss.cdi.tck.tests.event.broken.observer.notBusinessMethod
Test archive name: 331fee07db34f80376f7f9355ed4a8feb35a7c3
EJBObserverMethodNotBusinessMethodTest.testObserverMethodOnEnterpriseBeanNotBusinessMethodOrStaticFails()github
org.jboss.cdi.tck.tests.event.broken.observer.remoteBusinessMethod
Test archive name: 904cc6adf84ea72c337fa6b37a6137aa116a59f
EJBAsyncObserverMethodRemoteBusinessMethodTest.testAsyncObserverMethodOnRemoteBusinessMethodFails()github

#### Section 24.1.2 - Observer method invocation context in Java EE [observer_method_invocation_context_ee]

a)

The transaction and security contexts for a business method exposed by a local business interface of an EJB session bean also depend upon the transaction attribute and @RunAs descriptor, if any.

Coverage

org.jboss.cdi.tck.tests.event.observer.context.async.enterprise
Test archive name: 8273eda61dbe53776535bd93c27fd4eed59c
EnterpriseSecurityContextPropagationInAsyncObserverTest.testSecurityContextPropagation()github
Test archive name: 8273eda61dbe53776535bd93c27fd4eed59c
EnterpriseSecurityContextPropagationInAsyncObserverTest.testSecurityContextNotPropagated()github
b)

All kinds of observers are called in the same client security context as the invocation of Event.fire() or Event.fireAsync() or BeanManager.fireEvent().

Coverage

org.jboss.cdi.tck.tests.event.observer.context.async.enterprise
Test archive name: 8273eda61dbe53776535bd93c27fd4eed59c
EnterpriseSecurityContextPropagationInAsyncObserverTest.testSecurityContextPropagation()github
Test archive name: 8273eda61dbe53776535bd93c27fd4eed59c
EnterpriseSecurityContextPropagationInAsyncObserverTest.testSecurityContextNotPropagated()github

#### Section 25.1.1 - The Interceptor interface in Java EE [interceptor_ee]

a)

When Running in Java EE, the container must extend the rules defined in Section 11.1.2 "The Interceptor interface" and must also ensure that PREPASSIVATE, POSTACTIVATE and AROUND_TIMEOUT InterceptorType values are linked to EJB lifecycle callback or timeout method.

Coverage

org.jboss.cdi.tck.tests.interceptors.definition
Test archive name: 5ddb86d8ed9752b2b23364c1587edaa97d825
InterceptorDefinitionTest.testInterceptionType()github

#### Section 25.2 - InjectionTarget interface in Java EE [injectiontarget_ee]

When running in Java EE, the container must extend the rules defined for InjectionTarget in The Producer and InjectionTarget interfaces and must also ensure that:

a)

when inject() is called, The container performs Java EE component environment injection, according to the semantics required by the Java EE platform specification, sets the value of all injected fields, and calls all initializer methods, as defined in Injection of fields and initializer methods in Java EE.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testInjectionTargetInject()github
b)

@PostConstruct callback is called according to the semantics required by the Java EE platform specification.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testInjectionTargetPostConstruct()github
c)

@PreDestroy callback is called according to the semantics required by the Java EE platform specification.

Coverage

org.jboss.cdi.tck.tests.extensions.producer
Test archive name: 9d61b1b8675bf9e95e01f3b66ce9f83fb3ad7b6
ProducerTest.testInjectionTargetPreDestroy()github

#### Section 25.3.1 - Obtaining a reference to the CDI container in Java EE [provider_ee]

d)

Java EE components may obtain an instance of BeanManager from JNDI by looking up the name java:comp/BeanManager.

Coverage

org.jboss.cdi.tck.tests.lookup.manager.jndi
Test archive name: 527ff1a246469c4965e693b07482bc3b5fd64b8
ManagerTest.testManagerLookupInJndi()github
Test archive name: 9eed79c9d04cced62067e6a26cd5dafe908c56c4
ManagerTestEar.testManagerLookupInJndi()github
e)

When running in Java EE, when initialize method of CDIProvider is called an UnsupportedOperationException is thrown.

Coverage

org.jboss.cdi.tck.tests.lookup.manager.provider.runtime
Test archive name: 23f5c5a315b63e8f1afb0c05aa374d84f46d02b
CDIProviderRuntimeTest.testCDIProviderInitializeThrowUnsupportedOperationException()github

#### Section 25.3.2 - Wrapping a Unified EL ExpressionFactory [bm_wrap_expressionfactory]

a)

The method BeanManager.wrapExpressionFactory() returns a wrapper jakarta.el.ExpressionFactory that delegates MethodExpression and ValueExpression creation to the given ExpressionFactory.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.el
Test archive name: 3b6cdef8d798964e8c1c974dbd583d1a339c36
WrapExpressionFactoryTest.testWrapping()github
b)

When a Unified EL expression is evaluated using a MethodExpression or ValueExpression returned by the wrapper ExpressionFactory, the rules defined in Section 6.4.3, "Dependent pseudo-scope and Unified EL" are enforced by the container.

Coverage

org.jboss.cdi.tck.tests.extensions.beanManager.el
Test archive name: 3b6cdef8d798964e8c1c974dbd583d1a339c36
WrapExpressionFactoryTest.testWrapping()github

#### Section 25.4 - Alternative metadata sources and EJB [alternative_metadata_sources_ee]

The container must use the operations of Annotated and its subinterfaces to discover program element types and annotations. The container must not directly call the Java Reflection API. In particular, the container must call Annotated.getBaseType() to determine the type of an injection point, event parameter or disposed parameter, call Annotated.getTypeClosure() to determine the bean types of any kind of bean, call Annotated.getAnnotations() to determine the scope, qualifiers, stereotypes and interceptor bindings of a bean, call Annotated.isAnnotationPresent() and Annotated.getAnnotation() to read any bean annotations defined by this specification, and call AnnotatedType.getConstructors(), AnnotatedType.getMethods() and AnnotatedType.getFields() to determine the members of a bean class.

kb)

Check that a getTypeClosure() is used to determine the bean types for a session bean. The type closure should be different from the original type specified in the class definition.

Coverage

org.jboss.cdi.tck.tests.extensions.alternative.metadata
Test archive name: f9abaa2d626b18e6f226b247be111bb20189a7e
AlternativeMetadataTest.testGetTypeClosureUsedToDetermineTypeOfSessionBean()github

#### Section 25.5.1 - ProcessInjectionPoint event and EJB [process_injection_point_ee]

a)

When running in Java EE, the container must also fire an event for every injection point of every Java EE component class supporting injection that may be instantiated by the container at runtime, including every managed bean declared using @ManagedBean, EJB session or message-driven bean.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint
Test archive name: e557713dd41b5f23c5e6f2bd7ba2bd9af6224d6c
ProcessInjectionPointFiredTest.testJavaEEComponentInjectionPoint()github

#### Section 25.5.2 - ProcessInjectionTarget event and EJB [process_injection_target_ee]

The container must fire an event for every bean, interceptor or decorator. The event object must be of type jakarta.enterprise.inject.spi.ProcessInjectionTarget<X>, where x is the managed bean class.

aab)

Test event is fired for a session bean

Coverage

org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessInjectionTargetFiredForSessionBean()github
aaba)

Test event is fired for a message driven bean

Coverage

org.jboss.cdi.tck.tests.extensions.container.event.jms
Test archive name: ca43ae75e93acd53c694137891a6d72a4bfc1
ContainerEventTest.testProcessInjectionTargetEventFiredForMessageDrivenBean()github
aac)

Test event is fired for a servlet listener

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForJsfManagedBean()github
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForServletListener()github
aad)

Test event is fired for a tag handler

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForTagHandler()github
aae)

Test event is fired for a tag library listener

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForTagLibraryListener()github
aaf)

Test event is fired for an EJB Interceptor

Coverage

org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessInjectionTargetFiredForSessionBeanInterceptor()github
aag)

Test event is fired for a WS endpoint

Coverage

org.jboss.cdi.tck.tests.extensions.container.event.ws
Test archive name: 455fa2dad877ba5e8442e52edc5f90f2fe4f9ec8
ContainerEventTest.testProcessInjectionTargetFiredForWsEndpoint()github
aah)

Test event is fired for a servlet

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForServlet()github
aai)

Test event is fired for a filter

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForFilter()github
The following assertion is not made explicitly by the spec, however it is implied aan)

Test supertype for a servlet listener

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testTypeOfProcessInjectionTargetParameter()github
The following assertion is not made explicitly by the spec, however it is implied aao)

Test supertype and subtype for a tag handler

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testTypeOfProcessInjectionTargetParameter()github
The following assertion is not made explicitly by the spec, however it is implied aas)

Test supertype and subtype for a servlet

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testTypeOfProcessInjectionTargetParameter()github

getAnnotatedType() returns the AnnotatedType representing the managed bean class.

abb)

Test type for a session bean

Coverage

org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessInjectionTargetFiredForSessionBean()github
abba)

Test type for a message driven bean

Coverage

org.jboss.cdi.tck.tests.extensions.container.event.jms
Test archive name: ca43ae75e93acd53c694137891a6d72a4bfc1
ContainerEventTest.testProcessInjectionTargetEventFiredForMessageDrivenBean()github
abc)

Test type for a servlet listener

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForJsfManagedBean()github
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForServletListener()github
abd)

Test type for a tag handler

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForTagHandler()github
abe)

Test type for a tag library listener

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForTagLibraryListener()github
abf)

Test type for an EJB Interceptor

Coverage

org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessInjectionTargetFiredForSessionBeanInterceptor()github
abg)

Test type for a WS endpoint

Coverage

org.jboss.cdi.tck.tests.extensions.container.event.ws
Test archive name: 455fa2dad877ba5e8442e52edc5f90f2fe4f9ec8
ContainerEventTest.testProcessInjectionTargetFiredForWsEndpoint()github
abh)

Test type for a servlet

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForServlet()github
abi)

Test type for a filter

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForFilter()github

Any observer of this event is permitted to wrap and/or replace the InjectionTarget. The container must use the final value of this property, after all observers have been called, whenever it performs injection upon the managed bean, session bean or other Java EE component class supporting injection.

eb)

Test type for a session bean

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f5419d7385f74d1fd77f38490fbcc52102f766f
WrappedInjectionTargetTest.testWrappedInjectionTargetUsedForSessionBean()github
ec)

Test type for a servlet listener

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f5419d7385f74d1fd77f38490fbcc52102f766f
WrappedInjectionTargetTest.testWrappedInjectionTargetUsedForServletListener()github
ed)

Test type for a tag handler

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f5419d7385f74d1fd77f38490fbcc52102f766f
WrappedInjectionTargetTest.testWrappedInjectionTargetUsedForTagHandler()github
ee)

Test type for a tag library listener

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f5419d7385f74d1fd77f38490fbcc52102f766f
WrappedInjectionTargetTest.testWrappedInjectionTargetUsedForTagLibraryListener()github
ef)

Test type for an EJB Interceptor

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f5419d7385f74d1fd77f38490fbcc52102f766f
WrappedInjectionTargetTest.testWrappedInjectionTargetUsedForEjbInterceptor()github
eg)

Test type for a WS endpoint

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f5419d7385f74d1fd77f38490fbcc52102f766f
WrappedInjectionTargetTest.testWrappedInjectionTargetUsedForWsEndpoint()github
eh)

Test type for a servlet

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f5419d7385f74d1fd77f38490fbcc52102f766f
WrappedInjectionTargetTest.testWrappedInjectionTargetUsedForServlet()github
ei)

Test type for a filter

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f5419d7385f74d1fd77f38490fbcc52102f766f
WrappedInjectionTargetTest.testWrappedInjectionTargetIsUsedForFilter()github

#### Section 25.5.3 - ProcessBeanAttributes event and EJB [process_bean_attributes_ee]

getAnnotated() returns the AnnotatedType representing the bean class or session bean class, the AnnotatedMethod representing the producer field, or the AnnotatedField representing the producer field.

bab)

Test session bean.

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testSessionBeanAnnotated()github
Test archive name: 49abe0a495941fbc2403c386bf55cbd3f101bdd
VerifyValuesTest.testSessionBeanAttributes()github

#### Section 25.5.4 - ProcessBean event and EJB [process_bean_ee]

ca)

For a session bean with bean class X, the container must raise an event of type ProcessSessionBean<X>.

Coverage

org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessSessionBeanFiredForStatelessSessionBean()github
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessSessionBeanFiredForStatefulSessionBean()github
org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: b48ce09ca785f6a7145edd87c7403655c23613f
ProcessSessionBeanTest.testProcessSessionBeanEvent()github
cb)

Test ProcessSessionBean is fired after ProcessBeanAttributes.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: b48ce09ca785f6a7145edd87c7403655c23613f
ProcessSessionBeanTest.testProcessSessionBeanEvent()github

The interface jakarta.enterprise.inject.spi.ProcessBean is a supertype of all these event types.

edb)

Test ProcessSessionBean

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: b48ce09ca785f6a7145edd87c7403655c23613f
ProcessSessionBeanTest.testProcessSessionBeanEvent()github

getAnnotated() returns the AnnotatedType representing the bean class, the AnnotatedMethod representing the producer method, or the AnnotatedField representing the producer field.

efb)

Test ProcessSessionBean

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: b48ce09ca785f6a7145edd87c7403655c23613f
ProcessSessionBeanTest.testProcessSessionBeanEvent()github

getBean() returns the Bean object that is about to be registered. The Bean may implement Interceptor or Decorator.

fb)

Test ProcessSessionBean

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: b48ce09ca785f6a7145edd87c7403655c23613f
ProcessSessionBeanTest.testProcessSessionBeanEvent()github
hb)

getEjbName() returns the EJB name of the session bean.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: b48ce09ca785f6a7145edd87c7403655c23613f
ProcessSessionBeanTest.testProcessSessionBeanEvent()github
org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testGetEJBName()github
hc)

getSessionBeanType() returns a jakarta.enterprise.inject.spi.SessionBeanType representing the kind of session bean.

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: b48ce09ca785f6a7145edd87c7403655c23613f
ProcessSessionBeanTest.testProcessSessionBeanEvent()github
org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testGetSessionBeanType()github
The following assertion is not made explicitly by the spec, however it is implied k)

Check the getAnnotatedSessionBeanClass()

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: b48ce09ca785f6a7145edd87c7403655c23613f
ProcessSessionBeanTest.testProcessSessionBeanEvent()github

Check the getAnnotatedBeanClass()

The following assertion is not made explicitly by the spec, however it is implied m)

Check for session bean

Coverage

org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: b48ce09ca785f6a7145edd87c7403655c23613f
ProcessSessionBeanTest.testProcessSessionBeanEvent()github

#### Section 26.1 - Bean archive with EJB Session Beans [bean_archive_ee]

When determining which archives are bean archives, the container must consider:

da)

Library jars, EJB jars or application client jars.

db)

The WEB-INF/classes directory of a war.

dc)

Directories in the JVM classpath.

e)

A Java EE container is required by the Java EE specification to support Java EE modules. Other containers may or may not provide support for war, EJB jar or rar bean archives.

The beans.xml file must be named:

fb)

In a war, WEB-INF/beans.xml or WEB-INF/classes/META-INF/beans.xml

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.war
Test archive name: 27121cdd1431eba3b7cef169b4c10ab80c854
BeansDescriptorAlternativeLocationTest.testAlternativeLocation()github
g)

If a war has a file named beans.xml in both the WEB-INF directory and in the WEB-INF/classes/META-INF directory, then non-portable behavior results. Portable applications must have a beans.xml file in only one of the WEB-INF or the WEB-INF/classes/META-INF directories.

In an application deployed as an ear, the container searches every bean archive bundled with or referenced by the ear, including bean archives bundled with or referenced by wars, EJB jars and rars contained in the ear. The bean archives might be library jars, EJB jars or war WEB-INF/classes directories.

ja)

Test an EJB jar in an EAR.

Coverage

org.jboss.cdi.tck.tests.implementation.enterprise.lifecycle
Test archive name: 745435ee4caecdbe997b7178f26e6191a66d262
EnterpriseBeanLifecycleTest.testCreateSFSB()github
org.jboss.cdi.tck.tests.deployment.packaging.ear.modules
Test archive name: b3b0a05066d9bec3659b91c3a2413dfa351982c
EnterpriseArchiveModulesTest.testVisibilityAndInterceptorEnablement()github
jb)

Test a bundled library in an EAR.

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.bundledLibrary
Test archive name: a4d0b71bd4b22d27e9862c739c1e02dccf3950
LibraryInEarTest.test()github
org.jboss.cdi.tck.tests.deployment.packaging.ear.modules
Test archive name: b3b0a05066d9bec3659b91c3a2413dfa351982c
EnterpriseArchiveModulesTest.testVisibilityAndInterceptorEnablement()github
jc)

Test a bundled library in a WAR.

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.ear
Test archive name: c5fdac431ed438cf296a24bd99c4f447cf6259
MultiWebModuleWithExtensionTest.testMultipleWebModulesWithExtension()github
Test archive name: 6d2132a8c533da27571bd03f4fa6719fd5fd79
SingleWebModuleWithExtensionTest.testSingleWebModuleWithExtension()github
org.jboss.cdi.tck.tests.deployment.packaging.ear.modules
Test archive name: b3b0a05066d9bec3659b91c3a2413dfa351982c
EnterpriseArchiveModulesTest.testVisibilityAndInterceptorEnablement()github
jd)

Test a rar in an EAR.

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.rar
Test archive name: b7b39aaad6160fd179292e9d4b5b8a37819a9a
ResourceAdapterArchiveTest.testInjection()github
Test archive name: b7b39aaad6160fd179292e9d4b5b8a37819a9a
ResourceAdapterArchiveTest.testResolution()github
je)

Test a war in an EAR.

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.ear
Test archive name: c5fdac431ed438cf296a24bd99c4f447cf6259
MultiWebModuleWithExtensionTest.testMultipleWebModulesWithExtension()github
Test archive name: 6d2132a8c533da27571bd03f4fa6719fd5fd79
SingleWebModuleWithExtensionTest.testSingleWebModuleWithExtension()github
org.jboss.cdi.tck.tests.deployment.packaging.ear.modules
Test archive name: b3b0a05066d9bec3659b91c3a2413dfa351982c
EnterpriseArchiveModulesTest.testVisibilityAndInterceptorEnablement()github
jf)

Test an installed library.

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.installedLibrary
Test archive name: 22b6d7bbce2828982c91cb252e627d32b1fd58d
InstalledLibraryEarTest.testEjbJarInjection()github
Test archive name: 22b6d7bbce2828982c91cb252e627d32b1fd58d
InstalledLibraryEarTest.testBundledLibraryInjection()github
Test archive name: 22b6d7bbce2828982c91cb252e627d32b1fd58d
InstalledLibraryEarTest.testWarInjection()github

In an application deployed as a war, the container searches every bean archive bundled with or referenced by the war. The bean archives might be library jars or the WEB-INF/classes directory.

jg)

Test WEB-INF/classes directory.

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.war.modules
Test archive name: dec7dc110233d80afe6c175f5fae11f3f6d78d
WebArchiveModulesTest.testInjectionChainVisibilityAndInterceptorEnablement()github
org.jboss.cdi.tck.tests.implementation.simple.lifecycle
Test archive name: 19868a1cf31dba4d8e1cb5a54965ef1b7117262f
SimpleBeanLifecycleTest.testCreateInjectsFieldsDeclaredInJava()github
jh)

Test bundled library.

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.bundledLibrary
Test archive name: db2fba14aa3c26d47375cc3a5fbbe233e9ab739
LibraryMissingBeansXmlTest.test()github
org.jboss.cdi.tck.tests.deployment.packaging.visibility
Test archive name: c03fa4c4fef93a191f7164347ebb6ccb7bc6b0d4
JarToJarReverseAlphaVisibilityTest.testDeployment()github
org.jboss.cdi.tck.tests.deployment.packaging.bundledLibrary
Test archive name: 8c5ec4a3e12a8c904b3129fa21a384e9469474d6
LibraryInWarTest.test()github
org.jboss.cdi.tck.tests.deployment.packaging.war.modules
Test archive name: dec7dc110233d80afe6c175f5fae11f3f6d78d
WebArchiveModulesTest.testInjectionChainVisibilityAndInterceptorEnablement()github
org.jboss.cdi.tck.tests.deployment.packaging.visibility
Test archive name: 894ff426d641b7dbc1837447342eb38bf66619
JarToJarAlphaVisibilityTest.testDeployment()github
Test archive name: cad8ea3189796bca22cad839c9596144f52d692
VisibilityOfBeanInWebModuleFromBeanManagerInBeanLibraryTest.shouldFindBeanByType()github
Test archive name: cad8ea3189796bca22cad839c9596144f52d692
VisibilityOfBeanInWebModuleFromBeanManagerInBeanLibraryTest.shouldFindBeanByName()github
ji)

Test an installed library.

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.installedLibrary
Test archive name: eac726309f6549cbb54715e112e86a7d4d9fa42
InstalledLibraryWarTest.testInjection()github

In an application deployed as an EJB jar, the container searches the EJB jar, if it is a bean archive, and every bean archive referenced by the EJB jar.

jj)

Test classes in the EJB jar.

Coverage

org.jboss.cdi.tck.tests.deployment.packaging.ejb
Test archive name: 374ee43d4f2a451fe89d567511923896e0fd
EJBJarDeploymentTest.testContainerSearchesEJBJar()github
jk)

In an application deployed as a rar, the container searches every bean archive bundled with or referenced by the rar.

Coverage

No tests exist for this assertion

jl)

An embeddable EJB container searches each bean archive in the JVM classpath that is listed in the value of the embeddable container initialization property jakarta.ejb.embeddable.modules, or every bean archive in the JVM classpath if the property is not specified. The bean archives might be directories, library jars or EJB jars.

Coverage

No tests exist for this assertion

An explicit bean archive is an archive which contains a beans.xml file with a version number of 1.1 (or later), with the bean-discovery-mode of all, or with no version number, or that is an empty file.

The following assertion is not made explicitly by the spec, however it is implied ba)

Test an archive which contains a beans.xml file with a version number of 1.1, with the bean-discovery-mode of all.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.enterprise
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testExplicitBeanArchiveModeAll()github
The following assertion is not made explicitly by the spec, however it is implied bb)

Test an archive which contains a beans.xml file with no version number.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.enterprise
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testExplicitBeanArchiveEmptyDescriptor()github
The following assertion is not made explicitly by the spec, however it is implied bc)

Test an archive which contains an empty beans.xml.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.enterprise
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testExplicitBeanArchiveEmptyDescriptor()github
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testExplicitBeanArchiveLegacyDescriptor()github
The following assertion is not made explicitly by the spec, however it is implied oa)

An archive which contains a beans.xml file with the bean-discovery-mode of none is not a bean archive.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.enterprise
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testNoBeanArchiveModeNone()github
The following assertion is not made explicitly by the spec, however it is implied ob)

An archive which contains an extension and no beans.xml file is not a bean archive.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.enterprise
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testNotBeanArchiveExtension()github

#### Section 26.2 - Type and Bean discovery for EJB [type_bean_discovery_ee]

For every type discovered the container must create an AnnotatedType representing the type and fire an event of type ProcessAnnotatedType, as defined in Section 11.5.6.

bb)

Check session bean

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: 41b0aa3ffaa10b2b9215775a527499b8522d5d
ContainerEventTest.testProcessAnnotatedTypeEventFiredForSessionBean()github
org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessAnnotatedTypeFiredForSessionBean()github
bd)

Check JSF managed beans

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: 41b0aa3ffaa10b2b9215775a527499b8522d5d
ContainerEventTest.testProcessAnnotatedTypeEventFiredForJsfManagedBean()github
be)

Check servlet listener

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: 41b0aa3ffaa10b2b9215775a527499b8522d5d
ContainerEventTest.testProcessAnnotatedTypeEventFiredForServletListener()github
bf)

Check tag handler

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: 41b0aa3ffaa10b2b9215775a527499b8522d5d
ContainerEventTest.testProcessAnnotatedTypeEventFiredForTagHandler()github
bg)

Check tag library listener

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: 41b0aa3ffaa10b2b9215775a527499b8522d5d
ContainerEventTest.testProcessAnnotatedTypeEventFiredForTagLibraryListener()github
bh)

Check EJB Interceptor

Coverage

org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessAnnotatedTypeFiredForSessionBeanInterceptor()github
bi)

Check WS endpoint

Coverage

org.jboss.cdi.tck.tests.extensions.container.event.ws
Test archive name: 455fa2dad877ba5e8442e52edc5f90f2fe4f9ec8
ContainerEventTest.testProcessAnnotatedTypeFiredForWsEndpoint()github
bj)

Check servlet

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: 41b0aa3ffaa10b2b9215775a527499b8522d5d
ContainerEventTest.testProcessAnnotatedTypeEventFiredForServlet()github
bk)

Check filter

Coverage

org.jboss.cdi.tck.tests.lookup.injection.non.contextual
Test archive name: 41b0aa3ffaa10b2b9215775a527499b8522d5d
ContainerEventTest.testProcessAnnotatedTypeEventFiredForFilter()github

#### Section 26.2.1 - Bean discovery in Java EE [bean_discovery_steps_ee]

tc)

The container discovers each session bean.

Coverage

org.jboss.cdi.tck.tests.deployment.discovery.enterprise
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testExplicitBeanArchiveModeAll()github
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testExplicitBeanArchiveEmptyDescriptor()github
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testExplicitBeanArchiveLegacyDescriptor()github
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testImplicitBeanArchiveNoDescriptor()github
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testImplicitBeanArchiveModeAnnotated()github
Test archive name: 166491fb6741333941408e8b8baf3bd63d9b8759
EnterpriseBeanDiscoveryTest.testNoBeanArchiveModeNone()github

For every type in the set of discovered types (as defined in Type discovery), the container must fire an event of type ProcessInjectionTarget, as defined in ProcessInjectionTarget event,

bb)

Check session bean

Coverage

org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessInjectionTargetFiredForSessionBean()github
bd)

Check JSF managed beans

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForJsfManagedBean()github
be)

Check servlet listener

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForServletListener()github
bf)

Check tag handler

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForTagHandler()github
bg)

Check tag library listener

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForTagLibraryListener()github
bh)

Check EJB Interceptor

Coverage

org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessInjectionTargetFiredForSessionBeanInterceptor()github
bi)

Check WS endpoint

Coverage

org.jboss.cdi.tck.tests.extensions.container.event.ws
Test archive name: 455fa2dad877ba5e8442e52edc5f90f2fe4f9ec8
ContainerEventTest.testProcessInjectionTargetFiredForWsEndpoint()github
bj)

Check servlet

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForServlet()github
bk)

Check filter

Coverage

org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionTarget
Test archive name: f998546f9cf8273184e901861ea3be7b0f93e34
ContainerEventTest.testProcessInjectionTargetEventFiredForFilter()github

For each Java class in any bean archive, the container must, if the class is an enabled bean, interceptor or decorator, create a Bean object that implements the rules defined in Section 7.3.1, "Lifecycle of managed beans", and fire an event which is a subtype of ProcessBean, as defined in Section 11.5.8, "ProcessBean event".

fb)

Check a session bean

Coverage

org.jboss.cdi.tck.tests.extensions.container.event
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessSessionBeanFiredForStatelessSessionBean()github
Test archive name: 909f9b411a74d84ac6ee2f2f516cd5de613b11ca
ContainerEventTest.testProcessSessionBeanFiredForStatefulSessionBean()github
org.jboss.cdi.tck.tests.extensions.processBean
Test archive name: b48ce09ca785f6a7145edd87c7403655c23613f
ProcessSessionBeanTest.testProcessSessionBeanEvent()github

#### Section 26.2.2 - Trimmed bean archive in Java EE [trimmed_bean_archive_ee]

a)

When running in Java EE, the container must extend the rules defined in "Trimmed bean archive" and must ensure that EJB session beans are not removed from the set of discovered types.

Coverage

org.jboss.cdi.tck.tests.deployment.trimmed.enteprise
Test archive name: 7c348d9baa89d053ff6a866f883370eda490e72d
EnterpriseTrimmedBeanArchiveTest.testDiscoveredBean()github

#### Section 26.3 - Integration with Unified EL [el]

a)

The container must provide a Unified EL ELResolver to the servlet engine and JSF implementation that resolves bean EL names using the rules of name resolution defined in 5.3, "Name resolution" and resolving ambiguities according to Section 5.3.1, "Ambiguous names".

Coverage

org.jboss.cdi.tck.tests.lookup.el.integration
Test archive name: f9eea6a29feaafb7f3b246d62cac6bb2dbdb91
IntegrationWithUnifiedELTest.testELResolverRegisteredWithJsf()github
Test archive name: f9eea6a29feaafb7f3b246d62cac6bb2dbdb91
IntegrationWithUnifiedELTest.testELResolverRegisteredWithServletContainer()github
c)

If a name used in an EL expression does not resolve to any bean, the ELResolver must return a null value.

Coverage

org.jboss.cdi.tck.tests.lookup.el
Test archive name: 402292eb879ff8fb0441e41749ec64751e41a94
ResolutionByNameTest.testUnresolvedNameReturnsNull()github
d)

Otherwise, if a name used in an EL expression resolves to exactly one bean, the ELResolver must return a contextual instance of the bean, as defined in Section 6.5.2, "Contextual instance of a bean".

Coverage

org.jboss.cdi.tck.tests.lookup.el
Test archive name: 402292eb879ff8fb0441e41749ec64751e41a94
ResolutionByNameTest.testELResolverReturnsContextualInstance()github

### Unmatched tests

The following 1 tests do not match any known assertions:

Section | Assertion | Test Class | Test Method
--- | --- | --- | ---
declaring_selected_alternatives_application_ee | ba | org.jboss.cdi.tck.tests.alternative.selection.stereotype.priority StereotypeWithAlternativeSelectedByPriorityTest | testStereotypeAlternativeIsEnabled()

### Highlighted test groups

Test Class | Test method
--- | ---
rewrite (6)
org.jboss.cdi.tck.tests.event.fires FireEventTest | testEventSelectedFiresAndObserversNotified()
org.jboss.cdi.tck.tests.event.fires FireEventTest | testInjectedAnyEventCanFireEvent()
org.jboss.cdi.tck.tests.event.fires FireEventTest | testInjectedEventAcceptsEventObject()
org.jboss.cdi.tck.tests.event.fires FireEventTest | testInjectedEventCanHaveBindings()
org.jboss.cdi.tck.tests.event.fires FireEventTest | testInjectedEventCanSpecifyBindingsDynamically()
org.jboss.cdi.tck.tests.implementation.builtin BuiltInBeansTest | testPrincipalBean()