JSR-299 TCK Coverage

Revised Public Review Draft

Contents

Chapter Summary
Section Summary
Coverage Detail
Unmatched Tests

Chapter Summary

ChapterAssertionsTestableTotal TestedTested
(unimplemented)
Tested
(implemented)
Coverage %
2 Bean definition143130111258666.15%
3 Bean Implementation3213141837111235.67%
4 Inheritance, specialization and realization1331202412319.17%
5 Lookup, dependency injection and EL resolution1561536155636.60%
6 Bean lifecycle11510042123030.00%
7 Events136133133448966.92%
8 Scopes and contexts13112093286554.17%
Total1135107064718646143.08%

Section Summary

SectionAssertionsTestableTotal TestedTested
(unimplemented)
Tested
(implemented)
Coverage %
2 Bean definition7760685.71%
2.2 Bean types141414014100.00%
2.3 Bindings00000
2.3.1 Default binding type22202100.00%
2.3.2 Defining new binding types5321133.33%
2.3.3 Declaring the bindings of a bean using annotations44404100.00%
2.3.4 Declaring the bindings of a bean using XML111100.00%
2.3.5 Specifying bindings of an injected field4442250.00%
2.3.6 Specifying bindings of a method or constructor parameter6654116.67%
2.4 Scopes32202100.00%
2.4.1 Built-in scope types30000
2.4.2 Defining new scope types322200.00%
2.4.3 Declaring the bean scope using annotations33303100.00%
2.4.4 Declaring the bean scope using XML331100.00%
2.4.5 Default scope55505100.00%
2.5 Deployment types10000
2.5.1 Built-in deployment types32202100.00%
2.5.2 Defining new deployment types4332133.33%
2.5.3 Declaring the deployment type of a bean using annotations9980888.89%
2.5.4 Declaring the deployment type of a bean using XML332200.00%
2.5.5 Default deployment type33303100.00%
2.5.6 Enabled deployment types55505100.00%
2.6 Bean names111100.00%
2.6.1 Declaring the bean name using annotations44404100.00%
2.6.2 Declaring the bean name using XML222200.00%
2.6.3 Default bean names5540480.00%
2.6.4 Beans with no name11101100.00%
2.7 Stereotypes4331266.67%
2.7.1 Defining new stereotypes8732114.29%
2.7.1.1 Declaring the default scope and deployment type for a stereotype22202100.00%
2.7.1.2 Specifying interceptor bindings for a stereotype333300.00%
2.7.1.3 Specifying name defaulting for a stereotype22202100.00%
2.7.1.4 Restricting bean scopes and types using a stereotype3320266.67%
2.7.1.5 Stereotypes with additional stereotypes660000.00%
2.7.2 Declaring the stereotypes for a bean using annotations66606100.00%
2.7.3 Declaring the stereotypes for a bean using XML111100.00%
2.7.4 Stereotype restrictions33303100.00%
2.7.5 Built-in stereotypes10000
3 Bean Implementation00000
3.1 Restriction upon bean instantiation21101100.00%
3.2 Simple beans8870787.50%
3.2.1 Which Java classes are beans?22221501568.18%
3.2.2 Bean types of a simple bean11101100.00%
3.2.3 Declaring a simple bean using annotations7750571.43%
3.2.4 Declaring a simple bean using XML886600.00%
3.2.5 Simple beans with the @New binding1414116535.71%
3.2.6 Bean constructors11101100.00%
3.2.6.1 Declaring a bean constructor using annotations5552360.00%
3.2.6.2 Declaring a bean constructor using XML443300.00%
3.2.6.3 Bean constructor parameters11101100.00%
3.2.7 Specializing a simple bean5530360.00%
3.2.8 Default name for a simple bean10101
3.3 Session beans7761571.43%
3.3.1 EJB remove methods of session beans554400.00%
3.3.2 Which EJBs are beans?222200.00%
3.3.3 Bean types of a session bean4443125.00%
3.3.4 Declaring a session bean using annotations770000.00%
3.3.5 Declaring a session bean using XML440000.00%
3.3.6 Session beans with the @New binding1313115646.15%
3.3.7 Specializing a session bean5530360.00%
3.3.8 Default name for a session bean11101100.00%
3.3.9 Session bean proxies220000.00%
3.4 Producer methods111091880.00%
3.4.1 Bean types of a producer method33303100.00%
3.4.2 Declaring a producer method using annotations101090990.00%
3.4.3 Declaring a producer method using XML330000.00%
3.4.4 Producer method parameters110000.00%
3.4.5 Specializing a producer method33303100.00%
3.4.6 Disposal methods555500.00%
3.4.7 Disposed parameter of a disposal method444400.00%
3.4.8 Declaring a disposal method using annotations665500.00%
3.4.9 Declaring a disposal method using XML333300.00%
3.4.10 Disposal method parameters111100.00%
3.4.11 Disposal method resolution222200.00%
3.4.12 Default name for a producer method11101100.00%
3.5 Producer fields10970777.78%
3.5.1 Bean types of a producer field33303100.00%
3.5.2 Declaring a producer field using annotations66606100.00%
3.5.3 Declaring a producer field using XML330000.00%
3.5.4 Default name for a producer field11101100.00%
3.6 Resources13120000.00%
3.6.1 Declaring a resource using XML12120000.00%
3.7 JMS resources40400000.00%
3.7.1 Bean types of a JMS resource220000.00%
3.7.2 Declaring a JMS resource using XML330000.00%
3.8 Injected fields101020220.00%
3.8.1 Declaring an injected field using annotations11101100.00%
3.8.2 Declaring an injected field using XML555500.00%
3.9 Initializer methods111062440.00%
3.9.1 Declaring an initializer method using annotations44404100.00%
3.9.2 Declaring an initializer method using XML333300.00%
3.9.3 Initializer method parameters11101100.00%
3.10 Support for Common Annotations888800.00%
3.11 The Bean object for a bean320000.00%
4 Inheritance, specialization and realization110000.00%
4.1 Inheritance of type-level metadata413640411.11%
4.2 Inheritance of member-level metadata64647169.38%
4.3 Specialization330000.00%
4.3.1 Using specialization8760685.71%
4.3.2 Direct and indirect specialization6430375.00%
4.3.3 Inconsistent specialization11101100.00%
4.4 Realization20000
4.4.1 Using realization7430375.00%
5 Lookup, dependency injection and EL resolution220000.00%
5.1 Unsatisfied and ambiguous dependencies110000.00%
5.2 Primitive types and null values4430375.00%
5.3 Injected reference validity22202100.00%
5.4 Client proxies4430375.00%
5.4.1 Unproxyable bean types5510120.00%
5.4.2 Client proxy invocation2210150.00%
5.5 The default binding at injection points110000.00%
5.6 Injection point metadata171780847.06%
5.6.1 Injecting InjectionPoint131350538.46%
5.7 The Manager object00000
5.7.1 Resolving dependencies880000.00%
5.7.2 Obtaining contextual instances201991842.11%
5.8 Dynamic lookup18180000.00%
5.9 Typesafe resolution algorithm16161501593.75%
5.9.1 Binding annotations with members43303100.00%
5.9.2 Multiple bindings4410125.00%
5.10 EL name resolution8863337.50%
5.11 Name resolution algorithm4410125.00%
5.12 Injection into non-contextual objects10000
5.12.1 Non-contextual instances of session beans18181015.56%
5.12.2 Message-driven beans331100.00%
5.12.3 Servlets11101100.00%
6 Bean lifecycle101040440.00%
6.1 The Contextual interface310000.00%
6.2 Creation8862450.00%
6.3 Destruction5410125.00%
6.4 Lifecycle of simple beans121263325.00%
6.5 Lifecycle of stateful session beans33303100.00%
6.6 Lifecycle of stateless session and singleton beans21101100.00%
6.7 Lifecycle of producer methods181571640.00%
6.8 Lifecycle of producer fields141080880.00%
6.9 Lifecycle of resources11100000.00%
6.10 Lifecycle of JMS resources19170000.00%
6.11 Lifecycle of EJBs666600.00%
6.12 Lifecycle of servlets430000.00%
7 Events00000
7.1 Event types and binding types8784457.14%
7.2 Firing an event via the Manager interface44404100.00%
7.3 Observing events via the Observer interface13131321184.62%
7.4 Observer notification7775228.57%
7.5 Observer methods66606100.00%
7.5.1 Event parameter of an observer method33303100.00%
7.5.2 Declaring an observer method using annotations77707100.00%
7.5.3 Declaring an observer method using XML333300.00%
7.5.4 Observer method parameters11101100.00%
7.5.5 Conditional observer methods3331266.67%
7.5.6 Transactional observer methods1212123975.00%
7.5.7 Asynchronous observer methods5554120.00%
7.5.8 Observer object for an observer method19181851372.22%
7.5.9 Observer invocation context554400.00%
7.6 The Event interface22222261672.73%
7.7 Observer resolution7771685.71%
7.7.1 Event binding types with members21101100.00%
7.7.2 Multiple event bindings33303100.00%
7.8 JMS event mappings666600.00%
8 Scopes and contexts00000
8.1 The Context interface9980888.89%
8.2 Normal scopes and pseudo-scopes741100.00%
8.3 Dependent pseudo-scope14141201285.71%
8.3.1 Dependent objects210000.00%
8.3.2 Dependent object destruction9870787.50%
8.4 Passivating scopes and serialization25221931672.73%
8.5 Context management for built-in scopes332200.00%
8.5.1 Request context lifecycle1313101000.00%
8.5.2 Session context lifecycle554400.00%
8.5.3 Application context lifecycle14147700.00%
8.5.4 Conversation context lifecycle26232002086.96%
8.6 Context management for custom scopes4431250.00%

Coverage Detail

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

Section 2 - Bean definition

a)

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

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testBeanTypesNonEmpty()fisheye|svn
b)

A bean comprises of a (nonempty) set of bindings

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testBindingTypesNonEmpty()fisheye|svn
c)

A bean comprises of a scope

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testHasScopeType()fisheye|svn
d)

A bean comprises of a deployment type

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testHasDeploymentType()fisheye|svn
e)

A bean comprises of an optional bean name

Coverage

org.jboss.jsr299.tck.tests.definition.name
NameDefinitionTest.testNonDefaultNamed()fisheye|svn
NameDefinitionTest.testNotNamedInJava()fisheye|svn
f)

A bean comprises of a set of interceptor bindings

Coverage

No tests exist for this assertion

g)

A bean comprises of a bean implementation

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testCreateReturnsInstanceOfBean()fisheye|svn

Section 2.2 - Bean types

a)

A bean may have multiple bean types

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testBeanTypes()fisheye|svn
ba)

A bean type may be a parameterized type with an actual type parameter.

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testResolveByTypeWithTypeParameter()fisheye|svn
bb)

For the purposes of the typesafe resolution algorithm defined in Section 5.9, "Typesafe resolution algorithm", parameterized bean types are considered identical by the container only if both the type and the type parameters (if any) are identical

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testResolveByTypeWithTypeParameter()fisheye|svn
c)

Bean types may not declare a type variable. If the type of an injection point is a parameterized type with a type variable, a DefinitionException is thrown by the container at deployment time.

Coverage

org.jboss.jsr299.tck.tests.definition.deployment.broken.typevariable
ParameterizedTypeInjectionTest.testInjectionPointIsNotParameterizedTypeWithTypeVariable()fisheye|svn
d)

Bean types may not declare a wildcard. If the type of an injection point is a parameterized type with a wildcard, a DefinitionException is thrown by the container at deployment time.

Coverage

org.jboss.jsr299.tck.tests.definition.deployment.broken.wildcard
WildcardTypeInjectionTest.testInjectionPointIsNotParameterizedTypeWithWildcardVariable()fisheye|svn
e)

A bean type may be an interface

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testBeanTypes()fisheye|svn
f)

A bean type may be a concrete class

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testCreateReturnsInstanceOfBean()fisheye|svn
g)

A bean type may be an abstract class

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testFinalApiType()fisheye|svn
h)

A bean type may be declared final

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testBeanTypes()fisheye|svn
i)

A bean type may have final methods

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testBeanTypes()fisheye|svn
j)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testApiTypeForArrayTypeReturn()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testApiTypeForArrayTypeReturn()fisheye|svn
k)

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

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testBeanTypes()fisheye|svn
l)

All beans have the bean type java.lang.Object

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.definition
EnterpriseBeanDefinitionTest.testObjectIsInAPITypes()fisheye|svn
org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testBeanTypes()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testApiTypeForClassReturn()fisheye|svn
m)

A client of a bean may typecast its reference to any instance of the bean to any bean type of the bean

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testBeanClientCanCastBeanInstanceToAnyBeanType()fisheye|svn

Section 2.3.1 - Default binding type

a)

If a bean does not explicitly declare a binding, the bean has exactly one binding, of type @javax.inject.Current

Coverage

org.jboss.jsr299.tck.tests.definition.binding
BindingDefinitionTest.testDefaultBindingDeclaredInJava()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testDefaultBindingType()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testDefaultBindingType()fisheye|svn
b)

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

Coverage

org.jboss.jsr299.tck.tests.definition.binding
BindingDefinitionTest.testDefaultBindingForInjectionPoint()fisheye|svn

Section 2.3.2 - Defining new binding types

ab)

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

b)

A binding type may be declared by specifying the @javax.inject.BindingType meta-annotation

Coverage

org.jboss.jsr299.tck.tests.definition.binding
BindingDefinitionTest.testBindingDeclaresBindingAnnotation()fisheye|svn
c)

The @BindingType meta-annotation may be omitted, and the binding type may be declared in beans.xml

Coverage

No tests exist for this assertion

d)

A binding type may define annotation members

Section 2.3.3 - Declaring the bindings of a bean using annotations

a)

A bean's bindings are declared by annotating the bean class with the binding types

Coverage

org.jboss.jsr299.tck.tests.definition.binding
BindingDefinitionTest.testBindingsDeclaredInJava()fisheye|svn
b)

A bean's bindings are declared by annotating the producer method with the binding types

Coverage

org.jboss.jsr299.tck.tests.definition.binding
BindingDefinitionTest.testMultipleBindings()fisheye|svn
c)

A bean's bindings are declared by annotating the producer field with the binding types

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testBindingType()fisheye|svn
d)

Any bean may declare multiple binding types

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testAllBindingTypesSpecifiedForResolutionMustAppearOnWebBean()fisheye|svn

Section 2.3.4 - Declaring the bindings of a bean using XML

Section 2.3.5 - Specifying bindings of an injected field

a)

Binding types may be applied to injected fields (see Section 3.8, "Injected fields") to determine the bean that is injected, according to the typesafe resolution algorithm defined in Section 5.9, "Typesafe resolution algorithm".

Coverage

org.jboss.jsr299.tck.tests.definition.binding
BindingDefinitionTest.testFieldInjectedFromProducerMethod()fisheye|svn
b)

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

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testAllBindingTypesSpecifiedForResolutionMustAppearOnWebBean()fisheye|svn

Section 2.3.6 - Specifying bindings of a method or constructor parameter

a)

Binding types may be applied to parameters of producer methods (see Chapter 3, Bean implementation) to determine the bean instance that is passed when the method is called by the container

Coverage

No tests exist for this assertion

d)

Binding types may be applied to parameters of bean constructors (see Chapter 3, Bean implementation) to determine the bean instance that is passed when the method is called by the container

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testInjectionOfParametersIntoBeanConstructor()fisheye|svn

Section 2.4 - Scopes

a)

All beans have a scope

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testHasScopeType()fisheye|svn
b)

A scope type is represented by an annotation type.

c)

The set of scope types is extensible

Coverage

org.jboss.jsr299.tck.tests.definition.scope
ScopeDefinitionTest.testScopeTypesAreExtensible()fisheye|svn

Section 2.4.1 - Built-in scope types

a)

The @RequestScoped, @ApplicationScoped and @SessionScoped annotations defined in Section 8.5, "Context management for built-in scopes" represent the standard scopes defined by the Java Servlets specification

b)

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

c)

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

Section 2.4.2 - Defining new scope types

ab)

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

Section 2.4.3 - Declaring the bean scope using annotations

a)

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

Coverage

org.jboss.jsr299.tck.tests.definition.scope
ScopeDefinitionTest.testScopeDeclaredInJava()fisheye|svn
b)

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, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.definition.scope.tooMany
TooManyScopesTest.testTooManyScopesSpecifiedInJava()fisheye|svn
c)

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

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype
StereotypeDefinitionTest.testStereotypeWithScopeType()fisheye|svn

Section 2.4.4 - Declaring the bean scope using XML

b)

If more than one scope type is specified in XML, a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

c)

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

Coverage

No tests exist for this assertion

Section 2.4.5 - Default scope

a)

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

Coverage

org.jboss.jsr299.tck.tests.definition.scope
ScopeDefinitionTest.testDefaultScope()fisheye|svn
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.jsr299.tck.tests.definition.stereotype
StereotypeDefinitionTest.testStereotypeWithoutScopeType()fisheye|svn
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.jsr299.tck.tests.definition.scope
ScopeDefinitionTest.testMutipleCompatibleScopeStereotypes()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testStereotypeSpecifiesScope()fisheye|svn
d)

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, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.definition.scope
ScopeDefinitionTest.testMutipleIncompatibleScopeStereotypesWithScopeSpecified()fisheye|svn
org.jboss.jsr299.tck.tests.definition.scope.incompatibleStereotypes
IncompatibleStereotypesTest.testMutipleIncompatibleScopeStereotypes()fisheye|svn
e)

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

Coverage

org.jboss.jsr299.tck.tests.definition.scope
ScopeDefinitionTest.testScopeSpecifiedAndStereotyped()fisheye|svn

Section 2.5 - Deployment types

a)

The set of deployment types is extensible

Section 2.5.1 - Built-in deployment types

a)

All standard beans defined by this specification, and provided by the container, are defined using the @Standard deployment type

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testStandardDeployment()fisheye|svn
b)

No bean may be declared with the @Standard deployment type unless explicitly required by this specification

Coverage

org.jboss.jsr299.tck.tests.definition.deployment.nonBuiltInUsesStandard
NonBuiltInUsesStandardTest.testNonBuiltInComponentUsesStandard()fisheye|svn
c)

Application beans may be defined using the @Production deployment type

Section 2.5.2 - Defining new deployment types

bb)

A deployment type is a Java annotation defined with @Retention(RUNTIME)

d)

Applications and third-party frameworks may define their own deployment types

Coverage

org.jboss.jsr299.tck.tests.definition.deployment.custom
CustomDeploymentTypeTest.testCustomDeploymentTypes()fisheye|svn

Section 2.5.3 - Declaring the deployment type of a bean using annotations

a)

The deployment type of the bean is declared by annotating the bean class

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testHasDeploymentType()fisheye|svn
b)

The deployment type of the bean is declared by annotating the producer method

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testDeploymentType()fisheye|svn
c)

The deployment type of the bean is declared by annotating the field

Coverage

org.jboss.jsr299.tck.tests.definition.deployment
DeploymentTypeDefinitionTest.testDeploymentTypeInhertitedFromDeclaringBean()fisheye|svn
d)

An bean class may specify at most one deployment type. If multiple deployment type annotations are specified, a DefinitionException is thrown by the container at deployment time.

Coverage

org.jboss.jsr299.tck.tests.definition.deployment.broken.tooMany
TooManyDeploymentTypesTest.testTooManyDeploymentTypes()fisheye|svn
e)

A producer method may specify at most one deployment type. If multiple deployment type annotations are specified, a DefinitionException is thrown by the container at deployment time.

Coverage

org.jboss.jsr299.tck.tests.definition.deployment.broken.tooMany.producerMethod
ProducerMethodDeploymentTest.testTooManyDeploymentTypes()fisheye|svn
f)

A field may specify at most one deployment type. If multiple deployment type annotations are specified, a DefinitionException is thrown by the container at deployment time.

Coverage

org.jboss.jsr299.tck.tests.definition.deployment.broken.tooMany.producerField
ProducerFieldDeploymentTest.testTooManyDeploymentTypes()fisheye|svn
g)

By default, if no deployment type annotation is explicitly specified, a producer method inherits the deployment type of the bean in which it is defined.

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testProducerMethodInheritsDeploymentTypeOfDeclaringWebBean()fisheye|svn
h)

By default, if no deployment type annotation is explicitly specified, a producer field inherits the deployment type of the bean in which it is defined.

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testProducerFieldInheritsDeploymentTypeOfDeclaringWebBean()fisheye|svn
i)

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

Coverage

No tests exist for this assertion

Section 2.5.4 - Declaring the deployment type of a bean using XML

c)

A deployment type may be specified using a stereotype declared in XML, as defined in Section 2.7.3, "Declaring the stereotypes for a bean using XML".

Coverage

No tests exist for this assertion

Section 2.5.5 - Default deployment type

a)

The default deployment type for a bean which does not explicitly declare a deployment type depends upon its declared stereotypes - if a bean does not declare any stereotype with a declared default deployment type, then the default deployment type is@Production

Coverage

org.jboss.jsr299.tck.tests.definition.deployment
DeploymentTypeDefinitionTest.testDefaultDeploymentType()fisheye|svn
b)

Otherwise, the default deployment type for the bean is the highest-precedence default deployment type declared by any stereotype declared by the bean

Coverage

org.jboss.jsr299.tck.tests.definition.deployment
DeploymentTypeDefinitionTest.testHighestPrecedenceDeploymentTypeFromStereotype()fisheye|svn
c)

If a bean explicitly declares a deployment type, any default deployment type declared by stereotypes are ignored.

Coverage

org.jboss.jsr299.tck.tests.definition.deployment
DeploymentTypeDefinitionTest.testWebBeanDeploymentTypeOverridesStereotype()fisheye|svn

Section 2.5.6 - Enabled deployment types

a)

Beans declared with a deployment type that is not enabled are not available to the resolution algorithms defined in Chapter 5, Lookup, dependency injection and EL resolution.

Coverage

org.jboss.jsr299.tck.tests.definition.deployment
DeploymentTypeDefinitionTest.testBeanWithDisabledDeploymentTypeNotInstantiated()fisheye|svn
b)

If a element is specified, only the explicitly declared deployment types are enabled.

Coverage

org.jboss.jsr299.tck.tests.definition.deployment.custom
CustomDeploymentTypeTest.testCustomDeploymentTypes()fisheye|svn
c)

The @Standard deployment type must be declared. If the @Standard deployment type is not declared, a DeploymentException is thrown by the container at deployment time.

Coverage

org.jboss.jsr299.tck.tests.definition.deployment.broken
BrokenDeploymentTypeTest.testStandardMustBeDeclared()fisheye|svn
d)

If no element is specified in any beans.xml file, only the @Standard and @Production deployment types are enabled.

Coverage

org.jboss.jsr299.tck.tests.definition.deployment.defaultDeploymentType
DefaultDeploymentTypeTest.testDefaultEnabledDeploymentTypes()fisheye|svn
e)

If the element is specified in more than one beans.xml document, a DeploymentException is thrown by the container at deployment time.

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype.tooManyDeployElements
TooManyDeployElementsTest.testTooManyDeployElements()fisheye|svn

Section 2.6 - Bean names

Section 2.6.1 - Declaring the bean name using annotations

a)

To specify the name of a bean, the @javax.annotation.Named annotation is applied to the bean class.

Coverage

org.jboss.jsr299.tck.tests.definition.name
NameDefinitionTest.testNonDefaultNamed()fisheye|svn
b)

To specify the name of a bean, the @javax.annotation.Named annotation is applied to the producer method.

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testNamedMethod()fisheye|svn
c)

To specify the name of a bean, the @javax.annotation.Named annotation is applied to the producer field.

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testNamedField()fisheye|svn
d)

If the @Named annotation does not specify the value member, the default name is assumed

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testDefaultNamedField()fisheye|svn
org.jboss.jsr299.tck.tests.definition.name
NameDefinitionTest.testDefaultNamed()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testDefaultNamedMethod()fisheye|svn

Section 2.6.2 - Declaring the bean name using XML

Section 2.6.3 - Default bean names

a)

A default name must be assigned by the container when a bean class defined using annotations declares a @Named annotation and no name is explicitly specified by the value member

Coverage

org.jboss.jsr299.tck.tests.definition.name
NameDefinitionTest.testDefaultNamed()fisheye|svn
b)

A default name must be assigned by the container when a producer method of a bean defined using annotations declares a @Named annotation and no name is explicitly specified by the value member

Coverage

org.jboss.jsr299.tck.tests.definition.name
NameDefinitionTest.testDefaultXmlNamed()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testDefaultNamedField()fisheye|svn
org.jboss.jsr299.tck.tests.definition.name
NameDefinitionTest.testJavaNamedUsedWhenNoXmlSpecified()fisheye|svn
c)

A default name must be assigned by the container when a producer field of a bean defined using annotations declares a @Named annotation and no name is explicitly specified by the value member

Coverage

org.jboss.jsr299.tck.tests.definition.name
NameDefinitionTest.testSterotypeDefaultsName()fisheye|svn
d)

A default name must be assigned by the container when an empty element is specified by a bean defined in XML

Coverage

No tests exist for this assertion

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 a name.

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype.nonEmptyNamed
NonEmptyNamedTest.testStereotypeWithNonEmptyNamed()fisheye|svn

Section 2.6.4 - Beans with no name

a)

If neither nor @Named is specified, by the bean or its stereotypes, a bean has no name

Coverage

org.jboss.jsr299.tck.tests.definition.name
NameDefinitionTest.testNotNamedInXml()fisheye|svn
NameDefinitionTest.testNotNamedInStereotype()fisheye|svn
NameDefinitionTest.testNotNamedInJava()fisheye|svn

Section 2.7 - Stereotypes

a)

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

Coverage

org.jboss.jsr299.tck.tests.definition.name
NameDefinitionTest.testSterotypeDefaultsName()fisheye|svn
b)

A bean may declare zero stereotypes

d)

A bean may declare multiple stereotypes

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype
StereotypeDefinitionTest.testMultipleStereotypes()fisheye|svn

Section 2.7.1 - Defining new stereotypes

ab)

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)

Coverage

No tests exist for this assertion

ac)

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)

Coverage

No tests exist for this assertion

ad)

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)

Coverage

No tests exist for this assertion

ae)

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)

c)

The @Stereotype meta-annotation may be omitted, and the stereotype may be declared in beans.xml

Coverage

No tests exist for this assertion

d)

A stereotype may not declare any binding annotation. If a stereotype declares a binding annotation, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype.withBindingTypes
StereoTypeWithBindingTypesTest.testStereotypeWithBindingTypes()fisheye|svn

Section 2.7.1.1 - Declaring the default scope and deployment type for a stereotype

a)

A stereotype may declare at most one scope. If a stereotype declares more than one scope, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype.tooManyScopeTypes
TooManyScopeTypesTest.testStereotypeWithTooManyScopeTypes()fisheye|svn
org.jboss.jsr299.tck.tests.definition.stereotype
StereotypeDefinitionTest.testStereotypeWithScopeType()fisheye|svn
StereotypeDefinitionTest.testStereotypeWithoutScopeType()fisheye|svn
b)

A stereotype may declare at most one deployment type. If a stereotype declares more than one deployment type, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype.tooManyDeploymentTypes
TooManyDeploymentTypesTest.testStereotypeWithTooManyDeploymentTypes()fisheye|svn

Section 2.7.1.2 - Specifying interceptor bindings for a stereotype

Section 2.7.1.3 - Specifying name defaulting for a stereotype

a)

A stereotype may declare an empty @Named annotation. If a stereotype declares a non-empty @Named annotation, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype.nonEmptyNamed
NonEmptyNamedTest.testStereotypeWithNonEmptyNamed()fisheye|svn
b)

A stereotype may specify that every bean with the stereotype has a defaulted name when a name is not explicitly specified by the bean

Coverage

org.jboss.jsr299.tck.tests.definition.name
NameDefinitionTest.testSterotypeDefaultsName()fisheye|svn

Section 2.7.1.4 - Restricting bean scopes and types using a stereotype

a)

Bean scopes may be restricted using a stereotype

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype.scopeNotSupported
ScopeNotSupportedTest.testScopeIsNotSupported()fisheye|svn
org.jboss.jsr299.tck.tests.definition.stereotype
StereotypeDefinitionTest.testScopeIsSupported()fisheye|svn
b)

Bean types may be restricted using a stereotype

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype.requiredTypeNotImplemented
RequiredTypeNotImplementedTest.testRequiredTypeIsNotImplemented()fisheye|svn
org.jboss.jsr299.tck.tests.definition.stereotype
StereotypeDefinitionTest.testRequiredTypeIsImplemented()fisheye|svn
c)

Scope and type restrictions may not be specified when a stereotype is declared in XML

Coverage

No tests exist for this assertion

Section 2.7.1.5 - Stereotypes with additional stereotypes

a)

A stereotype may declare other stereotypes

Coverage

No tests exist for this assertion

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

No tests exist for this assertion

c)

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

Coverage

No tests exist for this assertion

d)

Stereotypes declared @Target(TYPE) may not be applied to stereotypes declared @Target(METHOD)

Coverage

No tests exist for this assertion

e)

Stereotypes declared @Target(TYPE) may not be applied to stereotypes declared @Target(FIELD)

Coverage

No tests exist for this assertion

f)

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

Coverage

No tests exist for this assertion

Section 2.7.2 - Declaring the stereotypes for a bean using annotations

a)

Stereotype annotations may be applied to a bean class

Coverage

org.jboss.jsr299.tck.tests.definition.scope
ScopeDefinitionTest.testScopeSpecifiedAndStereotyped()fisheye|svn
b)

Stereotype annotations may be applied to a producer method

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testStereotypeSpecifiesScope()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.producer.method.stereotypeEnforcesRequiredTypes
StereotypeEnforcesRequiredTypesTest.testStereotypeEnforcesTypes()fisheye|svn
c)

Stereotype annotations may be applied to a producer field

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testStereotype()fisheye|svn
da)

The default deployment type declared by the stereotype may be overridden by the bean

Coverage

org.jboss.jsr299.tck.tests.definition.deployment
DeploymentTypeDefinitionTest.testWebBeanDeploymentTypeOverridesStereotype()fisheye|svn
db)

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

Coverage

org.jboss.jsr299.tck.tests.definition.scope
ScopeDefinitionTest.testWebBeanScopeTypeOverridesStereotype()fisheye|svn
e)

Multiple stereotypes may be applied to the same bean

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype.requiredTypesMerged
RequiredTypesMergedTest.testMultipleStereotypesMergesRequiredTypes()fisheye|svn
org.jboss.jsr299.tck.tests.definition.stereotype.multipleStereotypesWithMultipleDeploymentTypes
MultipleStereotypesWithMultipleDeploymentTypesTest.testMultipleStereotypesWithMultipleDeploymentTypes()fisheye|svn
org.jboss.jsr299.tck.tests.definition.stereotype
StereotypeDefinitionTest.testMultipleStereotypes()fisheye|svn
StereotypeDefinitionTest.testMultipleStereotypesMergesScopes()fisheye|svn
org.jboss.jsr299.tck.tests.definition.stereotype.multipleStereotypesWithMultipleScopeTypes
MultipleStereotypesWithMultipleScopeTypesTest.testMultipleStereotypesWithMultipleScopeTypes()fisheye|svn

Section 2.7.3 - Declaring the stereotypes for a bean using XML

Section 2.7.4 - Stereotype restrictions

a)

If a stereotype declares a requiredType, and the bean types do not include the type, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype.requiredTypeNotImplemented
RequiredTypeNotImplementedTest.testRequiredTypeIsNotImplemented()fisheye|svn
org.jboss.jsr299.tck.tests.definition.stereotype
StereotypeDefinitionTest.testRequiredTypeIsImplemented()fisheye|svn
b)

If a stereotype explicitly declares a set of scope types using supportedScopes, and the bean scope is not in that set, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype.scopeNotSupported
ScopeNotSupportedTest.testScopeIsNotSupported()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.producer.method.stereotypeEnforcesRequiredTypes
StereotypeEnforcesRequiredTypesTest.testStereotypeEnforcesTypes()fisheye|svn
org.jboss.jsr299.tck.tests.definition.stereotype
StereotypeDefinitionTest.testScopeIsSupported()fisheye|svn
c)

If a bean declares multiple stereotypes, it must satisfy every restriction declared by every declared stereotype

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype.requiredTypesMerged
RequiredTypesMergedTest.testMultipleStereotypesMergesRequiredTypes()fisheye|svn
org.jboss.jsr299.tck.tests.definition.stereotype.multipleStereotypesWithMultipleDeploymentTypes
MultipleStereotypesWithMultipleDeploymentTypesTest.testMultipleStereotypesWithMultipleDeploymentTypes()fisheye|svn
org.jboss.jsr299.tck.tests.definition.stereotype
StereotypeDefinitionTest.testMultipleStereotypes()fisheye|svn
StereotypeDefinitionTest.testMultipleStereotypesMergesScopes()fisheye|svn
org.jboss.jsr299.tck.tests.definition.stereotype.multipleStereotypesWithMultipleScopeTypes
MultipleStereotypesWithMultipleScopeTypesTest.testMultipleStereotypesWithMultipleScopeTypes()fisheye|svn

Section 2.7.5 - Built-in stereotypes

a)

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

Section 3.1 - Restriction upon bean instantiation

a)

The bean class is a concrete class and is not required to implement any special interface or extend any special superclass

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testEmptyConstructorUsed()fisheye|svn
b)

If the application calls a producer method directly, instead of letting the container call it, the returned object is not a contextual instance and the capabilities listed in Section 2.1, "Functionality provided by the container to the bean" will not be available to the returned object.

Section 3.2 - Simple beans

a)

The bean class of a simple bean may not be a non-static inner class

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testNonStaticInnerClassDeclaredInJavaNotDiscovered()fisheye|svn
b)

The bean class of a simple bean may not be a parameterized type

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testParameterizedClassDeclaredInJavaIsNotDiscovered()fisheye|svn
ca)

The bean class of a simple bean may not be an abstract class, unless the simple bean is a decorator

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testAbstractClassDeclaredInJavaNotDiscovered()fisheye|svn
cb)

The bean class of a simple bean may not be an abstract class, unless the simple bean is a decorator

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testAbstractDecoratorClassDeclaredInJavaIsDiscovered()fisheye|svn
d)

If the bean class of a simple bean is annotated with both the @Interceptor and @Decorator stereotypes, a DefinitionException is thrown by the container at deployment time.

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition.interceptorAndDecorator
SimpleBeanIsDecoratorAndInterceptorTest.testSimpleBeanCannotBeDecoratorAndInterceptor()fisheye|svn
e)

Multiple simple beans may share the same bean class. This occurs when beans are defined using XML. Only one simple bean per bean class may be defined using annotations.

Coverage

No tests exist for this assertion

fa)

If a simple bean has a public field, it must have scope @Dependent.

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testDependentScopedBeanCanHavePublicField()fisheye|svn
fb)

If a simple bean with a public field declares any scope other than @Dependent, a DefinitionException is thrown by the container at deployment time.

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition.dependentWithPublicField
DependentWithPublicFieldTest.testNonDependentScopedBeanCanNotHavePublicField()fisheye|svn

Section 3.2.1 - Which Java classes are beans?

a)

A top-level Java class is not a simple bean if it is a parameterized type

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testParameterizedClassDeclaredInJavaIsNotDiscovered()fisheye|svn
b)

A top-level Java class is not a simple bean if it is a non-static inner class

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testNonStaticInnerClassDeclaredInJavaNotDiscovered()fisheye|svn
ba)

A top-level Java class that is a static inner class can be a simple bean

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testStaticInnerClassDeclaredInJavaAllowed()fisheye|svn
ca)

A top-level Java class is not a simple bean if it is an abstract class

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testAbstractClassDeclaredInJavaNotDiscovered()fisheye|svn
cb)

A top-level Java class is not a simple bean if it is an interface

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testInterfaceNotDiscoveredAsSimpleBean()fisheye|svn
cc)

A top-level Java class can be a simple bean if it is static inner class

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testStaticInnerClassDeclaredInJavaAllowed()fisheye|svn
da)

A top-level abstract Java class is a simple bean if it is annotated @Decorator.

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testAbstractDecoratorClassDeclaredInJavaIsDiscovered()fisheye|svn
db)

A top-level interface Java class is a simple bean if it is annotated @Decorator.

Coverage

No tests exist for this assertion

e)

A top-level Java class is not a simple bean if it is annotated with the JPA @Entity annotation

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testEntityClassesNotDiscoveredAsSimpleBean()fisheye|svn
f)

A top-level Java class is not a simple bean if it is annotated with any of the EJB component-defining annotations

Coverage

No tests exist for this assertion

g)

A top-level Java class is not a simple bean if it implements the javax.servlet.Servlet interface

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testClassesImplementingServletInterfacesNotDiscoveredAsSimpleBeans()fisheye|svn
h)

A top-level Java class is not a simple bean if it implements the javax.servlet.Filter interface

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testClassesImplementingServletInterfacesNotDiscoveredAsSimpleBeans()fisheye|svn
i)

A top-level Java class is not a simple bean if it implements the javax.servlet.ServletContextListener interface

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testClassesImplementingServletInterfacesNotDiscoveredAsSimpleBeans()fisheye|svn
j)

A top-level Java class is not a simple bean if it implements the javax.servlet.http.HttpSessionListener interface

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testClassesImplementingServletInterfacesNotDiscoveredAsSimpleBeans()fisheye|svn
k)

A top-level Java class is not a simple bean if it implements the javax.servlet.ServletRequestListener interface

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testClassesImplementingServletInterfacesNotDiscoveredAsSimpleBeans()fisheye|svn
l)

A top-level Java class is not a simple bean if it implements the javax.ejb.EnterpriseBean interface

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testClassesImplementingEnterpriseBeanInterfaceNotDiscoveredAsSimpleBean()fisheye|svn
m)

A top-level Java class is not a simple bean if it extends javax.faces.component.UIComponent

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testClassExtendingUiComponentNotDiscoveredAsSimpleBean()fisheye|svn
n)

A top-level Java class is not a simple bean if it is declared as an EJB bean class in ejb-jar.xml

Coverage

No tests exist for this assertion

o)

A top-level Java class is not a simple bean if it is declared as a JPA entity in orm.xml

Coverage

No tests exist for this assertion

p)

A top-level Java class is only a simple bean if it has an appropriate constructor - a constructor with no parameters

Coverage

No tests exist for this assertion

q)

A top-level Java class is only a simple bean if it has an appropriate constructor - a constructor annotated @Initializer

Coverage

No tests exist for this assertion

r)

Additional simple beans with the same bean class may be defined using XML, by specifying the class in beans.xml.

Coverage

No tests exist for this assertion

Section 3.2.2 - Bean types of a simple bean

a)

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

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testBeanTypes()fisheye|svn

Section 3.2.3 - Declaring a simple bean using annotations

a)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testEmptyConstructorUsed()fisheye|svn
ba)

A bean class may also specify a scope, name, deployment type, stereotypes and/or bindings

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testHasScopeType()fisheye|svn
bb)

A bean class may also specify a scope, name, deployment type, stereotypes and/or bindings

Coverage

org.jboss.jsr299.tck.tests.definition.name
NameDefinitionTest.testNonDefaultNamed()fisheye|svn
bc)

A bean class may also specify a scope, name, deployment type, stereotypes and/or bindings

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testHasDeploymentType()fisheye|svn
bd)

A bean class may also specify a scope, name, deployment type, stereotypes and/or bindings

Coverage

No tests exist for this assertion

be)

A bean class may also specify a scope, name, deployment type, stereotypes and/or bindings

Coverage

org.jboss.jsr299.tck.tests.definition.binding
BindingDefinitionTest.testMultipleBindings()fisheye|svn
c)

A simple bean may extend another simple bean

Coverage

No tests exist for this assertion

Section 3.2.4 - Declaring a simple bean using XML

a)

Simple beans may be declared in beans.xml using the bean class name

Coverage

No tests exist for this assertion

b)

A simple bean may even be declared at any injection point declared in XML, as defined in Section 9.9, "Inline bean declarations", in which case no bindings are specified.

Coverage

No tests exist for this assertion

Section 3.2.5 - Simple beans with the @New binding

a)

Every class that satisfies the requirements of Section 3.2.1, "Which Java classes are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such simple bean, a second simple bean exists which has the same bean class

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.newSimpleBean
NewSimpleBeanTest.testForEachSimpleBeanANewBeanExists()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testEmptyConstructorUsed()fisheye|svn
ba)

Every class that satisfies the requirements of Section 3.2.1, "Which Java classes are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such simple bean, a second simple bean exists which has the same bean constructor defined by annotations

Coverage

No tests exist for this assertion

bb)

Every class that satisfies the requirements of Section 3.2.1, "Which Java classes are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such simple bean, a second simple bean exists which has the same bean initializer methods defined by annotations

Coverage

No tests exist for this assertion

bc)

Every class that satisfies the requirements of Section 3.2.1, "Which Java classes are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such simple bean, a second simple bean exists which has the same injected fields defined by annotations

Coverage

No tests exist for this assertion

d)

Every class that satisfies the requirements of Section 3.2.1, "Which Java classes are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such simple bean, a second simple bean exists which has scope @Dependent

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.newSimpleBean
NewSimpleBeanTest.testNewBeanIsDependentScoped()fisheye|svn
e)

Every class that satisfies the requirements of Section 3.2.1, "Which Java classes are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such simple bean, a second simple bean exists which has deployment type @Standard

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.newSimpleBean
NewSimpleBeanTest.testNewBeanIsOfStandardDeploymentType()fisheye|svn
f)

Every class that satisfies the requirements of Section 3.2.1, "Which Java classes are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such simple bean, a second simple bean exists which has @javax.inject.New as the only binding

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.newSimpleBean
NewSimpleBeanTest.testNewBeanHasOnlyNewBinding()fisheye|svn
g)

Every class that satisfies the requirements of Section 3.2.1, "Which Java classes are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such simple bean, a second simple bean exists which has no bean name

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.newSimpleBean
NewSimpleBeanTest.testNewBeanHasNoWebBeanName()fisheye|svn

Section 3.2.6 - Bean constructors

a)

When the container instantiates a simple bean, it calls the bean constructor. The bean constructor is a constructor of the bean class

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testCreateReturnsInstanceOfBean()fisheye|svn

Section 3.2.6.1 - Declaring a bean constructor using annotations

a)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testInitializerAnnotatedConstructor()fisheye|svn
SimpleBeanDefinitionTest.testInitializerAnnotatedConstructorUsedOverEmptyConstuctor()fisheye|svn
b)

If a simple bean defined using annotations does not explicitly declare a constructor using @Initializer, the constructor that accepts no parameters is the bean constructor

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition
SimpleBeanDefinitionTest.testImplicitConstructorUsed()fisheye|svn
SimpleBeanDefinitionTest.testEmptyConstructorUsed()fisheye|svn
c)

If a simple bean defined using annotations has more than one constructor annotated @Initializer, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.definition.tooManyInitializerAnnotatedConstructors
TooManyInitializerAnnotatedConstructorsTest.testTooManyInitializerAnnotatedConstructor()fisheye|svn

Section 3.2.6.2 - Declaring a bean constructor using XML

a)

For a simple bean defined using XML, the bean constructor may be specified by listing the parameter types of the constructer, in order, as direct children of the element that declares the bean

Coverage

No tests exist for this assertion

Section 3.2.6.3 - Bean constructor parameters

a)

If the bean constructor has parameters, the container calls the method Manager.getInstanceToInject() defined in Section 5.7.1, "Resolving dependencies" to determine a value for each parameter and calls the constructor with those parameter values.

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testBindingTypeAnnotatedConstructor()fisheye|svn
SimpleBeanLifecycleTest.testInjectionOfParametersIntoBeanConstructor()fisheye|svn

Section 3.2.7 - Specializing a simple bean

a)

If a bean class of a simple bean X defined using annotations is annotated @Specializes, then the bean class of X must directly extend the bean class of another simple bean Y defined using annotations. Then X inherits all bindings of Y, and if Y has a name, X has the same name as Y.

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.extendejb
SpecializingBeanExtendsEnterpriseBeanTest.testSpecializingClassDirectlyExtendsEnterpriseBean()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend2
SpecializingBeanExtendsNothingTest.testSpecializingClassDirectlyExtendsNothing()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend1
SpecializingBeanImplementsInterfaceOnly.testSpecializingClassImplementsInterfaceAndExtendsNothing()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.simple
SimpleBeanSpecializationTest.testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean()fisheye|svn
SimpleBeanSpecializationTest.testSpecializingBeanHasNameOfSpecializedBean()fisheye|svn
b)

We say that X directly specializes Y, and we can be certain that Y will never be instantiated by the container if X is enabled.

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.simple
SimpleBeanSpecializationTest.testSpecializedBeanNotInstantiated()fisheye|svn
c)

We say that X directly specializes Y, and we can be certain that Y will never be called by the container if X is enabled.

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testSpecializedBeanAlwaysUsed()fisheye|svn
d)

If the bean class of X does not directly extend the bean class of another simple bean, a DefinitionException is thrown by the container at deployment time.

Coverage

No tests exist for this assertion

e)

If a simple bean X defined in XML declares the element, then the bean class of X must be the bean class of another simple bean Y defined using annotations. Then X inherits all bindings of Y, and if Y has a name, X has the same name as Y

Coverage

No tests exist for this assertion

Section 3.2.8 - Default name for a simple bean

a)

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

A test exists for this untestable assertion!

Section 3.3 - Session beans

a)

A session bean is a bean that is implemented by an EJB 3-style session bean

Coverage

No tests exist for this assertion

b)

A stateless session bean must belong to the @Dependent pseudo-scope

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.definition
EnterpriseBeanDefinitionTest.testStatelessWithDependentScopeOK()fisheye|svn
c)

A singleton bean must belong to either the @ApplicationScoped scope or to the @Dependent pseudo-scope

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.definition
EnterpriseBeanDefinitionTest.testSingletonWithDependentScopeOK()fisheye|svn
EnterpriseBeanDefinitionTest.testSingletonWithApplicationScopeOK()fisheye|svn
d)

If a session bean specifies an illegal scope, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.statelessWithApplicationScope
StatelessWithApplicationScopeTest.testStatelessWithSessionScopeFails()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.enterprise.singletonWithConversationScope
SingletonWithConversationScopeTest.testSingletonWithConversationScopeFails()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.enterprise.singletonWithRequestScope
SingletonWithRequestScopeTest.testSingletonWithRequestScopeFails()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.enterprise.statelessWithRequestScope
StatelessWithRequestScopeTest.testStatelessWithRequestScopeFails()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.enterprise.statelessWithConversationScope
StatelessWithConversationScopeTest.testStatelessWithConversationScopeFails()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.enterprise.singletonWithSessionScope
SingletonWithSessionScopeTest.testSingletonWithSessionScopeFails()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.enterprise.statelessWithSessionScope
StatelessWithSessionScopeTest.testStatelessWithSessionScopeFails()fisheye|svn
f)

If the bean class of a session bean is annotated @Interceptor, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.definition.statelessInterceptor
StatelessInterceptorTest.testEnterpriseBeanInterceptorFails()fisheye|svn
g)

If the bean class of a session bean is annotated @Decorator, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.definition.statelessDecorator
StatelessDecoratorTest.testEnterpriseBeanDecoratorFails()fisheye|svn

Section 3.3.1 - EJB remove methods of session beans

a)

If a session bean is a stateful session bean, and the scope is @Dependent, the application may call any EJB remove method of an instance of the session bean.

Coverage

No tests exist for this assertion

Section 3.3.2 - Which EJBs are beans?

Section 3.3.3 - Bean types of a session bean

c)

java.lang.Object is a bean type of every session bean

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.definition
EnterpriseBeanDefinitionTest.testObjectIsInAPITypes()fisheye|svn

Section 3.3.4 - Declaring a session bean using annotations

a)

A session bean does not require any special annotations

Coverage

No tests exist for this assertion

ba)

A bean class may also specify a scope, name, deployment type, stereotypes and/or bindings

Coverage

No tests exist for this assertion

bb)

A bean class may also specify a scope, name, deployment type, stereotypes and/or bindings

Coverage

No tests exist for this assertion

bc)

A bean class may also specify a scope, name, deployment type, stereotypes and/or bindings

Coverage

No tests exist for this assertion

bd)

A bean class may also specify a scope, name, deployment type, stereotypes and/or bindings

Coverage

No tests exist for this assertion

be)

A bean class may also specify a scope, name, deployment type, stereotypes and/or bindings~

Coverage

No tests exist for this assertion

c)

A session bean class may extend another bean class

Coverage

No tests exist for this assertion

Section 3.3.5 - Declaring a session bean using XML

a)

Session beans may be declared in beans.xml using the bean class name (for EJBs defined using a component-defining annotation) or bean class and EJB name (for EJBs defined in ejb-jar.xml)

Coverage

No tests exist for this assertion

b)

The ejbName attribute declares the EJB name of an EJB defined in ejb-jar.xml

Coverage

No tests exist for this assertion

c)

If an entity bean class is declared in XML, a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

d)

If a message-driven bean class is declared in XML, a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

Section 3.3.6 - Session beans with the @New binding

a)

Every EJB that satisfies the requirements of Section 3.3.2, "Which EJBs are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such session bean, a second bean exists which has the same bean class

Coverage

No tests exist for this assertion

aa)

Check that all enterprise beans have a @New bean

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.newBean
NewEnterpriseBeanTest.testForEachEnterpriseBeanANewBeanExists()fisheye|svn
b)

Every EJB that satisfies the requirements of Section 3.3.2, "Which EJBs are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such session bean, a second bean exists which has the initializer methods and injected fields defined by annotations

Coverage

No tests exist for this assertion

d)

Every EJB that satisfies the requirements of Section 3.3.2, "Which EJBs are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such session bean, a second bean exists which has scope @Dependent,

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.newBean
NewEnterpriseBeanTest.testNewBeanIsDependentScoped()fisheye|svn
e)

Every EJB that satisfies the requirements of Section 3.3.2, "Which EJBs are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such session bean, a second bean exists which has deployment type @Standard

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.newBean
NewEnterpriseBeanTest.testNewBeanIsOfStandardDeploymentType()fisheye|svn
f)

Every EJB that satisfies the requirements of Section 3.3.2, "Which EJBs are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such session bean, a second bean exists which has @javax.inject.New as the only binding

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.newBean
NewEnterpriseBeanTest.testNewBeanIsHasOnlyNewBinding()fisheye|svn
g)

Every EJB that satisfies the requirements of Section 3.3.2, "Which EJBs are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such session bean, a second bean exists which has no bean name

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.newBean
NewEnterpriseBeanTest.testNewBeanHasNoWebBeanName()fisheye|svn
i)

Every EJB that satisfies the requirements of Section 3.3.2, "Which EJBs are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such session bean, a second bean exists which has no observer methods

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.newBean
NewEnterpriseBeanTest.testNewBeanHasNoObservers()fisheye|svn

Section 3.3.7 - Specializing a session bean

a)

If a bean class of a session bean X defined using annotations is annotated @Specializes, then the bean class of X must directly extend the bean class of another session bean Y defined using annotations. Then X inherits all bindings of Y, and if Y has a name, X has the same name as Y. Also, X must support all local interfaces supported by Y, and if Y supports a bean-class local view, X must also support a bean-class local view. Otherwise, a DefinitionException is thrown by the container at deployment time.

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise
EnterpriseBeanSpecializationTest.testSpecializingBeanDoesNotSupportAllLocalInterfacesOnSpecializedBean()fisheye|svn
EnterpriseBeanSpecializationTest.testSpecializingBeanDoesNotSupportLocalInterfaceView()fisheye|svn
EnterpriseBeanSpecializationTest.testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean()fisheye|svn
EnterpriseBeanSpecializationTest.testSpecializingBeanHasNameOfSpecializedBean()fisheye|svn
b)

We say that X directly specializes Y, and we can be certain that Y will never be instantiated by the container if X is enabled

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise
EnterpriseBeanSpecializationIntegrationTest.testSpecializedBeanNotInstantiated()fisheye|svn
c)

We say that X directly specializes Y, and we can be certain that Y will never be called by the container if X is enabled

Coverage

No tests exist for this assertion

d)

If the bean class of X does not directly extend the bean class of another session bean, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.directlyExtendsSimpleBean
DirectlyExtendsSimpleBeanTest.testSpecializingClassDirectlyExtendsSimpleBean()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.directlyExtendsNothing
DirectlyExtendsNothingTest.testSpecializingClassDirectlyExtendsNothing()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.implementInterfaceAndExtendsNothing
ImplementsInterfaceAndExtendsNothingTest.testSpecializingClassImplementsInterfaceAndExtendsNothing()fisheye|svn
e)

If a session bean X defined in XML declares the element, then the bean class of X must be the bean class of another session bean Y defined using annotations. Then X inherits all bindings of Y, and if Y has a name, X has the same name as Y.

Coverage

No tests exist for this assertion

Section 3.3.8 - Default name for a session bean

a)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.definition
EnterpriseBeanDefinitionTest.testDefaultName()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle
EnterpriseBeanLifecycleTest.testCreateSFSB()fisheye|svn

Section 3.3.9 - Session bean proxies

a)

EJB local object references do not implement all local interfaces of the EJB. A local object reference may not be typecast to different local interface type, as required by Section 2.2, "Bean types". Therefore, the container proxies the local object reference. A session bean proxy implements all local interfaces of the EJB.

Coverage

No tests exist for this assertion

b)

All session bean proxies must be serializable

Coverage

No tests exist for this assertion

Section 3.4 - Producer methods

a)

A producer method must be a method of a simple bean class or session bean class

Coverage

No tests exist for this assertion

b)

A producer method may be static

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testStaticMethod()fisheye|svn
ProducerMethodDefinitionTest.testDefaultBindingType()fisheye|svn
c)

A producer method may be non-static

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testProducerMethodBeanCreate()fisheye|svn
e)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testProducerMethodReturnsNullIsDependent()fisheye|svn
f)

If a producer method returns a null value at runtime, and the producer method 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.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testProducerMethodReturnsNullIsNotDependent()fisheye|svn
g)

If the producer method return type is a parameterized type, it must specify actual type parameters for each type parameter

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testParameterizedReturnType()fisheye|svn
h)

If a producer method return type contains a wildcard type parameter, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.parametermizedTypeWithWildcard
PamaterizedTypeWithWildcardTest.testParameterizedReturnTypeWithWildcard()fisheye|svn
i)

If a producer method return type contains a type variable, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.parametermizedTypeWithTypeParameter
ParameterizedTypeWithTypeParameterTest.testParameterizedReturnTypeWithTypeParameter()fisheye|svn
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

k)

A bean may declare multiple producer methods

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testProducerMethodBeanCreate()fisheye|svn

Section 3.4.1 - Bean types of a producer method

a)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testApiTypeForInterfaceReturn()fisheye|svn
b)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testApiTypeForPrimitiveReturn()fisheye|svn
ProducerMethodDefinitionTest.testApiTypeForArrayTypeReturn()fisheye|svn
c)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testApiTypeForClassReturn()fisheye|svn

Section 3.4.2 - Declaring a producer method using annotations

a)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testProducerMethodBeanCreate()fisheye|svn
ba)

A producer method may specify a scope

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testScopeType()fisheye|svn
ProducerMethodDefinitionTest.testStereotypeSpecifiesScope()fisheye|svn
bb)

A producer method may specify a name

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testNamedMethod()fisheye|svn
ProducerMethodDefinitionTest.testDefaultNamedMethod()fisheye|svn
bc)

A producer method may specify a deployment type

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testDeploymentType()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.producer.method.stereotypeEnforcesRequiredTypes
StereotypeEnforcesRequiredTypesTest.testStereotypeEnforcesTypes()fisheye|svn
bd)

A producer method may specify stereotypes

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testStereotypeSpecifiesScope()fisheye|svn
be)

A producer method may specify a binding type

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testBindingType()fisheye|svn
c)

If a producer method is annotated @Initializer, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.initializer.methodAnnotatedProduces
MethodAnnotatedProducesTest.testInitializerMethodAnnotatedProduces()fisheye|svn
d)

If a producer method has a parameter annotated @Disposes, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.parameterAnnotatedDisposes
ParameterAnnotatedDisposesTest.testProducerMethodWithParameterAnnotatedDisposes()fisheye|svn
e)

If a producer method has a parameter annotated @Observes, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.parameterAnnotatedObserves
ParameterAnnotatedObservesTest.testProducerMethodWithParameterAnnotatedObserves()fisheye|svn
f)

If a non-static method of a session bean class is annotated @Produces, and the method is not a business method of the EJB, a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

Section 3.4.3 - Declaring a producer method using XML

a)

For a bean defined in XML, a producer method may be declared using the method name, the element, the return type, and the parameter types of the method

Coverage

No tests exist for this assertion

b)

When a producer method is declared in XML, the container ignores binding annotations applied to the Java method or method parameters

Coverage

No tests exist for this assertion

c)

If the bean class of a bean declared in XML does not have a method with the name and parameter types declared in XML, a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

Section 3.4.4 - Producer method parameters

a)

If the producer method has parameters, the container calls the method Manager.getInstanceToInject() defined in Section 5.7.1, "Resolving dependencies" to determine a value for each parameter and calls the producer method with those parameter values

Coverage

No tests exist for this assertion

Section 3.4.5 - Specializing a producer method

a)

If a producer method X is annotated @Specializes, then it must be non-static and directly override another producer method Y. Then X inherits all bindings of Y, and if Y has a name, X has the same name as Y.

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method
ProducerMethodSpecializationTest.testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean()fisheye|svn
ProducerMethodSpecializationTest.testSpecializingBeanHasNameOfSpecializedBean()fisheye|svn
ProducerMethodSpecializationTest.testSpecializedBeanNotInstantiated()fisheye|svn
b)

If the method is static, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.specializesStaticMethod
SpecializesStaticMethodTest.testSpecializedStaticMethod()fisheye|svn
c)

If the method does not directly override another producer method, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.indirectOverride
IndirectOverrideTest.testSpecializedMethodIndirectlyOverridesAnotherProducerMethod()fisheye|svn

Section 3.4.6 - Disposal methods

Section 3.4.7 - Disposed parameter of a disposal method

Section 3.4.8 - Declaring a disposal method using annotations

f)

If a non-static method of a session bean class has a parameter annotated @Disposes, and the method is not a business method of the EJB, a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

Section 3.4.9 - Declaring a disposal method using XML

Section 3.4.10 - Disposal method parameters

Section 3.4.11 - Disposal method resolution

Section 3.4.12 - Default name for a producer method

a)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testDefaultNamedMethod()fisheye|svn

Section 3.5 - Producer fields

a)

A producer field must be a field of a simple bean class or session bean class

Coverage

No tests exist for this assertion

b)

A producer field may be static

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testProducerStaticFieldBean()fisheye|svn
c)

A producer field may be nonstatic

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testBeanDeclaresMultipleProducerFields()fisheye|svn
d)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testProducerFieldReturnsNullIsDependent()fisheye|svn
e)

If a producer method 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.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testProducerFieldReturnsNullIsNotDependent()fisheye|svn
f)

If the producer field return type is a parameterized type, it must specify actual type parameters for each type parameter

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testParameterizedReturnType()fisheye|svn
g)

If a producer field return type contains a wildcard type parameter, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition.parameterizedReturnTypeWithWildcard
ParameterizedReturnTypeWithWildcardTest.testParameterizedReturnTypeWithWildcard()fisheye|svn
h)

If a producer field return type contains a type variable, a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

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.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testBeanDeclaresMultipleProducerFields()fisheye|svn

Section 3.5.1 - Bean types of a producer field

a)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testApiTypeForInterfaceReturn()fisheye|svn
b)

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 set of bean types contains exactly two types: the field type and java.lang.Object

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testApiTypeForPrimitiveReturn()fisheye|svn
ProducerFieldDefinitionTest.testApiTypeForArrayTypeReturn()fisheye|svn
c)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testApiTypeForClassReturn()fisheye|svn

Section 3.5.2 - Declaring a producer field using annotations

a)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testBeanDeclaresMultipleProducerFields()fisheye|svn
b)

A producer field may specify a scope

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testScopeType()fisheye|svn
c)

A producer field may specify a name

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testNamedField()fisheye|svn
d)

A producer field may specify a deployment type

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testDeploymentType()fisheye|svn
e)

A producer field may specify stereotypes

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testStereotype()fisheye|svn
f)

A producer field may specify bindings

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testBindingType()fisheye|svn

Section 3.5.3 - Declaring a producer field using XML

a)

For a bean defined in XML, a producer field may be declared using the field name, the element, and the type

Coverage

No tests exist for this assertion

b)

When a producer field is declared in XML, the container ignores binding annotations applied to the Java field

Coverage

No tests exist for this assertion

c)

If the bean class of a bean declared in XML does not have a field with the name and type declared in XML, a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

Section 3.5.4 - Default name for a producer field

a)

The default name for a producer field is the field name

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testDefaultNamedField()fisheye|svn

Section 3.6 - Resources

a)

Resources may be declared in beans.xml, allowing direct injection of an EE resource

Coverage

No tests exist for this assertion

b)

Resources may be declared in beans.xml, allowing direct injection of an entity manager

Coverage

No tests exist for this assertion

c)

Resources may be declared in beans.xml, allowing direct injection of an entity manager factory

Coverage

No tests exist for this assertion

d)

Resources may be declared in beans.xml, allowing direct injection of an EJB remote object

Coverage

No tests exist for this assertion

e)

Resources may be declared in beans.xml, allowing direct injection of a web service reference

Coverage

No tests exist for this assertion

f)

The lifecycle of an injected reference is identical to the semantics of Java EE injection using @Resource

Coverage

No tests exist for this assertion

g)

The lifecycle of an injected reference is identical to the semantics of Java EE injection using @PersistenceContext

Coverage

No tests exist for this assertion

h)

The lifecycle of an injected reference is identical to the semantics of Java EE injection using @PersistenceUnit

Coverage

No tests exist for this assertion

i)

The lifecycle of an injected reference is identical to the semantics of Java EE injection using @EJB

Coverage

No tests exist for this assertion

j)

The lifecycle of an injected reference is identical to the semantics of Java EE injection using @WebServiceRef

Coverage

No tests exist for this assertion

k)

A resource always has scope @Dependent

Coverage

No tests exist for this assertion

l)

A resource may not declare a bean name

Coverage

No tests exist for this assertion

m)

Resources are always declared using XML

Section 3.6.1 - Declaring a resource using XML

a)

A resource may be declared in beans.xml using an element that represents the Java type of the resource. For a Java EE resource, the EE resource type must be specified - for example javax.sql.Datasource for a JDBC datasource. The bean type of the resource is this specified type

Coverage

No tests exist for this assertion

b)

A resource may be declared in beans.xml using an element that represents the Java type of the resource. For a persistence context, javax.persistence.EntityManager must be specified. The bean type of the resource is this specified type

Coverage

No tests exist for this assertion

c)

A resource may be declared in beans.xml using an element that represents the Java type of the resource. For a persistence unit, javax.persistence.EntityManagerFactory must be specified. The bean type of the resource is this specified type

Coverage

No tests exist for this assertion

d)

A resource may be declared in beans.xml using an element that represents the Java type of the resource. For a remote EJB, an EJB remote interface type must be specified. The bean type of the resource is this specified type

Coverage

No tests exist for this assertion

e)

A resource may be declared in beans.xml using an element that represents the Java type of the resource. For a web service, a web service type must be specified. The bean type of the resource is this specified type

Coverage

No tests exist for this assertion

f)

Each resource declaration must contain a child , , , or element. For a Java EE resource, a JNDI name or mapped name must be specified using the or child elements of the element

Coverage

No tests exist for this assertion

g)

Each resource declaration must contain a child , , , or element. For a persistence context, a persistence unit name must be specified using the child element of the element

Coverage

No tests exist for this assertion

h)

Each resource declaration must contain a child , , , or element. For a persistence unit, a persistence unit name must be specified using the child element of the element

Coverage

No tests exist for this assertion

i)

Each resource declaration must contain a child , , , or element. For a remote EJB, a JNDI name, mapped name or EJB link must be specified using the , or child elements of the element

Coverage

No tests exist for this assertion

j)

Each resource declaration must contain a child , , , or element. For a web service, a JNDI name or mapped name must be specified using the or child elements of the element. Optionally, a URL pointing to a WSDL document may be specified using the child element

Coverage

No tests exist for this assertion

k)

The JNDI name specified by the element must be a name in the global java:global or application java:app naming context

Coverage

No tests exist for this assertion

l)

Optionally, one or more bindings may be specified for resources in XML. If no binding is explicitly specified, the default binding @Current is assumed.

Coverage

No tests exist for this assertion

Section 3.7 - JMS resources

a)

JMS resources may be declared in beans.xml

Coverage

No tests exist for this assertion

aa)

A JMS TopicSession resource always has scope @Dependent

Coverage

No tests exist for this assertion

ab)

A JMS TopicSubscriber resource always has scope @Dependent

Coverage

No tests exist for this assertion

ac)

A JMS TopicPublisher resource always has scope @Dependent

Coverage

No tests exist for this assertion

ad)

A JMS Queue resource may not declare a bean name

Coverage

No tests exist for this assertion

ae)

A JMS QueueConnection resource may not declare a bean name

Coverage

No tests exist for this assertion

af)

A JMS QueueSession resource may not declare a bean name

Coverage

No tests exist for this assertion

ag)

A JMS QueueReceiver resource may not declare a bean name

Coverage

No tests exist for this assertion

ah)

A JMS QueueSender resource may not declare a bean name

Coverage

No tests exist for this assertion

ai)

A JMS Topic resource may not declare a bean name

Coverage

No tests exist for this assertion

aj)

A JMS TopicConnection resource may not declare a bean name

Coverage

No tests exist for this assertion

ak)

A JMS TopicSession resource may not declare a bean name

Coverage

No tests exist for this assertion

al)

A JMS TopicSubscriber resource may not declare a bean name

Coverage

No tests exist for this assertion

am)

A JMS TopicPublisher resource may not declare a bean name

Coverage

No tests exist for this assertion

an)

JMS resources are always declared using XML

Coverage

No tests exist for this assertion

b)

JMS queue resources must allow the direct injection of the Queue

Coverage

No tests exist for this assertion

c)

JMS queue resources must allow the direct injection of the QueueConnection

Coverage

No tests exist for this assertion

d)

JMS queue resources must allow the direct injection of the QueueSession

Coverage

No tests exist for this assertion

e)

JMS queue resources must allow the direct injection of the QueueReceiver

Coverage

No tests exist for this assertion

f)

JMS queue resources must allow the direct injection of the QueueSender

Coverage

No tests exist for this assertion

g)

JMS topic resources must allow the direct injection of the Topic

Coverage

No tests exist for this assertion

h)

JMS topic resources must allow the direct injection of the TopicConnection

Coverage

No tests exist for this assertion

i)

JMS topic resources must allow the direct injection of the TopicSession

Coverage

No tests exist for this assertion

j)

JMS topic resources must allow the direct injection of the TopicSubscriber

Coverage

No tests exist for this assertion

k)

JMS topic resources must allow the direct injection of the TopicPublisher

Coverage

No tests exist for this assertion

l)

If the application calls close() on an instance of a QueueConnection, an UnsupportedOperationException is thrown by the container.

Coverage

No tests exist for this assertion

m)

If the application calls close() on an instance of a QueueSession, an UnsupportedOperationException is thrown by the container.

Coverage

No tests exist for this assertion

n)

If the application calls close() on an instance of a QueueReceiver, an UnsupportedOperationException is thrown by the container.

Coverage

No tests exist for this assertion

o)

If the application calls close() on an instance of a QueueSender, an UnsupportedOperationException is thrown by the container.

Coverage

No tests exist for this assertion

p)

If the application calls close() on an instance of a TopicConnection, an UnsupportedOperationException is thrown by the container.

Coverage

No tests exist for this assertion

q)

If the application calls close() on an instance of a TopicSession, an UnsupportedOperationException is thrown by the container.

Coverage

No tests exist for this assertion

r)

If the application calls close() on an instance of a TopicSubscriber, an UnsupportedOperationException is thrown by the container.

Coverage

No tests exist for this assertion

s)

If the application calls close() on an instance of a TopicPublisher, an UnsupportedOperationException is thrown by the container.

Coverage

No tests exist for this assertion

t)

A JMS Queue resource always has scope @Dependent

Coverage

No tests exist for this assertion

u)

A JMS QueueConnection resource always has scope @Dependent

Coverage

No tests exist for this assertion

v)

A JMS QueueSession resource always has scope @Dependent

Coverage

No tests exist for this assertion

w)

A JMS QueueReceiver resource always has scope @Dependent

Coverage

No tests exist for this assertion

x)

A JMS QueueSender resource always has scope @Dependent

Coverage

No tests exist for this assertion

y)

A JMS Topic resource always has scope @Dependent

Coverage

No tests exist for this assertion

z)

A JMS TopicConnection resource always has scope @Dependent

Coverage

No tests exist for this assertion

Section 3.7.1 - Bean types of a JMS resource

a)

For JMS resources that represent a queue, the bean types are Queue, QueueConnection, QueueSession and QueueSender

Coverage

No tests exist for this assertion

b)

For JMS resources that represent a topic, the bean types are Topic, TopicConnection, TopicSession and TopicPublisher

Coverage

No tests exist for this assertion

Section 3.7.2 - Declaring a JMS resource using XML

a)

A JMS resource may be declared using the or elements in beans.xml

Coverage

No tests exist for this assertion

b)

Each JMS resource declaration must contain a child element. A JNDI name or mapped name must be specified using the or child elements of the element

Coverage

No tests exist for this assertion

c)

One or more bindings may be specified. If no binding is explicitly specified, the default binding @Current is assumed

Coverage

No tests exist for this assertion

Section 3.8 - Injected fields

aa)

An injected field is a non-static, non-final field of a bean class.

Coverage

org.jboss.jsr299.tck.tests.lookup.injection
InjectionTest.testInjectingStaticField()fisheye|svn
ab)

An injected field is a non-static, non-final field of a bean class.

Coverage

org.jboss.jsr299.tck.tests.lookup.injection
InjectionTest.testInjectingFinalField()fisheye|svn
b)

An injected field is a non-static, non-final field of a servlet.

Coverage

No tests exist for this assertion

c)

An injected field is a non-static, non-final field of any EJB session bean class.

Coverage

No tests exist for this assertion

d)

An injected field is a non-static, non-final field of any message driven bean class.

Coverage

No tests exist for this assertion

e)

Injected fields are initialized by the container immediately after instantiation and before any methods of the instance are invoked. The container calls the method Manager.getInstanceToInject() defined in Section 5.7.1, "Resolving dependencies" to determine a value for each injected field

Coverage

No tests exist for this assertion

f)

Any EJB session bean may declare injected fields and have those fields injected by the container

Coverage

No tests exist for this assertion

g)

Any EJB message driven bean may declare injected fields and have those fields injected by the container

Coverage

No tests exist for this assertion

h)

If a field is a producer field, it is not an injected field

Coverage

No tests exist for this assertion

i)

If a field is a decorator delegate attribute, it is not an injected field

Coverage

No tests exist for this assertion

Section 3.8.1 - Declaring an injected field using annotations

a)

An injected field may be declared by annotating the field with any binding type

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testCreateInjectsFieldsDeclaredInJava()fisheye|svn

Section 3.8.2 - Declaring an injected field using XML

Section 3.9 - Initializer methods

aa)

An initializer method is a non-static method of a bean class.

Coverage

org.jboss.jsr299.tck.tests.implementation.initializer.staticInitializer
StaticInitializerTest.testStaticInitializerMethodNotAllowed()fisheye|svn
ab)

An initializer method is a non-static method of a servlet.

Coverage

No tests exist for this assertion

b)

An initializer method is a non-static method of any EJB session bean class.

Coverage

No tests exist for this assertion

c)

An initializer method is a non-static method of a of any EJB message driven bean class.

Coverage

org.jboss.jsr299.tck.tests.implementation.initializer
EjbInitializerMethodTest.testInitializerMethodNotABusinessMethod()fisheye|svn
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.jsr299.tck.tests.implementation.initializer
EjbInitializerMethodTest.testInitializerMethodNotABusinessMethod()fisheye|svn
g)

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

Coverage

org.jboss.jsr299.tck.tests.implementation.initializer
InitializerMethodTest.testBeanHasAllInitializerMethodsDeclaredInJavaAndXml()fisheye|svn
InitializerMethodTest.testMultipleInitializerMethodsAreCalled()fisheye|svn
h)

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

i)

Any EJB session bean may declare initializer methods and have the methods called by the container

Coverage

No tests exist for this assertion

j)

Any EJB message driven bean may declare initializer methods and have the methods called by the container

Coverage

No tests exist for this assertion

Section 3.9.1 - Declaring an initializer method using annotations

a)

An initializer method may be declared by annotating the method @javax.inject.Initializer

Coverage

org.jboss.jsr299.tck.tests.implementation.initializer
InitializerMethodTest.testMultipleInitializerMethodsAreCalled()fisheye|svn
b)

If an initializer method is annotated @Produces, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.initializer.methodAnnotatedProduces
MethodAnnotatedProducesTest.testInitializerMethodAnnotatedProduces()fisheye|svn
c)

If an initializer method has a parameter annotated @Disposes, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.initializer.parameterAnnotatedDisposes
ParameterAnnotatedDisposesTest.testInitializerMethodHasParameterAnnotatedDisposes()fisheye|svn
d)

If an initializer method has a parameter annotated @Observes, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.implementation.initializer.parameterAnnotatedObserves
ParameterAnnotatedObservesTest.testInitializerMethodHasParameterAnnotatedObserves()fisheye|svn

Section 3.9.2 - Declaring an initializer method using XML

Section 3.9.3 - Initializer method parameters

a)

An initializer method may have any number of parameters. If the initializer method has parameters, the container calls Manager.getInstanceToInject() to determine a value for each parameter and calls the initializer method with those parameter values

Coverage

org.jboss.jsr299.tck.tests.implementation.initializer
InitializerMethodTest.testMultipleInitializerMethodsAreCalled()fisheye|svn

Section 3.10 - Support for Common Annotations

Section 3.11 - The Bean object for a bean

a)

Concrete subclasses of Bean must implement the operations defined by the Contextual interface defined in Section 6.1, "The Contextual interface".

b)

An instance of Bean exists for every enabled bean in a deployment

Coverage

No tests exist for this assertion

c)

An application or third party framework may add support for new kinds of beans beyond those defined by the this specification (simple beans, session beans, producer methods and fields, resources and JMS resources) by extending Bean and registering beans with the container, using the mechanism defined in Section 11.3, "Bean registration".

Coverage

No tests exist for this assertion

Section 4 - Inheritance, specialization and realization

a)

By default, Java implementation reuse is assumed

Coverage

No tests exist for this assertion

Section 4.1 - Inheritance of type-level metadata

aa)

For class X which is extended directly by the bean class of a simple bean Y, if X is annotated with a 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.

Coverage

org.jboss.jsr299.tck.tests.definition.binding
BindingDefinitionTest.testBindingDeclaredInheritedIsInherited()fisheye|svn
BindingDefinitionTest.testBindingNotDeclaredInheritedIsNotInherited()fisheye|svn
BindingDefinitionTest.testBindingDeclaredInheritedIsBlockedByIntermediateClass()fisheye|svn
ab)

For class X which is extended directly by the bean class of a simple bean Y, if X is annotated with a stereotype 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.

Coverage

org.jboss.jsr299.tck.tests.definition.stereotype
StereotypeDefinitionTest.testStereotypeDeclaredInheritedIsInherited()fisheye|svn
StereotypeDefinitionTest.testStereotypeNotDeclaredInheritedIsNotInherited()fisheye|svn
org.jboss.jsr299.tck.tests.definition.scope
ScopeDefinitionTest.testWebBeanScopeTypeOverridesStereotype()fisheye|svn
ac)

For class X which is extended directly by the bean class of a simple bean Y, if X is annotated with a 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.

Coverage

No tests exist for this assertion

ad)

For class X which is extended directly by the bean class of a session bean Y, if X is annotated with a 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.

Coverage

No tests exist for this assertion

ae)

For class X which is extended directly by the bean class of a session bean Y, if X is annotated with a stereotype 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.

Coverage

No tests exist for this assertion

af)

For class X which is extended directly by the bean class of a session bean Y, if X is annotated with a 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.

Coverage

No tests exist for this assertion

ag)

For class X which is extended indirectly by the bean class of a simple bean Y, if X is annotated with a 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.

Coverage

No tests exist for this assertion

ah)

For class X which is extended indirectly by the bean class of a simple bean Y, if X is annotated with a stereotype 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.

Coverage

No tests exist for this assertion

ai)

For class X which is extended indirectly by the bean class of a simple bean Y, if X is annotated with a 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.

Coverage

No tests exist for this assertion

aj)

For class X which is extended indirectly by the bean class of a session bean Y, if X is annotated with a 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.

Coverage

No tests exist for this assertion

ak)

For class X which is extended indirectly by the bean class of a session bean Y, if X is annotated with a stereotype 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.

Coverage

No tests exist for this assertion

al)

For class X which is extended indirectly by the bean class of a session bean Y, if X is annotated with a 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.

Coverage

No tests exist for this assertion

ba)

For class X which is extended directly by the bean class of a simple 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.

Coverage

org.jboss.jsr299.tck.tests.definition.scope
ScopeDefinitionTest.testScopeTypeDeclaredInheritedIsInherited()fisheye|svn
ScopeDefinitionTest.testScopeTypeNotDeclaredInheritedIsNotInherited()fisheye|svn
ScopeDefinitionTest.testScopeTypeDeclaredInheritedIsBlockedByIntermediateScopeTypeMarkedInherited()fisheye|svn
ScopeDefinitionTest.testScopeTypeDeclaredInheritedIsBlockedByIntermediateScopeTypeNotMarkedInherited()fisheye|svn
bb)

For class X which is extended directly by the bean class of a session 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.

Coverage

No tests exist for this assertion

bc)

For class X which is extended indirectly by the bean class of a simple 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.

Coverage

No tests exist for this assertion

bd)

For class X which is extended indirectly by the bean class of a session 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.

Coverage

No tests exist for this assertion

ca)

For class X which is extended directly by the bean class of a simple bean Y, if X is annotated with a deployment 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 deployment type.

Coverage

org.jboss.jsr299.tck.tests.definition.deployment
DeploymentTypeDefinitionTest.testDeploymentTypeDeclaredInheritedIsInherited()fisheye|svn
DeploymentTypeDefinitionTest.testDeploymentTypeNotDeclaredInheritedIsNotInherited()fisheye|svn
DeploymentTypeDefinitionTest.testDeploymentTypeDeclaredInheritedIsBlockedByIntermediateDeploymentTypeNotMarkedInherited()fisheye|svn
DeploymentTypeDefinitionTest.testDeploymentTypeDeclaredInheritedIsBlockedByIntermediateDeploymentTypeMarkedInherited()fisheye|svn
cb)

For class X which is extended directly by the bean class of a session bean Y, if X is annotated with a deployment 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 deployment type.

Coverage

No tests exist for this assertion

cc)

For class X which is extended indirectly by the bean class of a simple bean Y, if X is annotated with a deployment 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 deployment type.

Coverage

No tests exist for this assertion

cd)

For class X which is extended indirectly by the bean class of a session bean Y, if X is annotated with a deployment 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 deployment type.

Coverage

No tests exist for this assertion

da)

For class X which is extended directly by the bean class of a simple bean Y, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scopes and deployment types declared by stereotypes.

Coverage

No tests exist for this assertion

db)

For class X which is extended directly by the bean class of a session bean Y, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scopes and deployment types declared by stereotypes.

Coverage

No tests exist for this assertion

dc)

For class X which is extended indirectly by the bean class of a simple bean Y, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scopes and deployment types declared by stereotypes.

Coverage

No tests exist for this assertion

dd)

For class X which is extended indirectly by the bean class of a session bean Y, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scopes and deployment types declared by stereotypes.

Coverage

No tests exist for this assertion

ea)

For class X which is the bean class of a simple bean Y declared using XML, if X is annotated with a binding type Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and Y does not explicitly declare an annotation of type Z using XML.

Coverage

No tests exist for this assertion

eb)

For class X which is the bean class of a simple bean Y declared using XML, if X is annotated with a stereotype Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and Y does not explicitly declare an annotation of type Z using XML.

Coverage

No tests exist for this assertion

ec)

For class X which is the bean class of a simple bean Y declared using XML, if X is annotated with an interceptor binding type Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and Y does not explicitly declare an annotation of type Z using XML.

Coverage

No tests exist for this assertion

ed)

For class X which is the bean class of a session bean Y declared using XML, if X is annotated with a binding type Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and Y does not explicitly declare an annotation of type Z using XML.

Coverage

No tests exist for this assertion

ee)

For class X which is the bean class of a session bean Y declared using XML, if X is annotated with a stereotype Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and Y does not explicitly declare an annotation of type Z using XML.

Coverage

No tests exist for this assertion

ef)

For class X which is the bean class of a session bean Y declared using XML, if X is annotated with an interceptor binding type Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and Y does not explicitly declare an annotation of type Z using XML.

Coverage

No tests exist for this assertion

fa)

For class X which is the bean class of a simple bean Y declared using XML, 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 Y does not explicitly declare a scope type using XML.

Coverage

No tests exist for this assertion

fb)

For class X which is the bean class of a session bean Y declared using XML, 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 Y does not explicitly declare a scope type using XML.

Coverage

No tests exist for this assertion

ga)

For class X which is the bean class of a simple bean Y declared using XML, if X is annotated with a deployment type Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and Y does not explicitly declare a deployment type using XML.

Coverage

No tests exist for this assertion

gb)

For class X which is the bean class of a session bean Y declared using XML, if X is annotated with a deployment type Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and Y does not explicitly declare a deployment type using XML.

Coverage

No tests exist for this assertion

ha)

For class X which is the bean class of a simple bean Y declared using XML, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scope and deployment types declared by stereotypes.

Coverage

No tests exist for this assertion

hb)

For class X which is the bean class of a session bean Y declared using XML, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scope and deployment types declared by stereotypes.

Coverage

No tests exist for this assertion

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 binding type is declared @Inherited

l)

For annotations defined by the bean specification, the built-in deployment type is not 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

aa)

For class X which is extended directly by the bean class of a simple bean Y, if X declares an injected field x then Y inherits x.

Coverage

org.jboss.jsr299.tck.tests.lookup.injection
InjectionTest.testFieldDeclaredInSuperclassInjected()fisheye|svn
ab)

For class X which is extended directly by the bean class of a session bean Y, if X declares an injected field x then Y inherits x.

Coverage

No tests exist for this assertion

ac)

For class X which is extended indirectly by the bean class of a simple bean Y, if X declares an injected field x then Y inherits x.

Coverage

No tests exist for this assertion

ad)

For class X which is extended indirectly by the bean class of a session bean Y, if X declares an injected field x then Y inherits x.

Coverage

No tests exist for this assertion

baa)

For class X which is extended directly by the bean class of a simple bean Y, if X declares a @PostConstruct 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()

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testSubClassInheritsPostConstructOnSuperclass()fisheye|svn
SimpleBeanLifecycleTest.testSubClassDoesNotInheritPostConstructOnSuperclassBlockedByIntermediateClass()fisheye|svn
bab)

For class X which is extended directly by the bean class of a session bean Y, if X declares a @PostConstruct 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()

Coverage

No tests exist for this assertion

bac)

For class X which is extended indirectly by the bean class of a simple bean Y, if X declares a @PostConstruct 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()

Coverage

No tests exist for this assertion

bad)

For class X which is extended indirectly by the bean class of a session bean Y, if X declares a @PostConstruct 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()

Coverage

No tests exist for this assertion

bba)

For class X which is extended directly by the bean class of a simple bean Y, if X declares a @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()

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testSubClassInheritsPreDestroyOnSuperclass()fisheye|svn
SimpleBeanLifecycleTest.testSubClassDoesNotInheritPreDestroyConstructOnSuperclassBlockedByIntermediateClass()fisheye|svn
bbb)

For class X which is extended directly by the bean class of a session bean Y, if X declares a @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()

Coverage

No tests exist for this assertion

bbc)

For class X which is extended indirectly by the bean class of a simple bean Y, if X declares a @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()

Coverage

No tests exist for this assertion

bbd)

For class X which is extended indirectly by the bean class of a session bean Y, if X declares a @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()

Coverage

No tests exist for this assertion

cb)

For class X which is extended directly by the bean class of a session bean Y, 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().

Coverage

No tests exist for this assertion

cc)

For class X which is extended indirectly by the bean class of a simple bean Y, 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().

Coverage

No tests exist for this assertion

cd)

For class X which is extended indirectly by the bean class of a session bean Y, 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().

Coverage

No tests exist for this assertion

da)

For class X which is extended directly by the bean class of a simple bean Y, if X declares a non-static producer method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testNonStaticProducerMethodNotInherited()fisheye|svn
db)

For class X which is extended directly by the bean class of a simple bean Y, if X declares a non-static disposal method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X

Coverage

No tests exist for this assertion

dc)

For class X which is extended directly by the bean class of a simple bean Y, if X declares a non-static observer method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testNonStaticObserverMethodNotInherited()fisheye|svn
dd)

For class X which is extended directly by the bean class of a session bean Y, if X declares a non-static producer method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X

Coverage

No tests exist for this assertion

de)

For class X which is extended directly by the bean class of a session bean Y, if X declares a non-static disposal method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X

Coverage

No tests exist for this assertion

df)

For class X which is extended directly by the bean class of a session bean Y, if X declares a non-static observer method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X

Coverage

No tests exist for this assertion

dg)

For class X which is extended indirectly by the bean class of a simple bean Y, if X declares a non-static producer method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X

Coverage

No tests exist for this assertion

dh)

For class X which is extended indirectly by the bean class of a simple bean Y, if X declares a non-static disposal method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X

Coverage

No tests exist for this assertion

di)

For class X which is extended indirectly by the bean class of a simple bean Y, if X declares a non-static observer method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X

Coverage

No tests exist for this assertion

dj)

For class X which is extended indirectly by the bean class of a session bean Y, if X declares a non-static producer method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X

Coverage

No tests exist for this assertion

dk)

For class X which is extended indirectly by the bean class of a session bean Y, if X declares a non-static disposal method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X

Coverage

No tests exist for this assertion

dl)

For class X which is extended indirectly by the bean class of a session bean Y, if X declares a non-static observer method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X

Coverage

No tests exist for this assertion

ea)

For class X which is extended directly by the bean class of a simple bean Y, if X declares a non-static producer field x then Y does not inherit this field unless Y is explicitly declared to specialize or realize X.

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.definition
ProducerFieldDefinitionTest.testNonStaticProducerFieldNotInherited()fisheye|svn
eb)

For class X which is extended directly by the bean class of a session bean Y, if X declares a non-static producer field x then Y does not inherit this field unless Y is explicitly declared to specialize or realize X.

Coverage

No tests exist for this assertion

ec)

For class X which is extended indirectly by the bean class of a simple bean Y, if X declares a non-static producer field x then Y does not inherit this field unless Y is explicitly declared to specialize or realize X.

Coverage

No tests exist for this assertion

ed)

For class X which is extended indirectly by the bean class of a session bean Y, if X declares a non-static producer field x then Y does not inherit this field unless Y is explicitly declared to specialize or realize X.

Coverage

No tests exist for this assertion

fa)

For class X which is extended directly by the bean class of a simple bean Y, if Y is a decorator and X declares a delegate attribute 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 defines a delegate attribute

Coverage

No tests exist for this assertion

fb)

For class X which is extended directly by the bean class of a session bean Y, if Y is a decorator and X declares a delegate attribute 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 defines a delegate attribute

Coverage

No tests exist for this assertion

fc)

For class X which is extended indirectly by the bean class of a simple bean Y, if Y is a decorator and X declares a delegate attribute 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 defines a delegate attribute

Coverage

No tests exist for this assertion

fd)

For class X which is extended indirectly by the bean class of a session bean Y, if Y is a decorator and X declares a delegate attribute 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 defines a delegate attribute

Coverage

No tests exist for this assertion

ga)

For class X which is the bean class of a simple bean Y declared using XML, if X declares an injected field x then Y inherits x, unless Y explicitly declares x using XML.

Coverage

No tests exist for this assertion

gb)

For class X which is the bean class of a session bean Y declared using XML, if X declares an injected field x then Y inherits x, unless Y explicitly declares x using XML.

Coverage

No tests exist for this assertion

ha)

For class X which is the bean class of a simple bean Y declared using XML, if X declares an initializer method x() then Y inherits x(), unless Y explicitly declares x() using XML

Coverage

No tests exist for this assertion

hb)

For class X which is the bean class of a simple bean Y declared using XML, if X declares a @PostConstruct method x() then Y inherits x(), unless Y explicitly declares x() using XML

Coverage

No tests exist for this assertion

hc)

For class X which is the bean class of a simple bean Y declared using XML, if X declares a @PreDestroy method x() then Y inherits x(), unless Y explicitly declares x() using XML

Coverage

No tests exist for this assertion

hd)

For class X which is the bean class of a session bean Y declared using XML, if X declares an initializer method x() then Y inherits x(), unless Y explicitly declares x() using XML

Coverage

No tests exist for this assertion

he)

For class X which is the bean class of a session bean Y declared using XML, if X declares a @PostConstruct method x() then Y inherits x(), unless Y explicitly declares x() using XML

Coverage

No tests exist for this assertion

hf)

For class X which is the bean class of a session bean Y declared using XML, if X declares a @PreDestroy method x() then Y inherits x(), unless Y explicitly declares x() using XML

Coverage

No tests exist for this assertion

ia)

For class X which is the bean class of a simple bean Y declared using XML, if X declares a non-static method x() annotated with an interceptor binding type Z then Y inherits the binding, unless Y explicitly declares x() using XML.

Coverage

No tests exist for this assertion

ib)

For class X which is the bean class of a session bean Y declared using XML, if X declares a non-static method x() annotated with an interceptor binding type Z then Y inherits the binding, unless Y explicitly declares x() using XML.

Coverage

No tests exist for this assertion

ja)

For class X which is the bean class of a simple bean Y declared using XML, if X declares a non-static producer method x() then Y does not inherit this method, unless Y is explicitly declared to specialize X.

Coverage

No tests exist for this assertion

jb)

For class X which is the bean class of a simple bean Y declared using XML, if X declares a non-static producer method x() then Y does not inherit this method, unless Y is explicitly declared to realize X.

Coverage

No tests exist for this assertion

jc)

For class X which is the bean class of a simple bean Y declared using XML, if X declares a non-static disposal method x() then Y does not inherit this method, unless Y is explicitly declared to specialize X.

Coverage

No tests exist for this assertion

jd)

For class X which is the bean class of a simple bean Y declared using XML, if X declares a non-static disposal method x() then Y does not inherit this method, unless Y is explicitly declared to realize X.

Coverage

No tests exist for this assertion

je)

For class X which is the bean class of a simple bean Y declared using XML, if X declares a non-static observer method x() then Y does not inherit this method, unless Y is explicitly declared to specialize X.

Coverage

No tests exist for this assertion

jf)

For class X which is the bean class of a simple bean Y declared using XML, if X declares a non-static observer method x() then Y does not inherit this method, unless Y is explicitly declared to realize X.

Coverage

No tests exist for this assertion

jg)

For class X which is the bean class of a session bean Y declared using XML, if X declares a non-static producer method x() then Y does not inherit this method, unless Y is explicitly declared to specialize X.

Coverage

No tests exist for this assertion

jh)

For class X which is the bean class of a session bean Y declared using XML, if X declares a non-static producer method x() then Y does not inherit this method, unless Y is explicitly declared to realize X.

Coverage

No tests exist for this assertion

ji)

For class X which is the bean class of a session bean Y declared using XML, if X declares a non-static disposal method x() then Y does not inherit this method, unless Y is explicitly declared to specialize X.

Coverage

No tests exist for this assertion

jj)

For class X which is the bean class of a session bean Y declared using XML, if X declares a non-static disposal method x() then Y does not inherit this method, unless Y is explicitly declared to realize X.

Coverage

No tests exist for this assertion

jk)

For class X which is the bean class of a session bean Y declared using XML, if X declares a non-static observer method x() then Y does not inherit this method, unless Y is explicitly declared to specialize X.

Coverage

No tests exist for this assertion

jl)

For class X which is the bean class of a session bean Y declared using XML, if X declares a non-static observer method x() then Y does not inherit this method, unless Y is explicitly declared to realize X.

Coverage

No tests exist for this assertion

ka)

For class X which is the bean class of a simple bean Y declared using XML, if X declares a non-static producer field x then Y does not inherit this field, unless Y is explicitly declared to specialize X.

Coverage

No tests exist for this assertion

kb)

For class X which is the bean class of a simple bean Y declared using XML, if X declares a non-static producer field x then Y does not inherit this field, unless Y is explicitly declared to realize X.

Coverage

No tests exist for this assertion

kc)

For class X which is the bean class of a session bean Y declared using XML, if X declares a non-static producer field x then Y does not inherit this field, unless Y is explicitly declared to specialize X.

Coverage

No tests exist for this assertion

kd)

For class X which is the bean class of a session bean Y declared using XML, if X declares a non-static producer field x then Y does not inherit this field, unless Y is explicitly declared to realize X.

Coverage

No tests exist for this assertion

la)

For class X which is the bean class of a simple bean Y declared using XML, if Y is a decorator and X declares a delegate attribute x then Y inherits x, unless Y explicitly declares a delegate attribute using XML.

Coverage

No tests exist for this assertion

lb)

For class X which is the bean class of a session bean Y declared using XML, if Y is a decorator and X declares a delegate attribute x then Y inherits x, unless Y explicitly declares a delegate attribute using XML.

Coverage

No tests exist for this assertion

Section 4.3 - Specialization

a)

If two beans both support a certain bean type, and share at least one binding, then they are both eligible for injection to any injection point with that declared type and binding. The container will choose the bean with the highest priority enabled deployment type.

Coverage

No tests exist for this assertion

b)

If the bean with the lower priority deployment type declares a binding that is not declared by the bean with the higher priority deployment type, then the bean with the higher priority deployment type will not be eligible for injection to an injection point with that binding.

Coverage

No tests exist for this assertion

c)

The only way one bean can completely override a lower-priority bean at all injection points is if it implements all the bean types and declares all the bindings of the lower-priority bean. However, if the lower-priority bean declares a producer method, then even this is not enough to ensure that the lower-priority bean is never called

Coverage

No tests exist for this assertion

Section 4.3.1 - Using specialization

a)

A bean declared using annotations may declare that it specializes a lower-priority bean using the @Specializes annotation

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.lowerprecedence
SpecializingBeanDoesNotHaveHigherPrecedenceThanSpecializedBeanTest.testSpecializingBeanDoesNotHaveHigherPrecedenceThanSpecializedBean()fisheye|svn
b)

A bean declared using XML may declare that it specializes a lower-priority bean using the element

Coverage

No tests exist for this assertion

c)

The bindings of a bean X that specializes a lower-priority bean Y include all bindings of Y, together with all bindings declared explicitly by X.

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise
EnterpriseBeanSpecializationTest.testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.simple
SimpleBeanSpecializationTest.testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method
ProducerMethodSpecializationTest.testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean()fisheye|svn
d)

If a bean X specializes a lower-priority bean Y with a name, the name of X is the same as the name of Y.

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.specializingAndSpecializedBeanHaveName
SpecializingAndSpecializedBeanHaveNameTest.testSpecializingAndSpecializedBeanHasName()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise
EnterpriseBeanSpecializationTest.testSpecializingBeanHasNameOfSpecializedBean()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.simple
SimpleBeanSpecializationTest.testSpecializingBeanHasNameOfSpecializedBean()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method
ProducerMethodSpecializationTest.testSpecializingBeanHasNameOfSpecializedBean()fisheye|svn
e)

If a bean X specializes a lower-priority bean Y with a name, and X declares a name explicitly, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.sameName
SameNameTest.testSpecializingAndSpecializedBeanHasName()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.names
SpecializingAndSpecializedBeanHasNameTest.testSpecializingAndSpecializedBeanHasName()fisheye|svn
f)

When an enabled bean specializes a lower-priority bean, we can be certain that the lower-priority bean is never instantiated or called by the container.

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise
EnterpriseBeanSpecializationIntegrationTest.testSpecializedBeanNotInstantiated()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.simple
SimpleBeanSpecializationTest.testSpecializedBeanNotInstantiated()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method
ProducerMethodSpecializationTest.testSpecializedBeanNotInstantiated()fisheye|svn
g)

Even if the lower-priority bean defines a producer method, the method will be called upon an instance of the specializing bean

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise
EnterpriseBeanSpecializationIntegrationTest.testProducerMethodOnSpecializedBeanCalledOnSpecializingBean()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.simple
SimpleBeanSpecializationTest.testProducerMethodOnSpecializedBeanCalledOnSpecializingBean()fisheye|svn
h)

Specialization applies only to simple beans, as defined in Section 3.2.7, "Specializing a simple bean", session beans, as defined in Section 3.3.7, "Specializing a session bean" and producer methods, as defined in Section 3.4.5, "Specializing a producer method".

Section 4.3.2 - Direct and indirect specialization

a)

The @javax.inject.Specializes annotation or XML element is used to indicate that one bean directly specializes another bean

b)

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

c)

Any non-static producer methods (see Section 3.4, "Producer methods") of any bean are invoked upon an instance of the most specialized enabled bean that specializes the bean, as defined by Section 6.7, "Lifecycle of producer methods".

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testSpecializedBeanAlwaysUsed()fisheye|svn
d)

Any non-static producer fields (see Section 3.5, "Producer fields") of any bean are invoked upon an instance of the most specialized enabled bean that specializes the bean, as defined by Section 6.8, "Lifecycle of producer fields".

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testSpecializedBeanAlwaysUsed()fisheye|svn
e)

Any non-static disposal methods (see Section 3.4.6, "Disposal methods") of any bean are invoked upon an instance of the most specialized enabled bean that specializes the bean.

Coverage

No tests exist for this assertion

f)

Any non-static observer methods (see Section 7.5, "Observer methods") of any bean are invoked upon an instance of the most specialized enabled bean that specializes the bean, as defined by Section 7.4, "Observer notification".

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverCalledOnMostSpecializedInstance()fisheye|svn

Section 4.3.3 - Inconsistent specialization

a)

If, in a particular deployment, either some enabled bean X specializes another enabled bean Y and X does not have a higher precedence than Y, or more than one enabled bean directly specializes the same bean we say that inconsistent specialization exists, and an InconsistentSpecializationException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.samePrecedence
SamePrecedenceTest.testSpecializingBeanDoesNotHaveHigherPrecedenceThanSpecializedBean()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.twoBeansSpecializeTheSameBean
TwoBeansSpecializeTheSameBeanTest.testTwoBeansSpecializeTheSameBean()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.twoBeansSpecializeTheSameBean
TwoBeansSpecializeTheSameBeanTest.testTwoBeansSpecializeTheSameBean()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.two
TwoSpecializingBeansForOneSpecializedTest.testTwoBeansSpecializeTheSameBean()fisheye|svn
org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.precedence
SpecializingBeanWithLowerPrecedenceTest.testSpecializingBeanDoesNotHaveHigherPrecedenceThanSpecializedBean()fisheye|svn

Section 4.4 - Realization

a)

Any bean that extends a generic class may directly extend the generic class, in the case of a bean declared using annotations and then explicitly declare that it realizes the generic class

b)

Any bean that extends a generic class may declare that the generic class is the bean class, in the case of a bean declared using XML and then explicitly declare that it realizes the generic class.

Section 4.4.1 - Using realization

a)

A bean declared using annotations may declare that it realizes a generic class by annotating the bean class with the @javax.inject.Realizes annotation

b)

A bean declared using XML may declare that it realizes a generic class using the element.

ca)

If a generic class Y declares a non-static producer method with a certain combination of scope, stereotypes, bindings and interceptor bindings, then every bean X that realizes Y also has a producer method with the same scope, stereotypes and interceptor bindings. The bindings for this inherited producer method consist of all bindings declared by the producer method of Y, excluding all bindings of Y, together with the bindings declared explicitly by X. The deployment type of the inherited producer method is the deployment type of X

Coverage

org.jboss.jsr299.tck.tests.inheritance.realization
RealizationTest.testRealizedBeanWithProducerMethodHasSameScope()fisheye|svn
RealizationTest.testRealizedBeanWithProducerMethodHasDeploymentTypeOfRealizingClass()fisheye|svn
RealizationTest.testRealizedBeanWithProducerMethodHasSameBindings()fisheye|svn
RealizationTest.testRealizedBeanWithProducerMethodHasBindingsOfMethodAndRealizingType()fisheye|svn
RealizationTest.testRealizedBeanWithProducerMethodHasSameStereotypes()fisheye|svn
RealizationTest.testRealizedBeanWithProducerMethodHasSameInterceptorBindings()fisheye|svn
cb)

If a generic class Y declares a non-static producer field with a certain combination of scope, stereotypes, bindings and interceptor bindings, then every bean X that realizes Y also has a producer field with the same scope, stereotypes and interceptor bindings. The bindings for this inherited producer field consist of all bindings declared by the producer field of Y, excluding all bindings of Y, together with the bindings declared explicitly by X. The deployment type of the inherited producer field is the deployment type of X

Coverage

org.jboss.jsr299.tck.tests.inheritance.realization
RealizationTest.testRealizedBeanWithProducerFieldHasSameScope()fisheye|svn
RealizationTest.testRealizedBeanWithProducerFieldHasDeploymentTypeOfRealizingClass()fisheye|svn
RealizationTest.testRealizedBeanWithProducerFieldHasSameBindings()fisheye|svn
RealizationTest.testRealizedBeanWithProducerFieldHasBindingsOfMethodAndRealizingType()fisheye|svn
RealizationTest.testRealizedBeanWithProducerFieldHasSameStereotypes()fisheye|svn
RealizationTest.testRealizedBeanWithProducerFieldHasSameInterceptorBindings()fisheye|svn
d)

If a generic class Y declares a non-static disposal method with a disposed parameter with a certain combination of bindings, then every bean X that realizes Y also has a disposal method. The bindings of the disposed parameter of this inherited disposal method consist of all bindings declared by the disposed parameter of the disposal method of Y, excluding all bindings of Y, together with the bindings declared explicitly by X.

Coverage

org.jboss.jsr299.tck.tests.inheritance.realization
RealizationTest.testDisposalMethodInherited()fisheye|svn
RealizationTest.testRealizedDisposalMethodHasBindingsOfMethodAndRealizingType()fisheye|svn
RealizationTest.testObserverMethodInheritedAndHasSameBindings()fisheye|svn
e)

If a generic class Y declares a non-static observer method with an event parameter with a certain combination of event bindings, then every bean X that realizes Y also has an observer method. The event bindings of the event parameter of this inherited observer method consist of all event bindings declared by the event parameter of the observer method of Y.

Coverage

No tests exist for this assertion

f)

Realization applies only to simple beans and session beans

Section 5 - Lookup, dependency injection and EL resolution

a)

The container is required to ensure that any injected reference to a contextual instance of a bean may be cast to any bean type of the bean.

Coverage

No tests exist for this assertion

b)

The container is required to support circularities in the bean dependency graph

Coverage

No tests exist for this assertion

Section 5.1 - Unsatisfied and ambiguous dependencies

a)

The container must validate all injection points of all enabled beans at deployment time to ensure that there are no unsatisfied or ambiguous dependencies. If an unsatisfied or ambiguous dependency exists, an UnsatisfiedDependencyException or AmbiguousDependencyException is thrown by the container at deployment time, as defined in Section 5.7.1, "Resolving dependencies".

Coverage

No tests exist for this assertion

Section 5.2 - Primitive types and null values

a)

If an injection point of primitive type resolves to a bean that may be null, such as a producer method with a nonprimitive return type or a producer field with a non-primitive type, a NullableDependencyException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.lookup.injection.nullableBean
NullableBeanTest.testPrimitiveInjectionPointResolvesToNullableWebBean()fisheye|svn
aa)

If necessary, the container performs boxing or unboxing when it injects a value to a field or parameter of primitive or wrapper type.

Coverage

org.jboss.jsr299.tck.tests.lookup.injection
InjectionTest.testInjectionPerformsBoxingIfNecessary()fisheye|svn
ab)

If necessary, the container performs boxing or unboxing when it injects a value to a field or parameter of primitive or wrapper type.

Coverage

No tests exist for this assertion

b)

The method Bean.isNullable() may be used to detect if a bean has null values

Coverage

org.jboss.jsr299.tck.tests.definition.bean
BeanDefinitionTest.testIsNullable()fisheye|svn

Section 5.3 - Injected 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.jsr299.tck.tests.lookup.injection
InjectionTest.testInvokeNormalInjectedWebBeanWhenContextNotActive()fisheye|svn
b)

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

Coverage

org.jboss.jsr299.tck.tests.lookup.injection
InjectionTest.testInvokeDependentScopeWhenContextNotActive()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.initializer
InitializerMethodTest.testMultipleInitializerMethodsAreCalled()fisheye|svn

Section 5.4 - Client proxies

a)

Client proxies are never required for a bean whose scope is a pseudo-scope such as @Dependent

Coverage

org.jboss.jsr299.tck.tests.lookup.clientProxy
ClientProxyTest.testClientProxyNotUsedForPseudoScope()fisheye|svn
b)

Client proxies are used for normal scoped beans

Coverage

org.jboss.jsr299.tck.tests.lookup.clientProxy
ClientProxyTest.testClientProxyUsedForNormalScope()fisheye|svn
c)

All client proxies must be serializable

Coverage

org.jboss.jsr299.tck.tests.lookup.clientProxy
ClientProxyTest.testSimpleWebBeanClientProxyIsSerializable()fisheye|svn
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

No tests exist for this assertion

Section 5.4.1 - Unproxyable bean types

a)

Classes without a non-private constructor with no parameters 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, an UnproxyableDependencyException is thrown by the container at deployment time.

Coverage

No tests exist for this assertion

ba)

Classes which are declared final or have final methods 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, an UnproxyableDependencyException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable
UnproxyableTest.testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedWebBean()fisheye|svn
bb)

Classes which are declared final or have final methods 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, an UnproxyableDependencyException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

c)

Primitive 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, an UnproxyableDependencyException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

d)

Array 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, an UnproxyableDependencyException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

Section 5.4.2 - Client proxy invocation

a)

Every time a method of the bean is invoked upon a client proxy, the client proxy must obtain the context object by calling Manager.getContext(), passing 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, and invoke the method upon the bean

Coverage

org.jboss.jsr299.tck.tests.lookup.clientProxy
ClientProxyTest.testClientProxyInvocation()fisheye|svn
b)

The behavior of all methods declared by java.lang.Object, except for toString(), is undefined for a client proxy

Coverage

No tests exist for this assertion

Section 5.5 - The default binding at injection points

a)

If an injection point declares no binding, the default binding @Current is assumed

Coverage

No tests exist for this assertion

Section 5.6 - Injection point metadata

a)

The javax.inject.manager.InjectionPoint.getBean() method returns the Bean object representing the bean that defines the injection point

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testGetBean()fisheye|svn
ba)

The javax.inject.manager.InjectionPoint.getType() method returns the declared type of the injection point.

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testGetType()fisheye|svn
bb)

An injection point declared in XML has it's type determined according to Section 9.10, "Specifying bean types and bindings"

Coverage

No tests exist for this assertion

bc)

The javax.inject.manager.InjectionPoint.getBindings() method returns the declared bindings of the injection point.

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testGetBindingTypes()fisheye|svn
bd)

An injection point declared in XML has it's bindings determined according to Section 9.10, "Specifying bean types and bindings"

Coverage

No tests exist for this assertion

ca)

The javax.inject.manager.InjectionPoint.getMember() method returns the Field object in the case of field injection

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testGetMemberField()fisheye|svn
cb)

The javax.inject.manager.InjectionPoint.getMember() method returns the Method object in the case of method parameter injection

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testGetMemberMethod()fisheye|svn
cc)

The javax.inject.manager.InjectionPoint.getMember() method returns the Constructor object in the case of constructor parameter injection

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testGetMemberConstructor()fisheye|svn
da)

The javax.inject.manager.InjectionPoint.getAnnotation() method returns annotations of the field in the case of field injection

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testGetAnnotation()fisheye|svn
db)

The javax.inject.manager.InjectionPoint.getAnnotation() method returns annotations of the parameter in the case of method parameter

Coverage

No tests exist for this assertion

dc)

The javax.inject.manager.InjectionPoint.getAnnotation() method returns annotations annotations of the parameter in the case of constructor parameter injection.

Coverage

No tests exist for this assertion

dd)

The javax.inject.manager.InjectionPoint.getAnnotations() method returns annotations of the field in the case of field injection

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testGetAnnotations()fisheye|svn
de)

The javax.inject.manager.InjectionPoint.getAnnotations() method returns annotations of the parameter in the case of method parameter

Coverage

No tests exist for this assertion

df)

The javax.inject.manager.InjectionPoint.getAnnotations() method returns annotations annotations of the parameter in the case of constructor parameter injection.

Coverage

No tests exist for this assertion

dg)

getAnnotation() returns a null value if no annotation of the given type exists at the field injection point

Coverage

No tests exist for this assertion

dh)

getAnnotation() returns a null value if no annotation of the given type exists at the method parameter injection point

Coverage

No tests exist for this assertion

di)

getAnnotation() returns a null value if no annotation of the given type exists at the constructor injection point

Coverage

No tests exist for this assertion

Section 5.6.1 - Injecting InjectionPoint

a)

Whenever a @Dependent scoped object is instantiated by the container for injection into a second bean, any injection point of type InjectionPoint and binding @Current receives an instance of InjectionPoint that represents the injection point of the second bean

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testCurrentBinding()fisheye|svn
b)

When a @Dependent scoped object is instantiated by the container to receive a producer method, any injection point of type InjectionPoint and binding @Current receives a null value

Coverage

No tests exist for this assertion

c)

When a @Dependent scoped object is instantiated by the container to receive a producer field, any injection point of type InjectionPoint and binding @Current receives a null value

Coverage

No tests exist for this assertion

d)

When a @Dependent scoped object is instantiated by the container to receive an observer , any injection point of type InjectionPoint and binding @Current receives a null value

Coverage

No tests exist for this assertion

e)

When a @Dependent scoped object is instantiated by the container to receive a disposal method invocation, any injection point of type InjectionPoint and binding @Current receives a null value

Coverage

No tests exist for this assertion

f)

When a @Dependent scoped object is instantiated by the container during EL expression evaluation, any injection point of type InjectionPoint and binding @Current receives a null value

Coverage

No tests exist for this assertion

g)

When a @Dependent scoped object is instantiated by the container as a result of a direct call to the Manager API, any injection point of type InjectionPoint and binding @Current receives a null value

Coverage

No tests exist for this assertion

h)

If a bean that declares any scope other than @Dependent has an injection point of type InjectionPoint and binding @Current, a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

i)

If an object that is not a bean has an injection point of type InjectionPoint and binding @Current, a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

za)

The container must provide a bean with deployment type @Standard.

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testStandardDeployment()fisheye|svn
zb)

The container must provide a bean with scope @Dependent.

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testDependentScope()fisheye|svn
zc)

The container must provide a bean with bean type InjectionPoint.

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testApiTypeInjectionPoint()fisheye|svn
zd)

The container must provide a bean with binding @Current.

Coverage

org.jboss.jsr299.tck.tests.lookup.injectionpoint
InjectionPointTest.testCurrentBinding()fisheye|svn

Section 5.7.1 - Resolving dependencies

a)

Implementations of Bean maintain a reference to an instance of Manager

Coverage

No tests exist for this assertion

b)

When the Bean implementation performs dependency injection, it must obtain the contextual instances to inject by calling Manager.getInstanceToInject(), 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

c)

Manager.getInstanceToInject() returns a contextual instance or client proxy to be injected to the given injection point

Coverage

No tests exist for this assertion

d)

The Manager.getInstanceToInject() method must Identify the bean by calling Manager.resolveByType(), passing the type and bindings of the injection point

Coverage

No tests exist for this assertion

e)

The Manager.getInstanceToInject() method must throw an UnsatisfiedDependencyException if resolveByType() did not return a bean

Coverage

No tests exist for this assertion

f)

The Manager.getInstanceToInject() method must throw an AmbiguousDependencyException if resolveByType() returned more than one bean

Coverage

No tests exist for this assertion

g)

The Manager.getInstanceToInject() method must throw an UnproxyableDependencyExceptionif the bean has a normal scope and the type cannot be proxied by the container, as defined in Section 5.4.1, "Unproxyable bean types"

Coverage

No tests exist for this assertion

h)

The Manager.getInstanceToInject() method must obtain an instance of the bean (or a client proxy) by calling Manager.getInstance(), passing the Bean object representing the bean, and return it. Alternatively, return an incompletely initialized instance of the bean that was registered by calling CreationalContext.push(), as defined in Section 6.1, "The Contextual interface"

Coverage

No tests exist for this assertion

Section 5.7.2 - Obtaining contextual instances

a)

Any bean may obtain an instance of Manager by injecting it

Coverage

org.jboss.jsr299.tck.tests.lookup.manager
ManagerTest.testInjectingManager()fisheye|svn
aa)

The container provides a built-in bean with bean type Manager

Coverage

No tests exist for this assertion

ab)

The container provides a built-in bean with scope @Dependent

Coverage

No tests exist for this assertion

ac)

The container provides a built-in bean with deployment type @Standard

Coverage

No tests exist for this assertion

ad)

The container provides a built-in bean with binding @Current.

Coverage

No tests exist for this assertion

c)

A contextual instance of a bean may be obtained by calling Manager.getInstance(), passing the Bean object representing the bean

Coverage

No tests exist for this assertion

d)

Manager.getInstance() returns a contextual instance or client proxy for the given bean

Coverage

No tests exist for this assertion

e)

If the given Bean instance represents a bean with a normal scope, as defined in Section 8.2, "Normal scopes and pseudo-scopes", Manager.getInstance() must return a client proxy

Coverage

No tests exist for this assertion

f)

If the Bean instance represents a bean with a pseudo-scope, as defined in Section 8.2, "Normal scopes and pseudo-scopes", Manager.getInstance() must obtain the context object by calling Manager.getContext(), passing 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

No tests exist for this assertion

g)

The Manager.getInstanceByType() methods obtain a contextual instance of a bean

h)

If no bindings are passed to Manager.getInstanceByType(), the default binding @Current is assumed

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.instantiation
InstantiationByTypeTest.testCurrentBindingTypeAssumed()fisheye|svn
ia)

If a parameterized type with a type parameter or wildcard is passed to resolveByType(), an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.instantiation
InstantiationByTypeTest.testParameterizedTypeWithTypeParameter()fisheye|svn
ib)

If a parameterized type with a type parameter or wildcard is passed to resolveByType(), an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.instantiation
InstantiationByTypeTest.testParameterizedTypeWithWildcardParameter()fisheye|svn
j)

If two instances of the same binding type are passed to getInstanceByType(), a DuplicateBindingTypeException is thrown

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.instantiation
InstantiationByTypeTest.testDuplicateBindingTypesUsed()fisheye|svn
k)

If an instance of an annotation that is not a binding type is passed to getInstanceByType(), an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.instantiation
InstantiationByTypeTest.testNonBindingTypeUsed()fisheye|svn
l)

The getInstanceByType() method must identify the bean by calling Manager.resolveByType(), passing the given type and bindings

Coverage

No tests exist for this assertion

m)

The getInstanceByType() method must throw an UnsatisfiedDependencyException if resolveByType() did not return a bean

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.instantiation
InstantiationByTypeTest.testUnsatisfiedDependencies()fisheye|svn
n)

The getInstanceByType() method must throw an AmbiguousDependencyException if resolveByType() returned more than one bean

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.instantiation
InstantiationByTypeTest.testAmbiguousDependencies()fisheye|svn
o)

The getInstanceByType() method must obtain an instance of the bean (or a client proxy) by calling Manager.getInstance(), passing the Bean object representing the bean, and return it

Coverage

No tests exist for this assertion

Section 5.8 - Dynamic lookup

a)

An instance of the javax.inject.Instance interface may be injected via use of the @javax.inject.Obtains binding

Coverage

No tests exist for this assertion

b)

Additional bindings may be specified at the injection point

Coverage

No tests exist for this assertion

c)

The Instance interface provides a method for obtaining instances of beans of a specific type

Coverage

No tests exist for this assertion

d)

If two instances of the same binding type are passed to Instance.get(), a DuplicateBindingTypeException is thrown

Coverage

No tests exist for this assertion

e)

If an instance of an annotation that is not a binding type is passed to Instance.get(), an IllegalArgumentException is thrown

Coverage

No tests exist for this assertion

f)

The @Obtains annotation or element may be applied to any injection point of type Instance where an actual type parameter is specified

Coverage

No tests exist for this assertion

g)

If the type of the injection point is not of type Instance a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

h)

If no actual type parameter is specified a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

i)

If the type parameter contains a type variable a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

j)

If the type parameter contains a wildcard a DefinitionException is thrown by the container at deployment time

Coverage

No tests exist for this assertion

k)

Whenever the @Obtains annotation appears at an injection point, an implicit bean exists with exactly the bean type and bindings that appear at the injection point

Coverage

No tests exist for this assertion

l)

Whenever the @Obtains annotation appears at an injection point, an implicit bean exists with deployment type @Standard

Coverage

No tests exist for this assertion

m)

Whenever the @Obtains annotation appears at an injection point, an implicit bean exists with @Dependent scope

Coverage

No tests exist for this assertion

n)

Whenever the @Obtains annotation appears at an injection point, an implicit bean exists with no bean name

Coverage

No tests exist for this assertion

o)

Whenever the @Obtains annotation appears at an injection point, an implicit bean exists with an implementation provided automatically by the container

Coverage

No tests exist for this assertion

p)

The get() method of the provided implementation of Instance must call Manager.getInstanceByType(), passing all bindings declared at the injection point, except @Obtains, and all bindings passed to Instance.get()

Coverage

No tests exist for this assertion

q)

The application may obtain a contextual instance by calling the Instance.get() method

Coverage

No tests exist for this assertion

r)

When the application calls Instance.get() to obtain a contextual instance dynamically, it may need to pass instances of binding annotation types

Coverage

No tests exist for this assertion

Section 5.9 - Typesafe resolution algorithm

a)

The resolveByType() method of the Manager interface returns the result of the typesafe resolution

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testResolveByType()fisheye|svn
b)

If no bindings are passed to Manager.resolveByType(), the default binding @Current is assumed

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testDefaultBindingTypeAssumed()fisheye|svn
ca)

If a parameterized type with a type parameter or wildcard is passed to Manager.resolveByType(), an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testParameterizedTypeWithTypeParameter()fisheye|svn
cb)

If a parameterized type with a type parameter or wildcard is passed to Manager.resolveByType(), an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testParameterizedTypeWithWildcardParameter()fisheye|svn
d)

If two instances of the same binding type are passed to Manager.resolveByType(), a DuplicateBindingTypeException is thrown

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testDuplicateBindingTypesUsed()fisheye|svn
e)

If an instance of an annotation that is not a binding type is passed to Manager.resolveByType(), an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testNonBindingTypeUsed()fisheye|svn
fa)

When the container is resolving a bean by type, it identifies the set of matching enabled beans which have the given bean type.

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testResolveByType()fisheye|svn
fb)

When the container is resolving a bean by type, it identifies the set of matching enabled beans which have the given bean type. For this purpose, primitive types are considered to be identical to their corresponding wrapper types in java.lang, array types are considered identical only if their element types are identical and parameterized types are considered identical only if both the type and all type parameters are identical

Coverage

No tests exist for this assertion

fc)

When the container is resolving a bean by type, it identifies the set of matching enabled beans which have the given bean type. For this purpose, primitive types are considered to be identical to their corresponding wrapper types in java.lang, array types are considered identical only if their element types are identical and parameterized types are considered identical only if both the type and all type parameters are identical

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testResolveByTypeWithArray()fisheye|svn
fd)

When the container is resolving a bean by type, it identifies the set of matching enabled beans which have the given bean type. For this purpose, primitive types are considered to be identical to their corresponding wrapper types in java.lang, array types are considered identical only if their element types are identical and parameterized types are considered identical only if both the type and all type parameters are identical

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testResolveByTypeWithTypeParameter()fisheye|svn
ga)

When the container is resolving a bean by type, it considers the given bindings. If no bindings were passed to resolveByType(), the container assumes the binding @Current.

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testDefaultBindingTypeAssumed()fisheye|svn
gb)

When the container is resolving a bean by type, it considers the given bindings. If no bindings were passed to resolveByType(), the container assumes the binding @Current. The container narrows the set of matching beans to just those where for each given binding, the bean declares a binding with (a) the same type and (b) the same annotation member value for each member which is not annotated @NonBinding (see Section 5.9.1, "Binding annotations with members")

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testAllBindingTypesSpecifiedForResolutionMustAppearOnWebBean()fisheye|svn
gc)

When the container is resolving a bean by type, it considers the given bindings. If no bindings were passed to resolveByType(), the container assumes the binding @Current. The container narrows the set of matching beans to just those where for each given binding, the bean declares a binding with (a) the same type and (b) the same annotation member value for each member which is not annotated @NonBinding (see Section 5.9.1, "Binding annotations with members")

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testResolveByTypeWithNonBindingMembers()fisheye|svn
gd)

When the container is resolving a bean by type, it considers the given bindings. If no bindings were passed to resolveByType(), the container assumes the binding @Current. The container narrows the set of matching beans to just those where for each given binding, the bean declares a binding with (a) the same type and (b) the same annotation member value for each member which is not annotated @NonBinding (see Section 5.9.1, "Binding annotations with members")

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testResolveByTypeWithNonBindingMembers()fisheye|svn
ha)

When the container is resolving a bean by type, it examines the deployment types of the matching beans, as defined in Section 2.5.7, "Deployment type precedence", and returns the set of beans with the highest precedence deployment type that occurs in the set.

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testOnlyHighestEnabledPrecedenceWebBeansResolved()fisheye|svn
hb)

When the container is resolving a bean by type, it examines the deployment types of the matching beans, as defined in Section 2.5.7, "Deployment type precedence", and returns the set of beans with the highest precedence deployment type that occurs in the set. If there are no matching beans, an empty set is returned

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testNoWebBeansFound()fisheye|svn

Section 5.9.1 - Binding annotations with members

a)

Binding types with members are supported

b)

An annotation member may be excluded from consideration using the @NonBinding annotation

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testResolveByTypeWithNonBindingMembers()fisheye|svn
ca)

Array-valued or annotation-valued members of a binding type must be annotated @NonBinding. If an array-valued or annotation-valued member of a binding type is not annotated @NonBinding, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testArrayValuedAnnotationMemberWithoutNonBinding()fisheye|svn
cb)

Array-valued or annotation-valued members of a binding type must be annotated @NonBinding. If an array-valued or annotation-valued member of a binding type is not annotated @NonBinding, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testAnnotationValuedAnnotationMemberWithoutNonBinding()fisheye|svn

Section 5.9.2 - Multiple bindings

a)

A bean class may declare multiple bindings

Coverage

org.jboss.jsr299.tck.tests.lookup.typesafe.resolution
ResolutionByTypeTest.testAllBindingTypesSpecifiedForResolutionMustAppearOnWebBean()fisheye|svn
b)

A producer method may declare multiple bindings

Coverage

No tests exist for this assertion

c)

A producer field may declare multiple bindings

Coverage

No tests exist for this assertion

d)

A bean must declare all of the bindings that are specified at the injection point to be considered a candidate for injection

Coverage

No tests exist for this assertion

Section 5.10 - EL name resolution

b)

When this resolver is called with a null base object, it calls the method Manager.getInstanceByName() to obtain an instance of the bean named in the EL expression

Coverage

No tests exist for this assertion

c)

The Manager.getInstanceByName() method must identify the bean by calling Manager.resolveByName(), passing the name

Coverage

org.jboss.jsr299.tck.tests.lookup.byname
InstantiationByNameTest.testGetInstanceByName()fisheye|svn
d)

The Manager.getInstanceByName() method must return a null value, if Manager.resolveByName() returned an empty set

Coverage

org.jboss.jsr299.tck.tests.lookup.byname
InstantiationByNameTest.testGetInstanceByName()fisheye|svn
e)

The Manager.getInstanceByName() method must throw an AmbiguousDependencyException if Manager.resolveByName() returned more than one bean

Coverage

org.jboss.jsr299.tck.tests.lookup.byname.duplicateNameResolution
DuplicateNameResolutionTest.testDuplicateNamedBeans()fisheye|svn
g)

Even if a name appears more than once in the same expression, the container may not call getInstanceByName() multiple times with that name. This restriction ensures that there is a unique instance of each bean with scope @Dependent in any EL evaluation

Coverage

No tests exist for this assertion

Section 5.11 - Name resolution algorithm

a)

The resolveByName() method of the Manager interface performs name resolution

Coverage

No tests exist for this assertion

b)

When resolving a bean by name, the container must identify the set of matching enabled beans which have the given name

Coverage

No tests exist for this assertion

c)

After the container identifies the set of matching beans, it examines the deployment types of the matching beans, as defined in Section 2.5.7, "Deployment type precedence", and returns the set of beans with the highest precedence deployment type that occurs in the set

Coverage

org.jboss.jsr299.tck.tests.lookup.byname
ResolutionByNameTest.testOnlyHighestPrecedenceResolved()fisheye|svn
d)

If there are no matching beans, an empty set is returned

Coverage

No tests exist for this assertion

Section 5.12 - Injection into non-contextual objects

a)

The container is required to perform dependency injection upon certain non-contextual objects

Section 5.12.1 - Non-contextual instances of session beans

a)

The container is required to perform dependency injection for session bean instances obtained directly from JNDI

Coverage

org.jboss.jsr299.tck.tests.lookup.nonContextual
NonContextualInjectionTest.testInjectionIntoSessionBeanLookedUpInJndi()fisheye|svn
NonContextualInjectionTest.testInjectionIntoSessionBeanInjectedViaEjb()fisheye|svn
NonContextualInjectionTest.testInjectionIntoSessionBeanInjectedViaResource()fisheye|svn
b)

The container is required to perform dependency injection for session bean instances injected using @EJB

Coverage

No tests exist for this assertion

c)

The container is required to perform dependency injection for session bean instances injected using @Resource

Coverage

No tests exist for this assertion

d)

The container is required to perform dependency injection for session bean instances created by the container to receive remote method calls

Coverage

No tests exist for this assertion

e)

The container is required to perform dependency injection for session bean instances created by the container to receive timeouts

Coverage

No tests exist for this assertion

f)

The container is required to create interceptor stacks for session bean instances obtained directly from JNDI

Coverage

No tests exist for this assertion

g)

The container is required to create interceptor stacks for session bean instances injected using @EJB

Coverage

No tests exist for this assertion

h)

The container is required to create interceptor stacks for session bean instances injected using @Resource

Coverage

No tests exist for this assertion

i)

The container is required to create interceptor stacks for session bean instances created by the container to receive remote method calls

Coverage

No tests exist for this assertion

j)

The container is required to create interceptor stacks for session bean instances created by the container to receive timeouts

Coverage

No tests exist for this assertion

k)

The container is required to create decorator stacks for session bean instances obtained directly from JNDI

Coverage

No tests exist for this assertion

l)

The container is required to create decorator stacks for session bean instances injected using @EJB

Coverage

No tests exist for this assertion

m)

The container is required to create decorator stacks for session bean instances injected using @Resource

Coverage

No tests exist for this assertion

n)

The container is required to create decorator stacks for session bean instances created by the container to receive remote method calls

Coverage

No tests exist for this assertion

o)

The container is required to create decorator stacks for session bean instances created by the container to receive timeouts

Coverage

No tests exist for this assertion

p)

For the purposes of dependency injection, the container must treat non-contextual instances of session beans as instances of the most specialized bean that specializes the bean with binding @New and deployment type @Standard defined in Section 3.3.6, "Session beans with the @New binding"

Coverage

No tests exist for this assertion

q)

For the purposes of interceptor stack creation, the container must treat non-contextual instances of session beans as instances of the most specialized bean that specializes the bean with binding @New and deployment type @Standard defined in Section 3.3.6, "Session beans with the @New binding"

Coverage

No tests exist for this assertion

r)

For the purposes of decorator stack creation, the container must treat non-contextual instances of session beans as instances of the most specialized bean that specializes the bean with binding @New and deployment type @Standard defined in Section 3.3.6, "Session beans with the @New binding"

Coverage

No tests exist for this assertion

Section 5.12.2 - Message-driven beans

b)

The container creates interceptor stacks for message-driven bean instances according to the bean class annotations

Coverage

No tests exist for this assertion

c)

The container creates decorator stacks for message-driven bean instances according to the bean class annotations

Coverage

No tests exist for this assertion

Section 5.12.3 - Servlets

a)

The container performs dependency injection for servlets according to the servlet class annotations

Coverage

org.jboss.jsr299.tck.tests.lookup.nonContextual.servlet
InjectionIntoServletTest.testInjectionIntoServlet()fisheye|svn

Section 6 - Bean lifecycle

a)

To create a contextual instance of a session bean, the container creates an EJB local object reference

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testProducerMethodBeanCreate()fisheye|svn
b)

To create a contextual instance of a producer method bean, the container calls the producer method

Coverage

No tests exist for this assertion

c)

To create a contextual instance of a producer field bean, the container retrieves the current value of the field

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testProducerFieldBeanCreate()fisheye|svn
d)

To create a contextual instance of a simple bean, the container calls the bean constructor

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testCreateReturnsInstanceOfBean()fisheye|svn
e)

To destroy a contextual instance of a stateful session bean, the container removes the EJB instance

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle
EnterpriseBeanLifecycleTest.testDestroyRemovesSFSB()fisheye|svn
f)

To destroy a contextual instance of a producer method bean, the container calls the disposal method, if any

Coverage

No tests exist for this assertion

g)

When the container injects a dependency and there is no existing instance of the bean cached by the context object for the bean scope, the context object automatically creates a new contextual instance of the bean

Coverage

No tests exist for this assertion

h)

When the container resolves an EL name and there is no existing instance of the bean cached by the context object for the bean scope, the context object automatically creates a new contextual instance of the bean

Coverage

No tests exist for this assertion

i)

When a context is destroyed, the context object automatically destroys any instances associated with that context

Coverage

No tests exist for this assertion

j)

To create and destroy contextual instances, the context object calls operations defined by the interface Contextual

Coverage

No tests exist for this assertion

Section 6.1 - The Contextual interface

a)

The interface javax.context.CreationalContext provides an operation that allows the create() method to register an incompletely initialized contextual instance with the container. A contextual instance is considered incompletely initialized until the create() method returns the instance

b)

If Contextual.create() calls CreationalContext.push(), it must also return the instance passed to push()

Coverage

No tests exist for this assertion

c)

The implementation of Contextual is not required to call CreationalContext.push()

Section 6.2 - Creation

a)

The Contextual.create() method obtains an instance of the bean

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testCreateReturnsInstanceOfBean()fisheye|svn
d)

The Contextual.create() method injects any dependencies

Coverage

No tests exist for this assertion

e)

The Contextual.create() method sets any initial field values defined in XML

Coverage

No tests exist for this assertion

f)

The Contextual.create() method calls the @PostConstruct method, if necessary

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testPostConstructPreDestroy()fisheye|svn
g)

If any exception occurs while creating an instance, the exception is rethrown by the create() method

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testUncheckedExceptionThrownFromCreateNotWrapped()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testUncheckedExceptionThrownFromCreateNotWrapped()fisheye|svn
h)

If a checked exception occurs while creating an instance, it is wrapped and rethrown as an (unchecked) CreationException

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testCreationExceptionWrapsCheckedExceptionThrownFromCreate()fisheye|svn
org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testCreationExceptionWrapsCheckedExceptionThrownFromCreate()fisheye|svn

Section 6.3 - Destruction

a)

The Contextual.destroy() method calls the disposal method, if necessary

Coverage

No tests exist for this assertion

b)

The Contextual.destroy() method calls the @PreDestroy method, if necessary

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testPostConstructPreDestroy()fisheye|svn
c)

The Contextual.destroy() method destroys all dependent objects of the instance, as defined in Section 8.3.2, "Dependent object destruction"

Coverage

No tests exist for this assertion

d)

If any exception occurs while destroying an instance, the exception is caught by the destroy() method

Coverage

No tests exist for this assertion

e)

If the application invokes a contextual instance after it has been destroyed, the behavior is undefined

Section 6.4 - Lifecycle of simple beans

a)

When the create() method of the Bean object that represents a simple bean is called, the container first calls the bean constructor to obtain an instance of the bean. For each constructor parameter, the container passes the object returned by Manager.getInstanceToInject(). The container is permitted to return an instance of a container-generated subclass of the bean class, allowing interceptor and decorator bindings

Coverage

No tests exist for this assertion

e)

When the create() method of the Bean object that represents a simple bean is called, after the @EJB, @PersistenceContext and @Resource attributes are initialized the container initializes the values of all injected fields. For each injected field, the container sets the value to the object returned by Manager.getInstanceToInject().

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testCreateInjectsFieldsDeclaredInJava()fisheye|svn
f)

When the create() method of the Bean object that represents a simple bean is called, after injected fields are initialized the container initializes the values of any fields with initial values specified in XML, as defined in Section 9.5.5, "Field initial value declarations".

Coverage

No tests exist for this assertion

g)

When the create() method of the Bean object that represents a simple bean is called, after the values of fields with initial values specified in XML are initialized the container calls all initializer methods. For each initializer method parameter, the container passes the object returned by Manager.getInstanceToInject()

Coverage

No tests exist for this assertion

h)

When the create() method of the Bean object that represents a simple bean is called, after all initializer methods are called the container builds the interceptor stacks for the instance as defined in Section A.3.10 "Interceptor stack creation"

Coverage

No tests exist for this assertion

i)

When the create() method of the Bean object that represents a simple bean is called, after all initializer methods are called the container builds the decorator stacks for the instance as defined in Section A.5.8 "Decorator stack creation"

Coverage

No tests exist for this assertion

j)

When the create() method of the Bean object that represents a simple bean is called, after the interceptor and decorator stacks are built the container calls the @PostConstruct method, if any

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testPostConstructPreDestroy()fisheye|svn
k)

When the destroy() method of a Bean object is called, the container calls the @PreDestroy method, if any

Coverage

org.jboss.jsr299.tck.tests.implementation.simple.lifecycle
SimpleBeanLifecycleTest.testPostConstructPreDestroy()fisheye|svn
l)

When the destroy() method of a Bean object is called, after the container calls the @PreDestroy method, it finally destroys dependent objects

Coverage

No tests exist for this assertion

Section 6.5 - Lifecycle of stateful session beans

a)

When the create() method of a Bean object that represents a stateful session bean that is called, the container creates and returns a session bean proxy, as defined in Section 3.3.9, "Session bean proxies".

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle
EnterpriseBeanLifecycleTest.testCreateSFSB()fisheye|svn
b)

When the destroy() method of a Bean object is called, the container removes the stateful session bean. The @PreDestroy callback must be invoked by the container

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle
EnterpriseBeanLifecycleTest.testDestroyRemovesSFSB()fisheye|svn
c)

If the underlying EJB was already removed by direct invocation of a remove method by the application, the container ignores the instance

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle
EnterpriseBeanLifecycleTest.testRemovedEjbIgnored()fisheye|svn

Section 6.6 - Lifecycle of stateless session and singleton beans

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 session bean proxy, as defined in Section 3.3.9, "Session bean proxies".

Coverage

org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle
EnterpriseBeanLifecycleTest.testCreateSLSB()fisheye|svn
b)

When the destroy() method of a Bean object is called, the container simply discards the proxy and all underlying EJB local object references

Section 6.7 - Lifecycle of producer methods

a)

Any Java object may be returned by a producer method. It is not required that the returned object be an instance of another bean

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testStaticMethod()fisheye|svn
b)

If an object returned by a producer method is not an instance of another bean, the container will not provide injection of other beans

c)

If an object returned by a producer method is not an instance of another bean, the container will not provide lifecycle callbacks

d)

If an object returned by a producer method is not an instance of another bean, the container will not provide method and lifecycle interception

e)

When the create() method of a Bean object that represents a producer method is called, the container must invoke the producer method, passing the object returned by Manager.getInstanceToInject() to each parameter

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testProducerMethodBeanCreate()fisheye|svn
f)

If a producer method is static, the container must invoke the method

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.definition
ProducerMethodDefinitionTest.testStaticMethod()fisheye|svn
g)

If a producer method is not static, the container must obtain the Bean object for the most specialized bean that specializes the bean which declares the producer method

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testSpecializedBeanAlwaysUsed()fisheye|svn
h)

If a producer method is not static, after obtaining the most specialized Bean object the container must obtain an instance of the most specialized bean, by calling Manager.getInstance(), passing the Bean object representing the bean

Coverage

No tests exist for this assertion

i)

If a producer method is not static, after obtaining an instance of the most specialized bean the container must invoke the producer method upon this instance

Coverage

No tests exist for this assertion

j)

The return value of the producer method, after method interception completes, is the new contextual instance to be returned by Bean.create()

Coverage

No tests exist for this assertion

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.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testProducerMethodReturnsNullIsDependent()fisheye|svn
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.jsr299.tck.tests.implementation.producer.method.lifecycle
ProducerMethodLifecycleTest.testProducerMethodReturnsNullIsNotDependent()fisheye|svn
n)

If a disposal method is static, the container must invoke the method

Coverage

No tests exist for this assertion

o)

If a disposal method is non-static, the container must obtain the Bean object for the most specialized bean that specializes the bean which declares the disposal method

Coverage

No tests exist for this assertion

p)

If a disposal method is non-static, after obtaining the Bean object for the most specialized bean, the container must obtain an instance of the most specialized bean, by calling Manager.getInstance(), passing the Bean object representing the bean

Coverage

No tests exist for this assertion

q)

If a disposal method is non-static, after obtaining the instance of the most specialized bean the container must invoke the disposal method upon this instance

Coverage

No tests exist for this assertion

r)

Finally, the container destroys dependent objects

Coverage

No tests exist for this assertion

Section 6.8 - Lifecycle of producer fields

a)

Any Java object may be the value of a producer field

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testProducerFieldBeanCreate()fisheye|svn
b)

It is not required that the returned object of a producer field be an instance of another bean

Coverage

No tests exist for this assertion

c)

If the object returned by a producer field is not an instance of another bean, the container will not provide injection of other beans

d)

If the object returned by a producer field is not an instance of another bean, the container will not provide lifecycle callbacks

e)

If the object returned by a producer field is not an instance of another bean, the container will not provide method interception

f)

If the object returned by a producer field is not an instance of another bean, the container will not provide lifecycle interception

g)

When the create() method of a Bean object that represents a producer field is called, the container must access the producer field to obtain the current value of the field

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testProducerFieldBeanCreate()fisheye|svn
h)

If a producer field is static, the container must access the field value

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testProducerStaticFieldBean()fisheye|svn
i)

If a producer field is non-static, the container must obtain the Bean object for the most specialized bean that specializes the bean which declares the producer field

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testSpecializedBeanAlwaysUsed()fisheye|svn
j)

If a producer field is non-static, after obtaining the Bean object for the most specialized bean the container must obtain an instance of the most specialized bean, by calling Manager.getInstance(), passing the Bean object representing the bean

Coverage

No tests exist for this assertion

k)

If a producer field is non-static, after obtaining an instance of the most specialized bean, the container must access the field value of this instance

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testProducerFieldBeanCreate()fisheye|svn
l)

The value of the producer field is the new contextual instance to be returned by Bean.create()

Coverage

org.jboss.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testProducerFieldBeanCreate()fisheye|svn
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.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testProducerFieldReturnsNullIsDependent()fisheye|svn
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.jsr299.tck.tests.implementation.producer.field.lifecycle
ProducerFieldLifecycleTest.testProducerFieldReturnsNullIsNotDependent()fisheye|svn

Section 6.9 - Lifecycle of resources

a)

An instance of a resource is a proxy object, provided by the container, that implements the declared bean type, delegating the actual implementation of the methods directly to the underlying Java EE resource, entity manager, entity manager factory, EJB remote object or web service referenc

b)

A resource proxy object is a dependent object of the object it is injected into

Coverage

No tests exist for this assertion

c)

Resource proxy objects are serializable

Coverage

No tests exist for this assertion

d)

When the create() method of a Bean object that represents a JMS resource is called, the container creates and returns a proxy object that implements the bean type of the resource

Coverage

No tests exist for this assertion

e)

The methods of this proxy object delegate to the underlying implementation, which is obtained using the metadata provided in the resource declaration

Coverage

No tests exist for this assertion

f)

A Java EE resource is obtained using the JNDI name or mapped name specified by

Coverage

No tests exist for this assertion

g)

A persistence context is obtained using the persistence unit name specified by

Coverage

No tests exist for this assertion

h)

A persistence unit is obtained using the persistence unit name specified by

Coverage

No tests exist for this assertion

i)

A remote EJB is obtained using the JNDI name, mapped name or EJB link specified by

Coverage

No tests exist for this assertion

j)

A web service is obtained using the JNDI name or mapped name specified by

Coverage

No tests exist for this assertion

k)

When the destroy() method is called, the container discards the proxy object

Coverage

No tests exist for this assertion

Section 6.10 - Lifecycle of JMS resources

a)

An instance of a JMS resource is a proxy object, provided by the container, that implements all the bean types defined in Section 3.7, "JMS resources", delegating the actual implementation of these methods directly to the underlying JMS objects

b)

A JMS resource proxy object is a dependent object of the object it is injected into

Coverage

No tests exist for this assertion

c)

JMS resource proxy objects are serializable

Coverage

No tests exist for this assertion

d)

When the create() method of a Bean object that represents a JMS resource is called, the container creates and returns a proxy object that implements all the bean types of the JMS resource

Coverage

No tests exist for this assertion

e)

The methods of this proxy object delegate to JMS objects obtained as needed using the metadata provided by the JMS resource declaration and using standard JMS APIs

Coverage

No tests exist for this assertion

f)

The Destination is obtained using the JNDI name or mapped name specified by

Coverage

No tests exist for this assertion

g)

The appropriate ConnectionFactory for the topic or queue is obtained automatically

Coverage

No tests exist for this assertion

h)

The Connection is obtained by calling QueueConnectionFactory.createQueueConnection() or TopicConnectionFactory.createTopicConnection()

Coverage

No tests exist for this assertion

i)

The container is permitted to share a connection between multiple proxy objects

j)

The Session object is obtained by calling QueueConnection.createQueueSession() or TopicConnection.createTopicSession()

Coverage

No tests exist for this assertion

k)

The MessageProducer object is obtained by calling QueueSession.createSender() or TopicSession.createPublisher()

Coverage

No tests exist for this assertion

l)

The MessageConsumer object is obtained by calling QueueSession.createReceiver() or TopicSession.createSubscriber()

Coverage

No tests exist for this assertion

m)

When the destroy() method is called, the container must ensure that all JMS objects created by the proxy object are destroyed by calling close() if necessary

Coverage

No tests exist for this assertion

n)

The Connection is destroyed by calling Connection.close() if necessary

Coverage

No tests exist for this assertion

o)

If the connection is being shared between multiple proxy objects, the container is not required to close the connection when the proxy is destroyed

Coverage

No tests exist for this assertion

p)

The Session object is destroyed by calling Session.close()

Coverage

No tests exist for this assertion

q)

The MessageProducer object is destroyed by calling MessageProducer.close()

Coverage

No tests exist for this assertion

r)

The MessageConsumer object is destroyed by calling MessageConsumer.close()

Coverage

No tests exist for this assertion

s)

The close() method of a JMS resource proxy object always throws an UnsupportedOperationException

Coverage

No tests exist for this assertion

Section 6.11 - Lifecycle of EJBs

Section 6.12 - Lifecycle of servlets

a)

When the servlet container creates a new instance of a servlet, the container initializes the values of all injected fields. For each injected field, the container sets the value to the object returned by Manager.getInstanceToInject()

Coverage

No tests exist for this assertion

b)

When the servlet container creates a new instance of a servlet, the container calls all initializer methods. For each initializer method parameter, the container passes the object returned by Manager.getInstanceToInject()

Coverage

No tests exist for this assertion

c)

When the servlet container destroys a servlet, the container destroys all dependent objects

Coverage

No tests exist for this assertion

d)

In a Java EE 5 environment, the container is not required to support injected fields or initializer methods of servlets

Section 7.1 - Event types and binding types

a)

An event object is an instance of a concrete Java class with no [type variables] or wildcards

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testManagerFireEventWithEventTypeParametersFails()fisheye|svn
b)

An event object is an instance of a concrete Java class with no type variables or [wildcards]

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testManagerFireEventWithEventTypeWildcardsFails()fisheye|svn
c)

The event types of the event include all superclasses and interfaces of the class of the event object

Coverage

org.jboss.jsr299.tck.tests.event.firesall
AllEventTypesTest.testEventTypeIncludesAllSuperclassesAndInterfacesOfEventObject()fisheye|svn
f)

An event binding type is a Java annotation defined as @Target({FIELD, PARAMETER}) or @Target({METHOD, FIELD, PARAMETER, TYPE}) and @Retention(RUNTIME)

A test exists for this untestable assertion!
h)

An event consumer will be notified of an event if the observed event type it specifies is one of the event types of the event, and if all the observed event bindings it specifies are event bindings of the event

Coverage

org.jboss.jsr299.tck.tests.event.register.observer1
ConsumerNotifiedForEventTest.testConsumerNotifiedWhenEventTypeAndAllBindingsMatch()fisheye|svn

Section 7.2 - Firing an event via the Manager interface

a)

The Manager interface provides the fireEvent() method for firing events

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testManagerFireEvent()fisheye|svn
EventTest.testManagerInterfaceForFireEventMethod()fisheye|svn
b)

If the type of the event object passed to fireEvent() contains [type variables] or wildcards, an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testManagerFireEventWithEventTypeParametersFails()fisheye|svn
c)

If the type of the event object passed to fireEvent() contains type variables or [wildcards], an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testManagerFireEventWithEventTypeWildcardsFails()fisheye|svn
d)

If an instance of an annotation that is not a binding type is passed to fireEvent(), an IllegalArgumentException is thrown. (Not in PRD2, but should appear in next revision)

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testManagerFireEventWithNonBindingAnnotationsFails()fisheye|svn

Section 7.3 - Observing events via the Observer interface

a)

Observers of events implement the javax.event.Observer interface

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserversImplementObserverInterface()fisheye|svn
b)

An observer instance may be registered with the container by calling Manager.addObserver()

Coverage

org.jboss.jsr299.tck.tests.event.register.observer1
ManagerAddObserverTest.testManagerAddObserver()fisheye|svn
c)

In the signature of Manager.addObserver(), the first parameter is the observer object, the second parameter is the observed event type, and the remaining parameters are optional observed event bindings

Coverage

org.jboss.jsr299.tck.tests.event.register.observer1
ManagerAddObserverTest.testManagerAddObserver()fisheye|svn
d)

The observer is notified when an event object that is assignable to the observed event type is raised with the observed event bindings

Coverage

org.jboss.jsr299.tck.tests.event.register.observer1
ConsumerNotifiedForEventTest.testConsumerNotifiedWhenEventTypeAndAllBindingsMatch()fisheye|svn
e)

An observer instance may be deregistered by calling Manager.removeObserver()

Coverage

org.jboss.jsr299.tck.tests.event.register.observer2
ManagerRemoveObserverTest.testManagerRemoveObserver()fisheye|svn
g)

If the observed event type passed to addObserver() or removeObserver() contains type variables or wildcards, an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.event.register.observer2
DuplicateBindingsToRemoveObserverTest.testMultipleInstancesOfSameBindingTypeWhenRemovingObserverFails()fisheye|svn
org.jboss.jsr299.tck.tests.event
EventTest.testManagerAddObserverWithEventTypeWildcardsFails()fisheye|svn
h)

If the observed event type passed to addObserver() or removeObserver() contains type variables or wildcards, an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.event.register.observer2
NonBindingTypesToRemoveObserverTest.testNonBindingTypePassedToRemoveObserverFails()fisheye|svn
org.jboss.jsr299.tck.tests.event
EventTest.testManagerRemoveObserverWithEventTypeParametersFails()fisheye|svn
j)

If two instances of the same binding type are passed to addObserver() or removeObserver(), a DuplicateBindingTypeException is thrown

Coverage

org.jboss.jsr299.tck.tests.event.register.observer1
DuplicateBindingsToAddObserverTest.testMultipleInstancesOfSameBindingTypeWhenAddingObserverFails()fisheye|svn
k)

If two instances of the same binding type are passed to addObserver() or removeObserver(), a DuplicateBindingTypeException is thrown

Coverage

org.jboss.jsr299.tck.tests.event.register.observer1
DuplicateBindingsToRemoveObserverTest.testMultipleInstancesOfSameBindingTypeWhenRemovingObserverFails()fisheye|svn
l)

If an instance of an annotation that is not a binding type is passed to addObserver() or removeObserver(), an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.event.register.observer1
NonBindingTypesToAddObserverTest.testNonBindingTypePassedToAddObserverFails()fisheye|svn
m)

If an instance of an annotation that is not a binding type is passed to addObserver() or removeObserver(), an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.event.register.observer1
NonBindingTypesToRemoveObserverTest.testNonBindingTypePassedToRemoveObserverFails()fisheye|svn

Section 7.4 - Observer notification

b)

When an event is fired by the application the container must, for each observer, call the notify() method of the Observer interface, passing the event object

Coverage

org.jboss.jsr299.tck.tests.event.register.observer1
ConsumerNotifiedForEventTest.testConsumerNotifiedWhenEventTypeAndAllBindingsMatch()fisheye|svn
c)

If an observer throws an exception, the exception aborts processing of the event. No other observers of that event will be called. The fireEvent() method rethrows the exception

Coverage

org.jboss.jsr299.tck.tests.event.register.observer1
ObserverExceptionAbortsTest.testObserverThrowsExceptionAbortsNotifications()fisheye|svn

Section 7.5 - Observer methods

a)

An observer method is an observer defined via annotations, instead of by explicitly implementing the Observer interface. Unlike regular observers, observer methods are automatically discovered and registered by the container

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodAutomaticallyRegistered()fisheye|svn
b)

An observer method must be a method of a simple bean class or session bean class

Coverage

org.jboss.jsr299.tck.tests.event.broken.observer12
ObserverMethodOnIncorrectBeanTest.testObserverMethodNotOnSimpleOrSessionBeanFails()fisheye|svn
c)

An observer method may be either static or non-static

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testStaticObserverMethodInvoked()fisheye|svn
d)

If the bean is a session bean, the observer method must be a business method of the EJB or a static method of the bean class

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodOnEnterpriseBeanIsBusinessMethodOrStatic()fisheye|svn
org.jboss.jsr299.tck.tests.event.broken.observer1
EJBObserverMethodNotBusinessMethodTest.testObserverMethodOnEnterpriseBeanNotBusinessMethodOrStaticFails()fisheye|svn
e)

There may be arbitrarily many observer methods with the same event parameter type and bindings

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testMultipleObserverMethodsForSameEventOK()fisheye|svn
f)

A bean may declare multiple observer methods

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testMultipleObserverMethodsOnBeanOK()fisheye|svn

Section 7.5.1 - Event parameter of an observer method

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 bindings of the event parameter

Coverage

org.jboss.jsr299.tck.tests.event.broken.observer2
ObserverMethodWithTwoEventParametersTest.testObserverMethodMustHaveOnlyOneEventParameter()fisheye|svn
b)

If the event parameter does not explicitly declare any binding, the observer method observes events with no binding

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodWithoutBindingTypesObservesEventsWithoutBindingTypes()fisheye|svn
c)

If the type of the event parameter contains type variables or wildcards, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.event.broken.observer3
ObserverMethodAndWildcardedEventTypeTest.testObserverMethodCannotObserveParameterizedEvents()fisheye|svn

Section 7.5.2 - Declaring an observer method using annotations

a)

A observer method may be declared using annotations by annotating a parameter @javax.event.Observes. That parameter is the event parameter.

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodAutomaticallyRegistered()fisheye|svn
b)

If a method has more than one parameter annotated @Observes, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.event.broken.observer2
ObserverMethodWithTwoEventParametersTest.testObserverMethodMustHaveOnlyOneEventParameter()fisheye|svn
c)

If an observer method is annotated @Produces a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.event.broken.observer4
ObserverMethodAnnotatedProducesTest.testObserverMethodAnnotatedProducesFails()fisheye|svn
d)

If an observer method is annotated @Initializer a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.event.broken.observer5
ObserverMethodAnnotatedInitialzerTest.testObserverMethodAnnotatedInitializerFails()fisheye|svn
e)

If an observer method has a parameter annotated @Disposes, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.event.broken.observer6
ObserverMethodAnnotatedDisposesTest.testObserverMethodWithDisposesParamFails()fisheye|svn
f)

If a non-static method of a session bean class has a parameter annotated @Observes, and the method is not a business method of the EJB, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.event.broken.observer1
EJBObserverMethodNotBusinessMethodTest.testObserverMethodOnEnterpriseBeanNotBusinessMethodOrStaticFails()fisheye|svn
g)

The event parameter may declare bindings

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodMayHaveMultipleBindingTypes()fisheye|svn

Section 7.5.3 - Declaring an observer method using XML

Section 7.5.4 - Observer method parameters

a)

In addition to the event parameter, observer methods may declare additional parameters, which may declare bindings. The container calls the method Manager.getInstanceToInject() defined in Section 5.7.1, "Resolving dependencies" to determine a value for each parameter of an observer method and calls the observer method with those parameter values

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodReceivesInjectionsOnNonObservesParameters()fisheye|svn

Section 7.5.5 - Conditional observer methods

a)

Conditional observer methods are observer methods which are notified of an event only if an instance of the bean that defines the observer method already exists in the current context

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testConditionalObserver()fisheye|svn
b)

A conditional observer methods may be declared by annotating the event parameter with the @javax.event.IfExists annotation

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testConditionalObserver()fisheye|svn

Section 7.5.6 - 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.jsr299.tck.tests.event.transactionalObservers
EventTest.testTransactionalObserverNotifiedImmediatelyWhenNoTransactionInProgress()fisheye|svn
b)

A before completion observer method is called during the before completion phase of the transaction

Coverage

org.jboss.jsr299.tck.tests.event.transactionalObservers
EventTest.testBeforeTransactionCompletionObserver()fisheye|svn
c)

An after completion observer method is called during the after completion phase of the transaction

Coverage

org.jboss.jsr299.tck.tests.event.transactionalObservers
EventTest.testAfterTransactionCompletionObserver()fisheye|svn
e)

An after failure observer method is called during the after completion phase of the transaction, only when the transaction fails

Coverage

org.jboss.jsr299.tck.tests.event.transactionalObservers
EventTest.testAfterTransactionFailureObserver()fisheye|svn
f)

A transactional observer method may be declared by annotating the event parameter of the observer method or in XML by a child element of the element

Coverage

org.jboss.jsr299.tck.tests.event.transactionalObservers
EventTest.testAfterTransactionCompletionObserver()fisheye|svn
h)

The @javax.event.BeforeTransactionCompletion annotation or element specifies that the observer method is a before completion observer method

Coverage

org.jboss.jsr299.tck.tests.event.transactionalObservers
EventTest.testBeforeTransactionCompletionObserver()fisheye|svn
i)

The @javax.event.AfterTransactionCompletion annotation or element specifies that the observer method is an after completion observer method

Coverage

org.jboss.jsr299.tck.tests.event.transactionalObservers
EventTest.testAfterTransactionCompletionObserver()fisheye|svn
k)

The @javax.event.AfterTransactionFailure annotation or element specifies that the observer method is an after failure observer method

Coverage

org.jboss.jsr299.tck.tests.event.transactionalObservers
EventTest.testAfterTransactionFailureObserver()fisheye|svn
l)

A transactional observer method may not specify more than one of the four types. If a transactional observer method specifies more than one of the four types, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.event.broken.observer7
TransactionalObserverMethodOnlyOnePhaseTest.testTransactionalObserverCanOnlyObserveSinglePhase()fisheye|svn

Section 7.5.7 - Asynchronous observer methods

a)

An asynchronous observer method may be declared by annotating the event parameter of the observer method @javax.event.Asynchronously or in XML by a child element of the element

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testAsynchronousObserverIsAsynchronous()fisheye|svn

Section 7.5.8 - Observer object for an observer method

a)

For every observer method of an enabled bean, the container is responsible for providing and registering an appropriate implementation of the Observer interface, that delegates event notifications to the observer method

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodRegistration()fisheye|svn
c)

The notify() method of the Observer implementation for an observer method either invokes the observer method immediately, or asynchronously, or registers the observer method for later invocation during the transaction completion phase, using a JTA Synchronization

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testAsynchronousObserverIsAsynchronous()fisheye|svn
d)

The notify() method of the Observer implementation for an observer method either invokes the observer method immediately, or asynchronously, or registers the observer method for later invocation during the transaction completion phase, using a JTA Synchronization

Coverage

org.jboss.jsr299.tck.tests.event.transactionalObservers
EventTest.testAfterTransactionCompletionObserver()fisheye|svn
e)

If the observer method is an asynchronous transactional observer method and there is currently a JTA transaction in progress, the observer object calls the observer method asynchronously during the after transaction completion phase

Coverage

org.jboss.jsr299.tck.tests.event.transactionalObservers
EventTest.testAsynchronousTransactionalObserverCalledAfterCompletion()fisheye|svn
EventTest.testBeforeTransactionCompletionObserver()fisheye|svn
f)

If the observer method is a transactional observer method and there is currently a JTA transaction in progress, the observer object calls the observer method during the appropriate transaction completion phase

Coverage

org.jboss.jsr299.tck.tests.event.transactionalObservers
EventTest.testAfterTransactionCompletionObserver()fisheye|svn
g)

If the observer method is an asynchronous observer method, the container calls the observer method asynchronously

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testAsynchronousObserverIsAsynchronous()fisheye|svn
i)

The container is not required to guarantee delivery of asynchronous events in the case of a server shutdown or failure

j)

To invoke an observer method, the container must pass the event object to the event parameter and the object returned by Manager.getInstanceToInject() to each of the other parameters

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodReceivesInjectionsOnNonObservesParameters()fisheye|svn
k)

If the observer method is static, the container must invoke the method

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testStaticObserverMethodInvoked()fisheye|svn
l)

If the observer method is non-static, the container must obtain the Bean object for the most specialized bean that specializes the bean which declares the observer method

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverCalledOnMostSpecializedInstance()fisheye|svn
p)

If the observer is a transactional or asynchronous observer method, any exception is caught and logged by the container

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testAsynchronousObserverThrowsExceptionIsLogged()fisheye|svn
org.jboss.jsr299.tck.tests.event.transactionalObservers
EventTest.testTransactionalObserverThrownExceptionIsCaughtAndLogged()fisheye|svn
q)

If the observer isn't a transactional or asynchronous observer method, the exception is rethrown by the notify() method of the observer object

Coverage

org.jboss.jsr299.tck.tests.event.broken.observer10
ObserverExceptionRethrown.testNonTransactionalObserverThrowsNonCheckedExceptionIsRethrown()fisheye|svn
r)

If the exception is a checked exception, it is wrapped and rethrown as an (unchecked) ObserverException

Coverage

org.jboss.jsr299.tck.tests.event.broken.observer11
CheckedExceptionWrappedTest.testNonTransactionalObserverThrowsCheckedExceptionIsWrappedAndRethrown()fisheye|svn
s)

The observer object is registered by calling Manager.addObserver(), passing the event parameter type as the observed event type, and the bindings of the event parameter as the observed event bindings

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodCallsManagerAddObserverWithObserverObject()fisheye|svn

Section 7.5.9 - Observer invocation context

e)

The transaction and security contexts for a business method of a session bean also depend upon the transaction attribute and @RunAs descriptor, if any

Coverage

No tests exist for this assertion

Section 7.6 - The Event interface

a)

An instance of the javax.event.Event interface may be injected via use of the @javax.event.Fires binding

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testImplicitEventBeanProvidedByContainer()fisheye|svn
e)

The first parameter of the fire() method is the event object. The remaining parameters are event bindings

Coverage

org.jboss.jsr299.tck.tests.event.register.fires1
ImplicitEventBeanTest.testImplicitEventBeanFireSignature()fisheye|svn
f)

The first parameter of the observe() method is the observer object. The remaining parameters are the observed event bindings

Coverage

org.jboss.jsr299.tck.tests.event.register.fires1
ImplicitEventBeanTest.testImplicitEventBeanFireSignature()fisheye|svn
g)

If two instances of the same binding type are passed to fire() or observes(), a DuplicateBindingTypeException is thrown

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testDuplicateBindingsToFireFails()fisheye|svn
EventTest.testDuplicateBindingsToObservesFails()fisheye|svn
h)

If an instance of an annotation that is not a binding type is passed to fire() or observes(), an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testNonBindingTypePassedToFireFails()fisheye|svn
EventTest.testNonBindingTypePassedToObservesFails()fisheye|svn
j)

If the type of the injection point is not of type Event a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.event.broken.event1
FiresOnNonEventTest.testFiresAnnotationOnNonEventTypeInjectionPointFails()fisheye|svn
k)

If the type of the injection point has no actual type parameter specified a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.event.broken.event2
FiresOnEventWithoutTypeTest.testFiresAnnotationOnInjectionPointWithoutTypeParameterFails()fisheye|svn
l)

If the type of the injection point parameter contains a type variable a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.event.broken.event4
FiresOnEventWithTypeVariableTest.testFiresAnnotationOnInjectionPointWithTypeVariabledTypeParameterFails()fisheye|svn
m)

If the type of the injection point parameter contains a wildcard a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.event.broken.event3
FiresOnEventWithWildcardTypeTest.testFiresAnnotationOnInjectionPointWithWildcardedTypeParameterFails()fisheye|svn
n)

Whenever the @Fires annotation appears at an injection point, an implicit bean exists with exactly the bean type and bindings that appear at the injection point

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testImplicitEventBeanMatchesAPITypeOfInectionPoint()fisheye|svn
EventTest.testImplicitEventBeanMatchesBindingAnnotationsOfInjectionPoint()fisheye|svn
o)

Whenever the @Fires annotation appears at an injection point, an implicit bean exists with deployment type @Standard,

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testImplicitEventBeanHasStandardDeploymentType()fisheye|svn
p)

Whenever the @Fires annotation appears at an injection point, an implicit bean exists with @Dependent scope

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testImplicitEventBeanHasDependentScope()fisheye|svn
q)

Whenever the @Fires annotation appears at an injection point, an implicit bean exists with no bean name

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testImplicitEventBeanHasNoName()fisheye|svn
r)

Whenever the @Fires annotation appears at an injection point, an implicit bean exists with an implementation provided automatically by the container

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testImplicitEventBeanProvidedByContainer()fisheye|svn
s)

The fire() method of the provided implementation of Event must call Manager.fireEvent(), passing the event object passed to Event.fire(), all bindings declared at the injection point (except @Fires), and all bindings passed to Event.fire()

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testFireMethodCallsManagerFireWithEventObject()fisheye|svn
EventTest.testFireMethodCallsManagerFireWithBindingAnnotationsExceptFires()fisheye|svn
EventTest.testFireMethodCallsManagerFireWithAllBindingAnnotationInstances()fisheye|svn
u)

The observe() method of the provided implementation of Event must call Manager.addObserver(), passing the observer object passed to Event.observe(), all bindings declared at the injection point (except @Fires), and all bindings passed to Event.observer()

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodCallsManagerAddObserverWithAllBindingAnnotationsExceptFires()fisheye|svn
EventTest.testObserverMethodCallsManagerAddObserverWithAllBindingAnnotationInstance()fisheye|svn
EventTest.testObserverMethodCallsManagerAddObserverWithObserverObject()fisheye|svn

Section 7.7 - Observer resolution

a)

The method Manager.resolveObservers() resolves observers for an event - the first parameter of resolveObservers() is the event object. The remaining parameters are event bindings

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testManagerResolveObserversSignature()fisheye|svn
b)

If the type of the event object passed to resolveObservers() contains type variables, an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testEventObjectContainsTypeVariablesWhenResolvingFails()fisheye|svn
d)

If two instances of the same binding type are passed to resolveObservers(), a DuplicateBindingTypeException is thrown

Coverage

org.jboss.jsr299.tck.tests.event.resolve.binding
DuplicateBindingTypesWhenResolvingTest.testDuplicateBindingTypesWhenResolvingFails()fisheye|svn
e)

If an instance of an annotation that is not a binding type is passed to resolveObservers(), an IllegalArgumentException is thrown

Coverage

org.jboss.jsr299.tck.tests.event.resolve.nonbinding
NonBindingTypesWhenResolvingTest.testNonBindingTypeAnnotationWhenResolvingFails()fisheye|svn
f)

When searching for observers for an event, the event object must be assignable to the observed event type, taking type parameters into consideration

Coverage

org.jboss.jsr299.tck.tests.event.resolve.type
ChecksEventTypeWhenResolvingTest.testResolvingChecksEventType()fisheye|svn
ChecksTypeParametersWhenResolvingTest.testResolvingChecksTypeParameters()fisheye|svn
g)

When searching for observers for an event, for each observed event binding, (a) an instance of the binding type must have been passed to fireEvent() and (b) any member values of the binding type must match the member values of the instance passed to fireEvent()

Coverage

org.jboss.jsr299.tck.tests.event.resolve.binding
ResolvingChecksBindingTypeMembersTest.testResolvingChecksBindingTypeMembers()fisheye|svn
ResolvingChecksBindingTypeTest.testResolvingChecksBindingTypes()fisheye|svn

Section 7.7.1 - Event binding types with members

a)

The binding type for an Event binding may have annotation members

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodMayHaveMultipleBindingTypes()fisheye|svn
b)

The container uses equals() to compare event binding type member values

Section 7.7.2 - Multiple event bindings

a)

An event parameter may have multiple bindings

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodMayHaveMultipleBindingTypes()fisheye|svn
b)

An observer method will only be notified if all the observed event bindings are specified when the event is fired

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodNotifiedWhenBindingsMatch()fisheye|svn
c)

Other, less specific, observers will also be notified of events with multiple event bindings

Coverage

org.jboss.jsr299.tck.tests.event
EventTest.testObserverMethodNotifiedWhenBindingsMatch()fisheye|svn

Section 7.8 - JMS event mappings

Section 8.1 - The Context interface

a)

The get() method of the Context object may return an existing instance of the given contextual type

Coverage

org.jboss.jsr299.tck.tests.context
NormalContextTest.testGetReturnsExistingInstance()fisheye|svn
b)

The get() method of the Context object may return a null value if no CreationalContext is given

Coverage

org.jboss.jsr299.tck.tests.context
GetWithNoCreationalContextTest.testGetWithoutCreationalContextReturnsNull()fisheye|svn
c)

The get() method of the Context object may create a new instance of the given contextual type by calling Contextual.create() and return the new instance, if a CreationalContext is given

Coverage

org.jboss.jsr299.tck.tests.context
NormalContextTest.testGetWithCreationalContextReturnsNewInstance()fisheye|svn
d)

The get() method of a Context object may not return a null value unless no CreationalContext is given, or Contextual.create() returns a null value

Coverage

org.jboss.jsr299.tck.tests.context
NormalContextTest.testGetMayNotReturnNullUnlessNoCreationalContextOrContextualCreateReturnsNull()fisheye|svn
e)

The get() method of a Context object may not create a new instance of the given contextual type unless a CreationalContext is given

Coverage

org.jboss.jsr299.tck.tests.context
GetTest.testGetMayNotCreateNewInstanceUnlessCreationalContextGiven()fisheye|svn
f)

The Context implementation 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.jsr299.tck.tests.context
NormalContextTest.testContextDestroysBeansWhenDestroyed()fisheye|svn
g)

A destroyed instance must not subsequently be returned by a Context object's get() method

Coverage

org.jboss.jsr299.tck.tests.context
DestroyedInstanceReturnedByGetTest.testDestroyedInstanceMustNotBeReturnedByGet()fisheye|svn
h)

When a scope is inactive, any invocation of the get() from the current thread upon the Context object for that scope results in a ContextNotActiveException

Coverage

org.jboss.jsr299.tck.tests.context
GetOnInactiveContextTest.testInvokingGetOnInactiveContextFails()fisheye|svn
i)

The isActive() method returns false when the scope of the context object is inactive, and true when it is active

Coverage

No tests exist for this assertion

Section 8.2 - Normal scopes and pseudo-scopes

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

No tests exist for this assertion

d)

When a context is destroyed, all mapped instances of contextual types with that scope are destroyed by passing them to the Contextual.destroy() method

Coverage

No tests exist for this assertion

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

No tests exist for this assertion

f)

All pseudo-scopes must be explicitly declared @ScopeType(normal=false), 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 8.3 - Dependent pseudo-scope

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.jsr299.tck.tests.context.dependent
DependentContextTest.testInstanceNotSharedBetweenInjectionPoints()fisheye|svn
b)

When a bean is declared to have @Dependent scope, any injected instance of the bean is bound to the lifecycle of the bean, servlet or EJB into which it is injected

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testDestroyingSimpleParentDestroysDependents()fisheye|svn
DependentContextTest.testDestroyingSimpleParentDestroysDependentsOfSameBean()fisheye|svn
c)

When a bean is declared to have @Dependent scope, any instance of the bean that is used to evaluate a Unified EL expression exists to service that evaluation only

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testInstanceUsedForElEvaluationNotShared()fisheye|svn
d)

When a bean is declared to have @Dependent scope, any instance of the bean that receives a producer method, producer field, disposal method or observer method invocation exists to service that invocation only

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testInstanceUsedForProducerMethodNotShared()fisheye|svn
DependentContextTest.testInstanceUsedForProducerFieldNotShared()fisheye|svn
DependentContextTest.testInstanceUsedForDisposalMethodNotShared()fisheye|svn
DependentContextTest.testInstanceUsedForObserverMethodNotShared()fisheye|svn
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.jsr299.tck.tests.context.dependent
DependentContextTest.testContextGetWithCreateTrueReturnsNewInstance()fisheye|svn
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.jsr299.tck.tests.context.dependent
DependentContextTest.testContextGetWithCreateFalseReturnsNull()fisheye|svn
g)

The @Dependent scope is inactive except when an instance of a bean with scope @Dependent is created by the container to receive a producer method, producer field, disposal method or observer method invocation

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testContextIsInactive()fisheye|svn
DependentContextTest.testContextIsActiveWhenInvokingProducerMethod()fisheye|svn
DependentContextTest.testContextIsActiveWhenInvokingProducerField()fisheye|svn
DependentContextTest.testContextIsActiveWhenCreatingObserverMethodInstance()fisheye|svn
DependentContextTest.testContextIsActiveWhenInvokingDisposalMethod()fisheye|svn
h)

The @Dependent scope is inactive except while a Unified EL expression is evaluated

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testContextIsActiveWhenEvaluatingElExpression()fisheye|svn
i)

The @Dependent scope is inactive except while an observer method is invoked

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testContextIsActiveWhenInvokingObserverMethod()fisheye|svn
j)

The @Dependent scope is inactive except when the container is creating or destroying a contextual instance of a bean or injecting its dependencies

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testContextIsActiveDuringBeanCreation()fisheye|svn
DependentContextTest.testContextIsActiveDuringInjection()fisheye|svn
DependentContextTest.testContextIsActiveWhenInvokingDisposalMethod()fisheye|svn
k)

The @Dependent scope is inactive except when the container is injecting dependencies of an EJB

Coverage

org.jboss.jsr299.tck.tests.context.dependent.ejb
DependentContextEjbTest.testContextIsActiveDuringEJBDependencyInjection()fisheye|svn
l)

The @Dependent scope is inactive except when a @PostConstruct or @PreDestroy callback is invoked by the EJB container

Coverage

org.jboss.jsr299.tck.tests.context.dependent.ejb
DependentContextEjbTest.testContextIsActiveDuringEJBPostConstruct()fisheye|svn
m)

The @Dependent scope is inactive except when the container is injecting dependencies of a servlet

Coverage

No tests exist for this assertion

n)

The @Dependent scope is even active during invocation of interceptors and decorators of observer methods and interceptors and decorators of @PostConstruct and @PreDestroy callbacks

Coverage

No tests exist for this assertion

Section 8.3.1 - Dependent objects

a)

A bean, EJB or servlet may obtain an instance of a bean with scope @Dependent via dependency injection or by calling Manager.getInstance(), Manager.getInstanceByType() or Instance.get() when the @Dependent scope is active

b)

Instances of interceptors or decorators with scope @Dependent are also dependent objects of the bean they intercept or decorate

Coverage

No tests exist for this assertion

Section 8.3.2 - Dependent object destruction

a)

The container must destroy all dependent objects of a contextual bean instance when the instance is destroyed

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testDestroyingSimpleParentDestroysDependents()fisheye|svn
DependentContextTest.testDestroyingSimpleParentDestroysDependentsOfSameBean()fisheye|svn
ba)

The container must destroy all dependent objects of an EJB or servlet when the EJB or servlet is destroyed

Coverage

org.jboss.jsr299.tck.tests.context.dependent.ejb
DependentContextEjbTest.testDestroyingEjbDestroysDependents()fisheye|svn
DependentContextEjbTest.testDestroyingEjbDestroysDependentSimples()fisheye|svn
bb)

The container must destroy all dependent objects of an EJB or servlet when the EJB or servlet is destroyed

Coverage

No tests exist for this assertion

c)

The container must destroy all @Dependent scoped contextual instances created during an EL expression evaluation when the evaluation completes

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testDependentsDestroyedWhenElEvaluationCompletes()fisheye|svn
da)

The container must destroy any @Dependent scoped contextual instance created to receive a producer method, producer field, disposal method or observer method invocation when the invocation completes

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testDependentsDestroyedWhenProducerMethodCompletes()fisheye|svn
db)

The container must destroy any @Dependent scoped contextual instance created to receive a producer method, producer field, disposal method or observer method invocation when the invocation completes

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testDependentsDestroyedWhenProducerFieldCompletes()fisheye|svn
dc)

The container must destroy any @Dependent scoped contextual instance created to receive a producer method, producer field, disposal method or observer method invocation when the invocation completes

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testDependentsDestroyedWhenDisposalMethodCompletes()fisheye|svn
dd)

The container must destroy any @Dependent scoped contextual instance created to receive a producer method, producer field, disposal method or observer method invocation when the invocation completes

Coverage

org.jboss.jsr299.tck.tests.context.dependent
DependentContextTest.testDependentsDestroyedWhenObserverMethodEvaluationCompletes()fisheye|svn
e)

The container is permitted to destroy any @Dependent scoped contextual instance at any time if the instance is no Scopes and contexts longer referenced by the application (excluding weak, soft and phantom references)

Section 8.4 - Passivating scopes and serialization

a)

The container must validate that every bean declared with a passivating scope truly is serializable - EJB local objects are serializable. Therefore, a session bean may declare any passivating scope

Coverage

org.jboss.jsr299.tck.tests.context.passivating
PassivatingContextTest.testEJBWebBeanCanDeclarePassivatingScope()fisheye|svn
b)

Simple beans are not required to be serializable. If a simple bean declares a passivating scope, and the bean class is not serializable, a DefinitionException is thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.context.passivating
PassivatingContextTest.testSimpleWebBeanWithSerializableImplementationClassOK()fisheye|svn
org.jboss.jsr299.tck.tests.context.passivating.broken2
NonSerializableTest.testSimpleWebBeanWithNonSerializableImplementationClassFails()fisheye|svn
ca)

Check a producer method which declares a passivating scope and returns a serializable product works

Coverage

org.jboss.jsr299.tck.tests.context.passivating
PassivatingContextTest.testInjectionOfDependentSerializableProductIntoNormalBean()fisheye|svn
cb)

Check a producer method which declares a passivating scope and returns a primitive product works

Coverage

org.jboss.jsr299.tck.tests.context.passivating
PassivatingContextTest.testInjectionOfDependentPrimitiveProductIntoNormalBean()fisheye|svn
cc)

If a producer method or field declares a passivating scope and returns a non-serializable object at runtime, an IllegalProductException is thrown by the container

Coverage

No tests exist for this assertion

cd)

If a producer method or field declares a passivating scope and returns a non-serializable object at runtime, an IllegalProductException is thrown by the container

Coverage

No tests exist for this assertion

d)

The built-in session and conversation scopes are passivating

e)

No other built-in scope besides session and conversation scopes are passivating

f)

A contextual instance of a bean may be serialized when the bean declares a passivating scope, and context passivation occurs

Coverage

org.jboss.jsr299.tck.tests.context.passivating
PassivatingContextTest.testSimpleWebBeanDeclaringPassivatingScopeIsSerializedWhenContextIsPassivated()fisheye|svn
h)

In either case of assertion f or g above, any non-transient field that holds a reference to another bean must be serialized along with the bean that is being serialized. Therefore, the reference must be to a serializable type

i)

Any reference to a bean which declares a normal scope is serializable

Coverage

org.jboss.jsr299.tck.tests.context.passivating
PassivatingContextTest.testSimpleWebBeanDeclaringPassivatingScopeIsSerializedWhenContextIsPassivated()fisheye|svn
j)

EJB local objects are serializable, therefore, any reference to a session bean of scope @Dependent is serializable

Coverage

org.jboss.jsr299.tck.tests.context.passivating.broken1
DependentInterceptorSerializableTest.testDependentInterceptorsOfStatefulEnterpriseBeanMustBeSerializable()fisheye|svn
org.jboss.jsr299.tck.tests.context.passivating
PassivatingContextTest.testDependentEJBsAreSerializable()fisheye|svn
org.jboss.jsr299.tck.tests.context.passivating.broken3
DependentDecoratorSerializableTest.testDependentDecoratorsOfStatefulEnterpriseBeanMustBeSerializable()fisheye|svn
k)

If a simple bean of scope @Dependent and a nonserializable bean class is injected into a stateful session bean an UnserializableDependencyException must be thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.context.passivating.unserializableSimpleInjectedIntoPassivatingEnterpriseBean
UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest.testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoStatefulSessionBeanFails()fisheye|svn
org.jboss.jsr299.tck.tests.context.passivating.broken4
DependentInterceptorSerializableTest.testDependentInterceptorsOfWebBeanWithPassivatingScopeMustBeSerializable()fisheye|svn
org.jboss.jsr299.tck.tests.context.passivating.broken5
DependentDecoratorSerializableTest.testDependentDecoratorsOfWebBeansWithPassivatingScopeMustBeSerializable()fisheye|svn
l)

If a simple bean of scope @Dependent and a nonserializable bean class is injected into a non-transient field an UnserializableDependencyException must be thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.context.passivating.broken6
NonSerializableTest.testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails()fisheye|svn
org.jboss.jsr299.tck.tests.context.passivating
PassivatingContextTest.testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoTransientFieldOK()fisheye|svn
m)

If a simple bean of scope @Dependent and a nonserializable bean class is injected into a bean constructor parameter of a bean which declares a passivating scope, an UnserializableDependencyException must be thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.context.passivating.broken7
NonSerializableTest.testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoConstructorParameterOfWebBeanWithPassivatingScopeFails()fisheye|svn
n)

If a simple bean of scope @Dependent and a nonserializable bean class is injected into an initializer method parameter of a bean which declares a passivating scope, an UnserializableDependencyException must be thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.context.passivating.broken8
NonSerializableTest.testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoInitializerParameterOfWebBeanWithPassivatingScopeFails()fisheye|svn
o)

If a simple bean of scope @Dependent and a nonserializable bean class is injected into a parameter of a producer method which declares a passivating scope, an UnserializableDependencyException must be thrown by the container at deployment time

Coverage

org.jboss.jsr299.tck.tests.context.passivating.broken9
NonSerializableTest.testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoProducerMethodParameterWithPassivatingScopeFails()fisheye|svn
q)

If a producer method or field of scope @Dependent returns a non-serializable object for injection into a non-transient field an IllegalProductException is thrown by the container

Coverage

org.jboss.jsr299.tck.tests.context.passivating
PassivatingContextTest.testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails()fisheye|svn
PassivatingContextTest.testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoTransientFieldOfWebBeanWithPassivatingScopeOK()fisheye|svn
PassivatingContextTest.testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails()fisheye|svn
PassivatingContextTest.testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoTransientFieldOfWebBeanWithPassivatingScopeOK()fisheye|svn
r)

If a producer method or field of scope @Dependent returns a non-serializable object for injection into a bean constructor parameter of a bean which declares a passivating scope, an IllegalProductException is thrown by the container

Coverage

org.jboss.jsr299.tck.tests.context.passivating
PassivatingContextTest.testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoConstructorParameterOfWebBeanWithPassivatingScopeFails()fisheye|svn
PassivatingContextTest.testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoConstructorParameterOfWebBeanWithPassivatingScopeFails()fisheye|svn
s)

If a producer method or field of scope @Dependent returns a non-serializable object for injection into an initializer method parameter of a bean which declares a passivating scope, an IllegalProductException is thrown by the container

Coverage

org.jboss.jsr299.tck.tests.context.passivating
PassivatingContextTest.testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoInitializerParameterOfWebBeanWithPassivatingScopeFails()fisheye|svn
PassivatingContextTest.testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoInitializerParameterOfWebBeanWithPassivatingScopeFails()fisheye|svn
t)

If a producer method or field of scope @Dependent returns a non-serializable object for injection into a parameter of a producer method which declares a passivating scope, an IllegalProductException is thrown by the container

Coverage

org.jboss.jsr299.tck.tests.context.passivating
PassivatingContextTest.testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoProducerMethodParameterWithPassivatingScopeFails()fisheye|svn
PassivatingContextTest.testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoProducerMethodParameterWithPassivatingScopeFails()fisheye|svn
v)

The method Bean.isSerializable() may be used to detect if a bean is serializable

Coverage

No tests exist for this assertion

Section 8.5 - Context management for built-in scopes

a)

The container provides an implementation of the Context interface for each of the built-in scopes

Coverage

No tests exist for this assertion

Section 8.5.1 - Request context lifecycle

b)

The request scope is active during the doFilter() method of any servlet filter

Coverage

No tests exist for this assertion

f)

The request scope is active during any asynchronous observer method notification

Coverage

No tests exist for this assertion

g)

The request context is destroyed after a asynchronous observer method notification completes

Coverage

No tests exist for this assertion

Section 8.5.2 - Session context lifecycle

b)

The session scope is active during the doFilter() method of any servlet filter

Coverage

No tests exist for this assertion

Section 8.5.3 - Application context lifecycle

b)

The application scope is active during the doFilter() method of any servlet filter

Coverage

No tests exist for this assertion

d)

The application scope is active during any asynchronous observer method notification

Coverage

No tests exist for this assertion

i)

The application context is shared between all asynchronous observer method notifications that execute within the same application

Coverage

No tests exist for this assertion

j)

The application context is shared between all web service invocations that execute within the same application

Coverage

No tests exist for this assertion

k)

The application context is shared between all EJB remote method invocations that execute within the same application

Coverage

No tests exist for this assertion

l)

The application context is shared between all EJB timeouts that execute within the same application

Coverage

No tests exist for this assertion

m)

The application context is shared between all message deliveries to message driven beans that execute within the same application

Coverage

No tests exist for this assertion

Section 8.5.4 - Conversation context lifecycle

a)

For a JSF faces request, the conversation context is active from the beginning of the apply request values phase, until the response is complete

Coverage

No tests exist for this assertion

b)

For a JSF non-faces request, the context is active during the render response phase

Coverage

org.jboss.jsr299.tck.tests.context.conversation.client
ClientConversationContextTest.testConversationActiveDuringNonFacesRequest()fisheye|svn
c)

Any JSF request has exactly one associated conversation

Coverage

No tests exist for this assertion

d)

The conversation associated with a JSF request is determined at the end of the restore view phase and does not change during the request

Coverage

No tests exist for this assertion

e)

By default, a conversation is transient

Coverage

org.jboss.jsr299.tck.tests.context.conversation
ConversationContextTest.testDefaultConversationIsTransient()fisheye|svn
f)

A transient conversation may be marked long-running by calling Conversation.begin()

Coverage

org.jboss.jsr299.tck.tests.context.conversation
ConversationIdSetByContainerTest.testConversationBeginMakesConversationLongRunning()fisheye|svn
ConversationBeginTest.testConversationBeginMakesConversationLongRunning()fisheye|svn
g)

A long-running conversation may be marked transient by calling Conversation.end()

Coverage

org.jboss.jsr299.tck.tests.context.conversation
ConversationEndTest.testConversationEndMakesConversationTransient()fisheye|svn
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.jsr299.tck.tests.context.conversation
ConversationIdSetByApplicationTest.testConversationIdMayBeSetByApplication()fisheye|svn
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.jsr299.tck.tests.context.conversation.client
ClientConversationContextTest.testConversationIdSetByContainerIsUnique()fisheye|svn
ia)

The container provides a built-in bean with bean type javax.context.Conversation, scope @RequestScoped, deployment type @Standard and binding @Current, named javax.context.conversation

Coverage

org.jboss.jsr299.tck.tests.context.conversation
ConversationContextTest.testBeanWithTypeConversation()fisheye|svn
ib)

The container provides a built-in bean with bean type javax.context.Conversation, scope @RequestScoped, deployment type @Standard and binding @Current, named javax.context.conversation

Coverage

org.jboss.jsr299.tck.tests.context.conversation
ConversationContextTest.testBeanWithRequestScope()fisheye|svn
ic)

The container provides a built-in bean with bean type javax.context.Conversation, scope @RequestScoped, deployment type @Standard and binding @Current, named javax.context.conversation

Coverage

org.jboss.jsr299.tck.tests.context.conversation
ConversationContextTest.testBeanWithDeploymentTypeStandard()fisheye|svn
id)

The container provides a built-in bean with bean type javax.context.Conversation, scope @RequestScoped, deployment type @Standard and binding @Current, named javax.context.conversation

Coverage

org.jboss.jsr299.tck.tests.context.conversation
ConversationContextTest.testBeanWithBindingCurrent()fisheye|svn
ie)

The container provides a built-in bean with bean type javax.context.Conversation, scope @RequestScoped, deployment type @Standard and binding @Current, named javax.context.conversation

Coverage

org.jboss.jsr299.tck.tests.context.conversation
ConversationContextTest.testBeanWithNameJavaxContextConversation()fisheye|svn
j)

If the conversation associated with the current JSF request is in the transient state at the end of a JSF request, it is destroyed, and the conversation context is also destroyed

Coverage

org.jboss.jsr299.tck.tests.context.conversation.client
ClientConversationContextTest.testTransientConversationInstancesDestroyedAtRequestEnd()fisheye|svn
k)

If the conversation associated with the current JSF request is in the long-running state at the end of a JSF request, it is not destroyed

Coverage

org.jboss.jsr299.tck.tests.context.conversation.client
LongRunningInstancesNotDestroyedTest.testLongRunningConversationInstancesNotDestroyedAtRequestEnd()fisheye|svn
ClientConversationContextTest.testLongRunningConversationInstancesNotDestroyedAtRequestEnd()fisheye|svn
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.jsr299.tck.tests.context.conversation.client
LongRunningConversationPropagatedByFacesContextTest.testConversationPropagated()fisheye|svn
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 GET request parameter named cid containing the unique identifier of the conversation

Coverage

org.jboss.jsr299.tck.tests.context.conversation.client
LongRunningConversationPropagatedByFacesContextTest.testConversationPropagatedOverRedirect()fisheye|svn
n)

The long-running conversation associated with a request may be propagated to any non-faces request via use of a GET request parameter named cid containing the unique identifier of the conversation. In this case, the application must manage this request parameter

Coverage

org.jboss.jsr299.tck.tests.context.conversation.client
ClientConversationContextTest.testManualCidPropagation()fisheye|svn
o)

When no conversation is propagated to a JSF request, the request is associated with a new transient conversation

Coverage

org.jboss.jsr299.tck.tests.context.conversation.client
ClientConversationContextTest.testConversationNotPropagated()fisheye|svn
p)

All long-running conversations are scoped to a particular HTTP servlet session and may not cross session boundaries

Coverage

org.jboss.jsr299.tck.tests.context.conversation.client
ClientConversationContextTest.testConversationsDontCrossSessionBoundary()fisheye|svn
q)

When the HTTP servlet session is invalidated, all long-running conversation contexts created during the current session are destroyed

Coverage

org.jboss.jsr299.tck.tests.context.conversation.client
InvalidatingSessionDestroysConversationTest.testInvalidatingSessionDestroysConversation()fisheye|svn
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

s)

If the propagated conversation cannot be restored, the request is associated with a new transient conversation

Coverage

org.jboss.jsr299.tck.tests.context.conversation.client
ClientConversationContextTest.testConversationPropagationToNonExistentConversationLeadsToTransientConversation()fisheye|svn
t)

The method 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

u)

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

Section 8.6 - Context management for custom scopes

a)

A custom implementation of Context may be associated with any scope type at any point in the execution of the application, by calling Manager.addContext()

Coverage

No tests exist for this assertion

c)

If no active context object exists for the given scope type, Manager.getContext() must throw a ContextNotActiveException

Coverage

org.jboss.jsr299.tck.tests.context
InactiveContextTest.testGetContextWithNoActiveContextsFails()fisheye|svn
ContextTest.testGetContextWithNoRegisteredContextsFails()fisheye|svn
d)

If more than one active context object exists for the given scope type, Manager.getContext() must throw an IllegalStateException

Coverage

org.jboss.jsr299.tck.tests.context
ContextTest.testGetContextWithTooManyActiveContextsFails()fisheye|svn

Unmatched tests

The following 8 tests do not match any known assertions:

SectionAssertionTest ClassTest Method
reviewreview
org.jboss.jsr299.tck.tests.implementation.simple.newSimpleBean.newAndOtherBindingType
NewAndOtherBindingTypeTest
testNewAnnotationCannotAppearInConjunctionWithOtherBindingType()
reviewreview
org.jboss.jsr299.tck.tests.implementation.enterprise.newBean
NewEnterpriseBeanTest
testNewAnnotationCannotBeAppliedToNonWebBeanImplementationClass()
reviewreview
org.jboss.jsr299.tck.tests.implementation.enterprise.newBean
NewEnterpriseBeanTest
testNewAnnotationCannotBeExplicitlyDeclared()
reviewreview
org.jboss.jsr299.tck.tests.implementation.enterprise.newAndOtherBinding
NewAndOtherBindingTest
testNewAnnotationCannotAppearInConjunctionWithOtherBindingType()
reviewreview
org.jboss.jsr299.tck.tests.implementation.simple.newSimpleBean
NewSimpleBeanTest
testNewAnnotationCannotBeExplicitlyDeclared()
reviewreview
org.jboss.jsr299.tck.tests.lookup.clientProxy.unknown
UnknownBeanTest
testGettingUnknownBeanFails()
A.5unknown
org.jboss.jsr299.tck.tests.implementation.decorator
DecoratorDefinitionTest
testDecoratorBindingInherited()
A.5unknown
org.jboss.jsr299.tck.tests.implementation.decorator
DecoratorDefinitionTest
testDecoratorBindingBlockedByIntermediateClass()