TestCases for the SCA JMS Binding Specification Version 1.1

Committee Specification Draft 02 /
Public Review Draft 02

14 July 2011

Specification URIs:

This version:

http://docs.oasis-open.org/opencsa/sca-bindings/sca-jmsbinding-1.1-testcases-csprd02.pdf (Authoritative)

http://docs.oasis-open.org/opencsa/sca-bindings/sca-jmsbinding-1.1-testcases-csprd02.html

http://docs.oasis-open.org/opencsa/sca-bindings/sca-jmsbinding-1.1-testcases-csprd02.odt

Previous version:

http://docs.oasis-open.org/opencsa/sca-bindings/sca-jmsbinding-1.1-testcases-1.0-csprd01.pdf (Authoritative)

http://docs.oasis-open.org/opencsa/sca-bindings/sca-jmsbinding-1.1-testcases-1.0-csprd01.html

http://docs.oasis-open.org/opencsa/sca-bindings/sca-jmsbinding-1.1-testcases-1.0-csprd01.odt

Latest version:

http://docs.oasis-open.org/opencsa/sca-bindings/sca-jmsbinding-1.1-testcases.pdf (Authoritative)

http://docs.oasis-open.org/opencsa/sca-bindings/sca-jmsbinding-1.1-testcases.html

http://docs.oasis-open.org/opencsa/sca-bindings/sca-jmsbinding-1.1-testcases.odt

Technical Committee:

OASIS Service Component Architecture / Bindings (SCA-Bindings) TC

Chair:

Simon Holdsworth (simon_holdsworth@uk.ibm.com), IBM

Editors:

Anthony Elder (ant.elder@uk.ibm.com), IBM

Simon Holdsworth (simon_holdsworth@uk.ibm.com), IBM

Anish Karmarkar (Anish.Karmarkar@oracle.com), Oracle

Additional Work Product artifacts:

This prose specification is one component of a Work Product which also includes:

Related work:

This specification is related to:

Declared XML namespaces:

http://docs.oasis-open.org/ns/opencsa/scatests/200903

http://test.sca.oasisopen.org/

Abstract:

This document defines the TestCases for the SCA JMS Binding specification.

The TestCases represent a series of tests that an SCA runtime must pass in order to claim conformance to the requirements of the SCA JMS Binding specification.

Status:

This document was last revised or approved by the OASIS Service Component Architecture / Binding (SCA-Bindings) TC on the above date. The level of approval is also listed above. Check the “Latest version” location noted above for possible later revisions of this document.

Technical Committee members should send comments on this specification to the Technical Committee’s email list. Others should send comments to the Technical Committee by using the “Send A Comment” button on the Technical Committee’s web page at http://www.oasis-open.org/committees/sca-bindings/.

For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights section of the Technical Committee web page (http://www.oasis-open.org/committees/sca-bindings/ipr.php).

Citation format:

When referencing this specification the following citation format should be used:

[SCA-JMSBinding-TestCases]

TestCases for the SCA JMS Binding Specification Version 1.1. 14 July 2011. OASIS Committee Specification Draft 02 / Public Review Draft 02. http://docs.oasis-open.org/opencsa/sca-bindings/sca-jmsbinding-1.1-testcases-csprd02.html.



Notices

Copyright © OASIS Open 2011. All Rights Reserved.

All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

OASIS requests that any OASIS Party or any other party that believes it has patent claims that would necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard, to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification.

OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any patent claims that would necessarily be infringed by implementations of this specification by a patent holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS may include such claims on its website, but disclaims any obligation to do so.

OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found on the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential Claims.

The names "OASIS", "SCA", and "Service Component Architecture" are trademarks of OASIS, the owner and developer of this specification, and should be used only to refer to the organization and its official outputs. OASIS welcomes reference to, and implementation and use of, specifications, while reserving the right to enforce its marks against misleading uses. Please see http://www.oasis-open.org/who/trademark.php for above guidance.



Table of Contents

1 Introduction 5

1.1 TestCase Structure 5

1.2 Namespaces and Java Package Names 6

1.3 Terminology 6

1.4 Normative References 7

1.5 Non-normative References 7

2 TestCases 8

2.1 TestCases for JMS Bindings Specification Section 3 8

2.2 TestCases for JMS Bindings Specification Section 4 24

2.3 TestCases for JMS Bindings Specification Section 5 29

2.4 TestCases for JMS Bindings Specification Section 6 30

3 Catalog of Test Artifacts 38

3.1 Composite Files - lower level 38

3.2 Java Interfaces 38

3.3 Java Implementation Classes 39

3.4 WSDL Interface Files 39

4 Conformance 41

Appendix A. Test Assertions for the JMS Binding 42

A.1. Example Test Assertion 42

A.2. Test Assertions for JMS Bindings Specification Section 3 42

A.3. Test Assertions for JMS Bindings Specification Section 4 53

A.4. Test Assertions for JMS Bindings Specification Section 5 56

A.5. Test Assertions for JMS Bindings Specification Section 6 56

Appendix B. Cross Mapping of Normative Statements to Test Assertions 63

Appendix C. Cross Mapping of Test Assertions to TestCases 65

Appendix D. Acknowledgments 68

Appendix E. Revision History 69



1Introduction

This document defines the TestCases for the SCA JMS Binding specification [SCA-JMS].

The tests described in this document are derived from the normative statements in SCA JMS Binding specification via Test Assertions which are described in Appendix A, “Test Assertions for the JMS Binding.

1.1TestCase Structure

The SCA JMS Binding test cases follow a standard structure. They are divided into two main parts:

  1. JMS Test Client, which drives the test and checks that the results are as expected

  2. SCA Test Application which consists of SCA Composites, WSDL files, XSDs and code artifacts such as Java classes, organized into a series of SCA contributions

The basic idea is that the SCA Test Application runs on the SCA runtime that is under test, while the JMS Test Client runs as a standalone application, invoking and being invoked by the Test Application through one or more service interfaces.

JMS Test Client

The JMS Test Client is designed as a standalone Java application. The version built here is a Java application which uses the JUnit test framework.

The JMS Test Client is structured to contain configuration information about the testcase, which consists of:

  1. metadata identifying the SCA Test Application in terms of the SCA Contributions that are used and the Composites that must be deployed and run

  2. data indicating which service operation(s) must be invoked with input data and expected output data (including exceptions for expected failure cases)

The JMS Test Client consists of a base runtime class, BaseJMSTestCase.java. Each actual testcase is implemented by a small class which extends the base runtime class. The bulk of the code required to run a test is held in the base runtime class. The small testcase class contains the configuration for the specific test, which it provides to the code in the base runtime class through a standard interface.

The JMS Test Client base runtime class is structured so that there is a replaceable class called the RuntimeBridge, which is used to communicate with the SCA runtime under test, for the purposes of deploying and running the test application. Each SCA runtime provider can produce a version of this class. The code within the runtime bridge is likely to be highly proprietary and specific to the SCA runtime for which it is written. Which runtime bridge class is used at runtime is controlled by an environment variable or system variable with the name "OASIS_TESTENV_RUNTIME_BRIDGE_CLASS", which is read by the code in BaseJMSTestCase.

The JMS Test Client uses JMS to communicate with the SCA Test Application. Tests involve SCA services and references with JMS bindings, and possibly with bidirectional interfaces. Each SCA Test Application consists of one top level SCA Composite file and its associated artifacts (implementations, interface files), plus the JMS Test Client described above.

A typical test application has a design where the top level composite offers a single service to the JMS Test Client application over a JMS binding. The top level composite contains one component which offers the service that is used by the client application, and may have a single reference which invokes the JMS Test Client.

Test Artifacts Organization

Note that the design of these testcases promotes reuse of artifacts between testcases, so that many testcases share components. For example, components implementing simple invokable services are all implemented using a single parameterized implementation artifact.

All the test artifacts are contained in a number of Contributions, which are simply filesystem directories which are all peers in the filesystem hierarchy. The names of the directories are the names of the Contributions and the names are significant. The names of Contributions containing implementation type specific artifacts (such as Java classes) are also specially structured to allow for replacement of one type of implementation artifact with another.

Broadly, Contribution names are as follows:

1.2Namespaces and Java Package Names

The SCA JMS Binding testcase suite makes use of some XML namespaces and Java package names, as follows:

SCA Artifact Namespaces

These apply to artifacts such as Composites

http://docs.oasis-open.org/ns/opencsa/scatests/200903

WSDL Namespace

http://test.sca.oasisopen.org/

Java Package name

For Java interface classes and for Java implementation classes

org.oasisopen.sca.test

1.3Terminology

The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this specification are to be interpreted as described in IETF RFC 2119 [RFC 2119].

1.4Normative References

[RFC 2119] S. Bradner. Key words for use in RFCs to Indicate Requirement Levels.
http://www.ietf.org/rfc/rfc2119.txt IETF RFC 2119, March 1997.

[SCA-JMS] OASIS Committee Specification Draft 05, SCA JMS Binding Specification Version 1.1, November 2010 http://docs.oasis-open.org/opencsa/sca-bindings/sca-jmsbinding-1.1-spec-csd05.pdf

[TA-GUIDE] OASIS Committee Draft 05, Test Assertions Guidelines Version 1.0, August 2010 http://docs.oasis-open.org/tag/guidelines/v1.0/cd05/testassertionsguidelines-cd-05.pdf

[IETFJMS] M. Phillips, P. Adams, D. Rokicki, E. Johnson, URI Scheme for JavaTM Message Service 1.0 , http://www.ietf.org/rfc/rfc6167.txt, IETF RFC 6167, April 2011

[JCA15] J2EE Connector Architecture Specification Version 1.5 http://java.sun.com/j2ee/connector/



1.5Non-normative References

N/A

2TestCases

2.1TestCases for JMS Bindings Specification Section 3

BJM_3001_TestCase

Testcase ID

BJM_3001_TestCase

Test Assertion

BJM-TA-30001

Description

Tests that the @uri attribute of a <binding.jms> element matches the syntax defined by the IETF URI Scheme for Java™ Message Service 1.0 [IETFJMS]

Artifacts

BJM_3001_TestCase.java

Test_BJM_3001.composite

TestInvocation.wsdl

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3002_1_TestCase

Testcase ID

BJM_3002_1_TestCase

Test Assertion

BJM-TA-30002

Description

Tests that when the @uri attribute is specified, the SCA runtime MUST raise an error if the referenced resources do not already exist

This is the test for the destination does not exist

Artifacts

BJM_3002_1_TestCase.java

Test_BJM_30002_1.composite

TestInvocation.wsdl

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3002_2_TestCase

Testcase ID

BJM_3002_2_TestCase

Test Assertion

BJM-TA-30002

Description

Tests that when the @uri attribute is specified, the SCA runtime MUST raise an error if the referenced resources do not already exist

This is the test for the connection factory does not exist

Artifacts

BJM_3002_2_TestCase.java

Test_BJM_3002_2.composite

TestInvocation.wsdl

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3003_TestCase

Testcase ID

BJM_3003_TestCase

Test Assertion

BJM-TA-30003

Description

Tests that when the @correlationScheme attribute is "sca:messageID" the SCA runtime MUST set the correlation ID of replies to the message ID of the corresponding request

Artifacts

BJM_3003_TestCase.java

Test_BJM_3003.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_3003 request message</return>”

BJM_3004_TestCase

Testcase ID

BJM_3004_TestCase

Test Assertion

BJM-TA-30004

Description

Tests that the correlation ID of a reply message is set to the value of the correlation ID of the corresponding request message when a request/reply operation is invoked.

Artifacts

BJM_3004_TestCase.java

Test_BJM_3004.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_3004 request message</return>”

BJM_3005_TestCase

Testcase ID

BJM_3005_TestCase

Test Assertion

BJM-TA-30005

Description

Tests that if the value of the @correlationScheme attribute is "sca:none" the SCA runtime MUST NOT set the correlation ID

Artifacts

BJM_3005_TestCase.java

Test_BJM_3005.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_3005 request message</return>”

BJM_3007_TestCase

Testcase ID

BJM_3007_TestCase

Test Assertion

BJM-TA-30007

Description

Tests that the correlation ID of request messages are set to a non-null value when using the sca:correlationID correlation scheme on a reference.

Artifacts

BJM_3007_TestCase.java

Test_BJM_3007.composite

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_3007 request message</return>”

BJM_3011A_TestCase

Testcase ID

BJM_3011A_TestCase

Test Assertion

BJM-TA-30011

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "always" and the @jndiName attribute is present and the resource cannot be created at the location specified by the @jndiName attribute then the SCA runtime MUST raise an error

This test is for the activationSpec

Artifacts

BJM_3011A_TestCase.java

Test_BJM_3011A.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3011C_TestCase

Testcase ID

BJM_3011C_TestCase

Test Assertion

BJM-TA-30011

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "always" and the @jndiName attribute is present and the resource cannot be created at the location specified by the @jndiName attribute then the SCA runtime MUST raise an error

This test is for the connectionFactory

Artifacts

BJM_3011C_TestCase.java

Test_BJM_3011C.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3011D_TestCase

Testcase ID

BJM_3011D_TestCase

Test Assertion

BJM-TA-30011

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "always" and the @jndiName attribute is present and the resource cannot be created at the location specified by the @jndiName attribute then the SCA runtime MUST raise an error

This test is for the destination

Artifacts

BJM_3011D_TestCase.java

Test_BJM_3011D.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3012A_TestCase

Testcase ID

BJM_3012A_TestCase

Test Assertion

BJM-TA-30012

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "ifNotExist" then the @jndiName attribute MUST specify the location of the possibly existing resource

This test is for the activationSpec

Artifacts

BJM_3012A_TestCase.java

Test_BJM_3012A.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3012C_TestCase

Testcase ID

BJM_3012C_TestCase

Test Assertion

BJM-TA-30012

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "ifNotExist" then the @jndiName attribute MUST specify the location of the possibly existing resource

This test is for the connectionFactory

Artifacts

BJM_3012C_TestCase.java

Test_BJM_3012C.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3012D_TestCase

Testcase ID

BJM_3012D_TestCase

Test Assertion

BJM-TA-30012

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "ifNotExist" then the @jndiName attribute MUST specify the location of the possibly existing resource

This test is for the destination

Artifacts

BJM_3012D_TestCase.java

Test_BJM_3012D.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3014A_TestCase

Testcase ID

BJM_3014A_TestCase

Test Assertion

BJM-TA-30014

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "ifNotExist" and the @jndiName attribute refers to an existing resource that is not a JMS Destination of the approprate type, a JMS connection factory or a JMS activation spec respectively then the SCA runtime MUST raise an error

This test is for the activationSpec

Artifacts

BJM_3014A_TestCase.java

Test_BJM_3014A.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3014C_TestCase

Testcase ID

BJM_3014C_TestCase

Test Assertion

BJM-TA-30014

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "ifNotExist" and the @jndiName attribute refers to an existing resource that is not a JMS Destination of the approprate type, a JMS connection factory or a JMS activation spec respectively then the SCA runtime MUST raise an error

This test is for the connectionFactory

Artifacts

BJM_3014C_TestCase.java

Test_BJM_3014C.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3014D_TestCase

Testcase ID

BJM_3014D_TestCase

Test Assertion

BJM-TA-30014

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "ifNotExist" and the @jndiName attribute refers to an existing resource that is not a JMS Destination of the approprate type, a JMS connection factory or a JMS activation spec respectively then the SCA runtime MUST raise an error

This test is for the destination

Artifacts

BJM_3014D_TestCase.java

Test_BJM_3014D.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3015Aa_TestCase

Testcase ID

BJM_3015Aa_TestCase

Test Assertion

BJM-TA-30015

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "never" and the @jndiName attribute is not specified, or the resource is not present at the location identified by the @jndiName attribute, or the location refers to a resource of an incorrect type then the SCA runtime MUST raise an error

This test is for activationspec and no @jndiName

Artifacts

BJM_3015Aa_TestCase.java

Test_BJM_30145Aa.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3015Ab_TestCase

Testcase ID

BJM_3015Ab_TestCase

Test Assertion

BJM-TA-30015

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "never" and the @jndiName attribute is not specified, or the resource is not present at the location identified by the @jndiName attribute, or the location refers to a resource of an incorrect type then the SCA runtime MUST raise an error

This test is for activationspec and resource not present

Artifacts

BJM_3015Ab_TestCase.java

Test_BJM_30145Ab.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3015Ac_TestCase

Testcase ID

BJM_3015Ac_TestCase

Test Assertion

BJM-TA-30015

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "never" and the @jndiName attribute is not specified, or the resource is not present at the location identified by the @jndiName attribute, or the location refers to a resource of an incorrect type then the SCA runtime MUST raise an error

This test is for activationspec and resource wrong type

Artifacts

BJM_3015Ac_TestCase.java

Test_BJM_30145Ac.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3015Ca_TestCase

Testcase ID

BJM_3015Ca_TestCase

Test Assertion

BJM-TA-30015

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "never" and the @jndiName attribute is not specified, or the resource is not present at the location identified by the @jndiName attribute, or the location refers to a resource of an incorrect type then the SCA runtime MUST raise an error

This test is for connectionFactory and no @jndiName

Artifacts

BJM_3015Ca_TestCase.java

Test_BJM_30145Ca.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3015Cb_TestCase

Testcase ID

BJM_3015Cb_TestCase

Test Assertion

BJM-TA-30015

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "never" and the @jndiName attribute is not specified, or the resource is not present at the location identified by the @jndiName attribute, or the location refers to a resource of an incorrect type then the SCA runtime MUST raise an error

This test is for connectionFactory and resource not present

Artifacts

BJM_3015Cb_TestCase.java

Test_BJM_30145Cb.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3015Cc_TestCase

Testcase ID

BJM_3015Cc_TestCase

Test Assertion

BJM-TA-30015

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "never" and the @jndiName attribute is not specified, or the resource is not present at the location identified by the @jndiName attribute, or the location refers to a resource of an incorrect type then the SCA runtime MUST raise an error

This test is for connectionFactory and resource wrong type

Artifacts

BJM_3015Cc_TestCase.java

Test_BJM_30145Cc.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3015Da_TestCase

Testcase ID

BJM_3015Da_TestCase

Test Assertion

BJM-TA-30015

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "never" and the @jndiName attribute is not specified, or the resource is not present at the location identified by the @jndiName attribute, or the location refers to a resource of an incorrect type then the SCA runtime MUST raise an error

This test is for destination and no @jndiName

Artifacts

BJM_3015Da_TestCase.java

Test_BJM_30145Da.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3015Db_TestCase

Testcase ID

BJM_3015Db_TestCase

Test Assertion

BJM-TA-30015

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "never" and the @jndiName attribute is not specified, or the resource is not present at the location identified by the @jndiName attribute, or the location refers to a resource of an incorrect type then the SCA runtime MUST raise an error

This test is for destination and resource not present

Artifacts

BJM_3015Db_TestCase.java

Test_BJM_3015Db.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3015Dc_TestCase

Testcase ID

BJM_3015Dc_TestCase

Test Assertion

BJM-TA-30015

Description

Tests when the @create attribute value for a destination, connectionFactory or activationSpec element is "never" and the @jndiName attribute is not specified, or the resource is not present at the location identified by the @jndiName attribute, or the location refers to a resource of an incorrect type then the SCA runtime MUST raise an error

This test is for destination and resource wrong type

Artifacts

BJM_3015Dc_TestCase.java

Test_BJM_3015Dc.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3017_TestCase

Testcase ID

BJM_3017_TestCase

Test Assertion

BJM-TA-30017

Description

Tests that a binding.jms element MUST NOT include both a connectionFactory element and an activationSpec element

Artifacts

BJM_3017_TestCase.java

Test_BJM_3017.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3018_TestCase

Testcase ID

BJM_3018_TestCase

Test Assertion

BJM-TA-30018

Description

Tests when the connectionFactory element is present, then the destination MUST be defined either by the destination element or the @uri attribute

Artifacts

BJM_3018_TestCase.java

Test_BJM_3018.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3020_TestCase

Testcase ID

BJM_3020_TestCase

Test Assertion

BJM-TA-30020

Description

Tests that the activationSpec element MUST NOT be present when the binding is being used for an SCA reference

Artifacts

BJM_3020_TestCase.java

Test_BJM_3020.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3021_TestCase

Testcase ID

BJM_3021_TestCase

Test Assertion

BJM-TA-30021

Description

Tests that a response element MUST NOT include both a connectionFactory element and an activationSpec element

Artifacts

BJM_3021_TestCase.java

Test_BJM_3021.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3023_TestCase

Testcase ID

BJM_3023_TestCase

Test Assertion

BJM-TA-30023

Description

Tests that the response/activationSpec element MUST NOT be present when the binding is being used for an SCA service

Artifacts

BJM_3023_TestCase.java

Test_BJM_3023.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3024_1_TestCase

Testcase ID

BJM_3024_1_TestCase

Test Assertion

BJM-TA-30024

Description

Tests when sending messages for a JMS binding, the SCA runtime MUST set each of the JMSType, JMSDeliveryMode, JMSTimeToLive and JMSPriority headers to values specified in the binding definition in the following priority order:

1) the value for the header specified in the @uri attribute (highest priority);

2) the value for the header specified in the operationProperties/headers element matching the operation being invoked;

3) the value for the header specified in the headers element;

4) the default value for the header as specified by the definition of the binding.jms/headers element (lowest priority)

This is the URI case

Artifacts

BJM_3024_1_TestCase.java

Test_BJM_3024_1.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><arg0>service1 operation1 invoked with BJM_3024 request message</arg0>”

BJM_3024_2_TestCase

Testcase ID

BJM_3024_2_TestCase

Test Assertion

BJM-TA-30024

Description

Tests when sending messages for a JMS binding, the SCA runtime MUST set each of the JMSType, JMSDeliveryMode, JMSTimeToLive and JMSPriority headers to values specified in the binding definition in the following priority order:

1) the value for the header specified in the @uri attribute (highest priority);

2) the value for the header specified in the operationProperties/headers element matching the operation being invoked;

3) the value for the header specified in the headers element;

4) the default value for the header as specified by the definition of the binding.jms/headers element (lowest priority)

This is the operationProperties case

Artifacts

BJM_3024_2_TestCase.java

Test_BJM_3024_2.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><arg0>service1 operation1 invoked with BJM_3024 request message</arg0>”

BJM_3024_3_TestCase

Testcase ID

BJM_3024_3_TestCase

Test Assertion

BJM-TA-30024

Description

Tests when sending messages for a JMS binding, the SCA runtime MUST set each of the JMSType, JMSDeliveryMode, JMSTimeToLive and JMSPriority headers to values specified in the binding definition in the following priority order:

1) the value for the header specified in the @uri attribute (highest priority);

2) the value for the header specified in the operationProperties/headers element matching the operation being invoked;

3) the value for the header specified in the headers element;

4) the default value for the header as specified by the definition of the binding.jms/headers element (lowest priority)

This is the header case

Artifacts

BJM_3024_3_TestCase.java

Test_BJM_3024_3.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><arg0>service1 operation1 invoked with BJM_3024 request message</arg0>”

BJM_3024_4_TestCase

Testcase ID

BJM_3024_4_TestCase

Test Assertion

BJM-TA-30024

Description

Tests when sending messages for a JMS binding, the SCA runtime MUST set each of the JMSType, JMSDeliveryMode, JMSTimeToLive and JMSPriority headers to values specified in the binding definition in the following priority order:

1) the value for the header specified in the @uri attribute (highest priority);

2) the value for the header specified in the operationProperties/headers element matching the operation being invoked;

3) the value for the header specified in the headers element;

4) the default value for the header as specified by the definition of the binding.jms/headers element (lowest priority)

This is the default case

Artifacts

BJM_3024_4_TestCase.java

Test_BJM_3024_4.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><arg0>service1 operation1 invoked with BJM_3024 request message</arg0>”

BJM_3025_1_TestCase

Testcase ID

BJM_3025_1_TestCase

Test Assertion

BJM-TA-30025

Description

Tests when sending messages for a JMS binding, the SCA runtime MUST set each named user property with type and value specified in the binding definition in the following priority order:

1) the type and value for the named user property specified in an operationProperties/headers/property element matching the name of the operation being invoked (highest priority);

2) the type and value for the named user property specified in a headers/property element (lowest priority)

This is the operationProperties case

Artifacts

BJM_3025_1_TestCase.java

Test_BJM_3025_1.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><arg0>service1 operation1 invoked with BJM_3025 request message</arg0>”

BJM_3025_2_TestCase

Testcase ID

BJM_3025_2_TestCase

Test Assertion

BJM-TA-30025

Description

Tests when sending messages for a JMS binding, the SCA runtime MUST set each named user property with type and value specified in the binding definition in the following priority order:

1) the type and value for the named user property specified in an operationProperties/headers/property element matching the name of the operation being invoked (highest priority);

2) the type and value for the named user property specified in a headers/property element (lowest priority)

This is the headers case

Artifacts

BJM_3025_2_TestCase.java

Test_BJM_3025_2.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><arg0>service1 operation1 invoked with BJM_3025 request message</arg0>”

BJM_3026_1_TestCase

Testcase ID

BJM_3026_1_TestCase

Test Assertion

BJM-TA-30026

Description

Tests when receiving messages for a JMS binding, the SCA runtime MUST use a message selector if specified in the binding definition in the following priority order:

1) the value for the message selector specified in the @uri attribute value's "selector" parameter (highest priority);

2) the value for the message selector specified in the messageSelection/@selector attribute;

3) otherwise no message selector is used (lowest priority)

This is the @uri case

Artifacts

BJM_3026_1_TestCase.java

Test_BJM_3026_1.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_3026 type1 message</return>”

BJM_3026_2_TestCase

Testcase ID

BJM_3026_2_TestCase

Test Assertion

BJM-TA-30026

Description

Tests when receiving messages for a JMS binding, the SCA runtime MUST use a message selector if specified in the binding definition in the following priority order:

1) the value for the message selector specified in the @uri attribute value's "selector" parameter (highest priority);

2) the value for the message selector specified in the messageSelection/@selector attribute;

3) otherwise no message selector is used (lowest priority)

This is the messageSelection case

Artifacts

BJM_3026_2_TestCase.java

Test_BJM_3026_2.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_3026 type1 message</return>”

BJM_3026_3_TestCase

Testcase ID

BJM_3026_3_TestCase

Test Assertion

BJM-TA-30026

Description

Tests when receiving messages for a JMS binding, the SCA runtime MUST use a message selector if specified in the binding definition in the following priority order:

1) the value for the message selector specified in the @uri attribute value's "selector" parameter (highest priority);

2) the value for the message selector specified in the messageSelection/@selector attribute;

3) otherwise no message selector is used (lowest priority)

This is the default case

Artifacts

BJM_3026_3_TestCase.java

Test_BJM_3026_3.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_3026 request message</return>”

BJM_3029_TestCase

Testcase ID

BJM_3029_TestCase

Test Assertion

BJM-TA-30029

Description

Tests that the value of the operationProperties/@selectedOperation attribute MUST be unique across the containing binding.jms element

Artifacts

BJM_3029_TestCase.java

Test_BJM_3029.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3031_TestCase

Testcase ID

BJM_3031_TestCase

Test Assertion

BJM-TA-30031

Description

Tests that the resourceAdapter element MUST be present when JMS resources are to be created for a JMS provider that implements the JCA 1.5 Specification [JCA15] specification, and is ignored otherwise

Artifacts

BJM_3031_TestCase.java

Test_BJM_3031.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_3031 request message</return>”

BJM_3034_TestCase

Testcase ID

BJM_3034_TestCase

Test Assertion

BJM-TA-30034

Description

Tests when the @uri attribute is specified, the destination element MUST NOT be present

Artifacts

BJM_3034_TestCase.java

Test_BJM_3034.composite

Service1.wsdl

Expected output

Negative test:

exception”

BJM_3036_TestCase

Testcase ID

BJM_3036_TestCase

Test Assertion

BJM-TA-30036

Description

Tests that the binding.jms element MUST conform to the XML schema defined in sca-bindingjms-1.1.xsd

Artifacts

BJM_3036_TestCase.java

Test_BJM_3036.composite

Service1.wsdl

Expected output

Negative test:

exception”

2.2TestCases for JMS Bindings Specification Section 4

BJM_4001_TestCase

Testcase ID

BJM_4001_TestCase

Test Assertion

BJM-TA-40001

Description

Tests The SCA runtime MUST support the default JMS wire format and operation selector behavior

Artifacts

BJM_4001_TestCase.java

Test_BJM_4001.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_4001 request message</return>”

BJM_4002_1_TestCase

Testcase ID

BJM_4002_1_TestCase

Test Assertion

BJM-TA-40002

Description

Tests if operationSelector.jmsDefault is used if no operationSelector element is specified

This tests if there is only one operation on the service's interface, then that operation is the selected operation name

Artifacts

BJM_4002_TestCase.java

Test_BJM_4002.composite

TestComposite21.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_4002_1 request message</return>”

BJM_4002_2_TestCase

Testcase ID

BJM_4002_2_TestCase

Test Assertion

BJM-TA-40002

Description

Tests if operationSelector.jmsDefault is used if no operationSelector element is specified

This tests when more than one operation in the interface; the JMS user property "scaOperationName" is present and the value of that user property is used as the selected operation name

Artifacts

BJM_4002_2_TestCase.java

Test_BJM_4002.composite

TestComposite21.composite

Service2.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service2 operation2 invoked with BJM_4002_2 request message</return>”

BJM_4002_3_TestCase

Testcase ID

BJM_4002_3_TestCase

Test Assertion

BJM-TA-40002

Description

Tests if operationSelector.jmsDefault is used if no operationSelector element is specified

This tests when more than one operation in the interface; no scaOperationName user property; the message is a JMS text or bytes message containing XML, and the selected operation name is the local name of the root element of the XML payload.

Artifacts

BJM_4002_3_TestCase.java

Test_BJM_4002.composite

TestComposite21.composite

Service2.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service2 operation2 invoked with BJM_4002 request message</return>”

BJM_4002_4_TestCase

Testcase ID

BJM_4002_4_TestCase

Test Assertion

BJM-TA-40002

Description

Tests if operationSelector.jmsDefault is used if no operationSelector element is specified

This tests when more than one operation in the interface; no scaOperationName user property; no top-level XML element in the message body matching an operation name; the selected operation name is "onMessage”

Artifacts

BJM_4002_4_TestCase.java

Test_BJM_4002.composite

TestComposite21.composite

Service5.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service5 onMessage invoked with BJM_4002_4 request message</return>”

BJM_4003_TestCase

Testcase ID

BJM_4003_TestCase

Test Assertion

BJM-TA-40003

Description

Tests when using the default wire format to send request messages, if there is a single parameter and the interface includes more than one operation, the SCA runtime MUST set the JMS user property "scaOperationName" to the name of the operation being invoked

Artifacts

BJM_4003_TestCase.java

Test_BJM_4003.composite

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>Service2Impl2.operation1 service1 operation1 invoked with BJM_4003 request message</return>”

BJM_4004_TestCase

Testcase ID

BJM_4004_TestCase

Test Assertion

BJM-TA-40004

Description

Tests if no wireFormat element is specified in a JMS binding then SCA runtimes MUST use wireFormat.jmsDefault as the default

Artifacts

BJM_4004_TestCase.java

Test_BJM_4004.composite

TestComposite1.composite

Service1.wsdl

Expected output

Negative test:

exception

BJM_4004_2_TestCase

Testcase ID

BJM_4004_2_TestCase

Test Assertion

BJM-TA-40004

Description

Tests if no wireFormat element is specified in a JMS binding then SCA runtimes MUST use wireFormat.jmsDefault as the default

Artifacts

BJM_4004_2_TestCase.java

Test_BJM_4004.composite

TestComposite1.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_4004 request message</return>”

BJM_4005T_TestCase

Testcase ID

BJM_4005T_TestCase

Test Assertion

BJM-TA-40005

Description

Tests When using the default wire format an SCA runtime MUST be able to receive both JMS text and bytes messages

This is the Text message test

Artifacts

BJM_4005T_TestCase.java

Test_BJM_4005.composite

TestComposite1.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_4005 request message</return>”

BJM_4005B_TestCase

Testcase ID

BJM_4005B_TestCase

Test Assertion

BJM-TA-40005

Description

Tests When using the default wire format an SCA runtime MUST be able to receive both JMS text and bytes messages

This is the Bytes message test

Artifacts

BJM_4005B_TestCase.java

Test_BJM_4005.composite

TestComposite1.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_4005 request message</return>”

BJM_4006_TestCase

Testcase ID

BJM_4006_TestCase

Test Assertion

BJM-TA-40006

Description

Tests when using the default wire format an SCA runtime MUST send either a JMS text or a JMS bytes message

Artifacts

BJM_4006_TestCase.java

Test_BJM_4006.composite

TestComposite34.composite

Service3.wsdl

Expected output

Positive test:

Reply message is BytesMessage or TextMessage”

BJM_4008_TestCase

Testcase ID

BJM_4008_TestCase

Test Assertion

BJM-TA-40008

Description

Tests when a binding.jms element specifies the operationSelector.jmsDefault element, the SCA runtime MUST use the default operation selection algorithm to determine the selected operation

Artifacts

BJM_4008_TestCase.java

Test_BJM_4008.composite

TestComposite21.composite

Service2.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service2 operation2 invoked with BJM_4008 request message</return>”

BJM_4009_TestCase

Testcase ID

BJM_4009_TestCase

Test Assertion

BJM-TA-40009

Description

Tests when a binding.jms element specifies the wireFormat.jmsDefault element, the SCA runtime MUST use the default wire format

Artifacts

BJM_4009_TestCase.java

Test_BJM_4009.composite

TestComposite1.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_4009 request message</return>”

BJM_4010_TestCase

Testcase ID

BJM_4010_TestCase

Test Assertion

BJM-TA-40010

Description

Tests when a message is received at an SCA service with JMS binding and the resolved operation name is in the target component's interface, the SCA runtime MUST invoke the target component using the resolved operation name

Artifacts

BJM_4010_TestCase.java

Test_BJM_4010.composite

TestComposite21.composite

Service2.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service2 operation2 invoked with BJM_4010 request message</return>”

BJM_4011_TestCase

Testcase ID

BJM_4011_TestCase

Test Assertion

BJM-TA-40011

Description

Tests when a message is received at an SCA service with JMS binding and the resolved operation name is not in the target component's interface the SCA runtime MUST raise an error

Artifacts

BJM_4011_TestCase.java

Test_BJM_4011.composite

TestComposite21.composite

Service2.wsdl

Expected output

Negative test:

exception”

2.3TestCases for JMS Bindings Specification Section 5

BJM_5001_TestCase

Testcase ID

BJM_5001_TestCase

Test Assertion

BJM-TA-50001

Description

Tests that the JMS binding implementations MUST support the JMS intent

Artifacts

BJM_5001_TestCase.java

Test_BJM_5001.composite

TestComposite1.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_5001 request message</return>”

BJM_6002_TestCase

Testcase ID

BJM_6002_TestCase

Test Assertion

BJM-TA-60002

Description

Tests that for an SCA service with a JMS binding and unidirectional interface, when a request message is received as part of a one-way MEP, the SCA runtime MUST ignore the JMSReplyTo destination header in the JMS message, and not raise an error

Artifacts

BJM_6002_TestCase.java

Test_BJM_6002.composite

TestComposite34.composite

Service3.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><arg0>service3 operation1 invoked with BJM_6002 request message</arg0>”

2.4TestCases for JMS Bindings Specification Section 6

BJM_6003_1_TestCase

Testcase ID

BJM_6003_1_TestCase

Test Assertion

BJM-TA-60003

Description

Tests that for an SCA reference with a JMS binding that has a destination specified via the response element, the SCA runtime MUST receive response messages as defined by the binding's @correlationScheme attribute.

This is the test for the messageID correlation scheme

Artifacts

BJM_6003_1_TestCase.java

Test_BJM_6003.composite

Service1.wsdl

TestComposite1.composite

TestInvocation.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked service1 operation1 invoked with BJM_6003_1 request message</return>”

BJM_6003_2_TestCase

Testcase ID

BJM_6003_2_TestCase

Test Assertion

BJM-TA-60003

Description

Tests that for an SCA reference with a JMS binding that has a destination specified via the response element, the SCA runtime MUST receive response messages as defined by the binding's @correlationScheme attribute.

This is the test for the correlationID correlation scheme

Artifacts

BJM_6003_2_TestCase.java

Test_BJM_6003.composite

Service1.wsdl

TestComposite1.composite

TestInvocation.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked service1 operation1 invoked with BJM_6003_2 request message</return>”

BJM_6003_3_TestCase

Testcase ID

BJM_6003_3_TestCase

Test Assertion

BJM-TA-60003

Description

Tests that for an SCA reference with a JMS binding that has a destination specified via the response element, the SCA runtime MUST receive response messages as defined by the binding's @correlationScheme attribute.

This is the test for the none correlation scheme

Artifacts

BJM_6003_3_TestCase.java

Test_BJM_6003.composite

Service1.wsdl

TestComposite1.composite

TestInvocation.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked service1 operation1 invoked with BJM_6003_3 request message</return>”

BJM_6004_TestCase

Testcase ID

BJM_6004_TestCase

Test Assertion

BJM-TA-60004

Description

Tests that for an SCA reference with a JMS binding, when a request message is sent as part of a request/response MEP, and the JMS binding has a response element with a destination defined, then the SCA runtime MUST use that destination for the JMSReplyTo header in the JMS message it creates for the request

Artifacts

BJM_6004_TestCase.java

Test_BJM_6004.composite

Expected output

Positive test:

JMSReplyTo is as expected”

BJM_6005_TestCase

Testcase ID

BJM_6005_TestCase

Test Assertion

BJM-TA-60005

Description

Tests that for an SCA reference with a JMS binding, when a request message is sent as part of a request/response MEP, and the JMS binding does not have a response element with a destination defined, the SCA runtime MUST provide an appropriate destination on which to receive response messages and use that destination for the JMSReplyTo header in the JMS message it creates for the request

Artifacts

BJM_6005_TestCase.java

Test_BJM_6005.composite

Expected output

Positive test:

JMSReplyTo is set”

BJM_6007_TestCase

Testcase ID

BJM_6007_TestCase

Test Assertion

BJM-TA-60007

Description

Tests that for an SCA service with a JMS binding, when a response message is sent as part of a request/response MEP where the request message included a non-null JMSReplyTo destination, the SCA runtime MUST send the response message to that destination

Artifacts

BJM_6007_TestCase.java

Test_BJM_6007.composite

Service1.wsdl

TestComposite1.composite

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_6007 request message</return>”

BJM_6007_2_TestCase

Testcase ID

BJM_6007_2_TestCase

Test Assertion

BJM-TA-60007

Description

Tests that for an SCA service with a JMS binding, when a response message is sent as part of a request/response MEP where the request message included a non-null JMSReplyTo destination, the SCA runtime MUST send the response message to that destination

This is the case where the service binding includes a response destination, which should be ignored as the JMSReplyTo should be used.

Artifacts

BJM_6007_2_TestCase.java

Test_BJM_6007.composite

Service1.wsdl

TestComposite1.composite

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_6007 request message</return>”

BJM_6008_TestCase

Testcase ID

BJM_6008_TestCase

Test Assertion

BJM-TA-60008

Description

Tests that for an SCA service with a JMS binding, when a response message is sent as part of a request/response MEP where the request message included a null JMSReplyTo destination and the JMS binding includes a response/destination element the SCA runtime MUST send the response message to that destination

Artifacts

BJM_6008_TestCase.java

Test_BJM_6008.composite

TestComposite1.composite

Service1.wsdl

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><return>service1 operation1 invoked with BJM_6008 request message</return>”

BJM_6011_TestCase

Testcase ID

BJM_6011_TestCase

Test Assertion

BJM-TA-60011

Description

Tests that for an SCA reference with a JMS binding and a bidirectional interface, when a request message is sent as part of a request/response MEP the SCA runtime MUST set the scaCallbackDestination user property in the message it creates to a JMS URI string, in the format defined by the IETF URI Scheme for Java Message Service 1.0 [IETFJMS] , that identifies the destination to which callback messages are to be sent

Artifacts

BJM_6011_TestCase.java

Test_BJM_6011.composite

Service3Impl3.java

Expected output

Positive test:

scaCallbackDestination property is a jms URI”

BJM_6012_TestCase

Testcase ID

BJM_6012_TestCase

Test Assertion

BJM-TA-60012

Description

Tests that for an SCA reference with a JMS binding and bidirectional interface, when a request message is sent as part of a one-way MEP the SCA runtime MUST set the destination to which callback messages are to be sent as the JMSReplyTo destination in the message it creates

Artifacts

BJM_6012_TestCase.java

Test_BJM_6012.composite

Service3Impl4.java

Expected output

Positive test:

JMSReplyTo is set”

BJM_6013_TestCase

Testcase ID

BJM_6013_TestCase

Test Assertion

BJM-TA-60013

Description

Tests that for an SCA reference with a JMS binding and bidirectional interface, when a request message is sent as part of a request/response MEP, the SCA runtime MUST set the JMSReplyTo header in the message it creates as described in section 6.2

Artifacts

BJM_6013_TestCase.java

Test_BJM_6013.composite

Service3Impl3.java

Expected output

Positive test:

JMSReplyTo header is set”

BJM_6013_2_TestCase

Testcase ID

BJM_6013_2_TestCase

Test Assertion

BJM-TA-60013

Description

Tests that for an SCA reference with a JMS binding and bidirectional interface, when a request message is sent as part of a request/response MEP, the SCA runtime MUST set the JMSReplyTo header in the message it creates as described in section 6.2

Artifacts

BJM_6013_2_TestCase.java

Test_BJM_6013_2.composite

Service3Impl3.java

Expected output

Positive test:

JMSReplyTo header is set as expected”

BJM_6014_1_1_TestCase

Testcase ID

BJM_6014_1_1_TestCase

Test Assertion

BJM-TA-60014

Description

Tests that for an SCA reference with a JMS binding and bidirectional interface, the SCA runtime MUST identify the callback destination from the reference's callback service binding if present, or supply a suitable callback destination if not present

This is the test for the destination defined on the callback binding using a uri attribute

Artifacts

BJM_6014_1_1_TestCase.java

Test_BJM_6014_1_1.composite

Service3Impl3.java

Expected output

Positive test:

scaCallbackDestination property is a jms URI”

BJM_6014_1_2_TestCase

Testcase ID

BJM_6014_1_2_TestCase

Test Assertion

BJM-TA-60014

Description

Tests that for an SCA reference with a JMS binding and bidirectional interface, the SCA runtime MUST identify the callback destination from the reference's callback service binding if present, or supply a suitable callback destination if not present

This is the case where the callback destination is specified on the binding by a destination element

Artifacts

BJM_6014_1_2_TestCase.java

Test_BJM_6014_1_2.composite

Service3Impl3.java

Expected output

Positive test:

scaCallbackDestination property is a jms URI”

BJM_6014_2_TestCase

Testcase ID

BJM_6014_2_TestCase

Test Assertion

BJM-TA-60014

Description

Tests that for an SCA reference with a JMS binding and bidirectional interface, the SCA runtime MUST identify the callback destination from the reference's callback service binding if present, or supply a suitable callback destination if not present

This is the test for the destination defined on the callback binding using a <destination> element

Artifacts

BJM_6014_2_TestCase.java

Test_BJM_6014_2.composite

Service3Impl3.java

Expected output

Positive test:

scaCallbackDestination property is a jms URI”

BJM_6015_1_TestCase

Testcase ID

BJM_6015_1_TestCase

Test Assertion

BJM-TA-60015

Description

For an SCA service with a JMS binding, when a callback request message is sent for either a one-way or request/response MEP, the SCA runtime MUST send the callback request message to the callback destination.

This is test for the service callback binding identifying the callback destination

Artifacts

BJM_6015_1_TestCase.java

Test_BJM_6015.composite

Service4Impl1.java

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><arg0>onewayOperation1 callback request</arg0>”

BJM_6015_2_TestCase

Testcase ID

BJM_6015_2_TestCase

Test Assertion

BJM-TA-60015

Description

For an SCA service with a JMS binding, when a callback request message is sent for either a one-way or request/response MEP, the SCA runtime MUST send the callback request message to the callback destination.

This is test for the scaCallbackDestination property identifying the callback destination

Artifacts

BJM_6015_2_TestCase.java

Test_BJM_6015.composite

Service4Impl1.java

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><arg0>onewayOperation1 callback request</arg0>”

BJM_6015_3_TestCase

Testcase ID

BJM_6015_3_TestCase

Test Assertion

BJM-TA-60015

Description

For an SCA service with a JMS binding, when a callback request message is sent for either a one-way or request/response MEP, the SCA runtime MUST send the callback request message to the callback destination.

This is test for the JMS replyTo property identifying the callback destination

Artifacts

BJM_6015_3_TestCase.java

Test_BJM_6015.composite

Service4Impl1.java

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><arg0>onewayOperation1 callback request</arg0>”

BJM_6016_TestCase

Testcase ID

BJM_6016_TestCase

Test Assertion

BJM-TA-60016

Description

Tests that for an SCA service with a JMS binding, when a callback request message is sent and no callback destination can be identified then the SCA runtime MUST raise an errorand throw an exception to the caller of the callback operation.

Artifacts

BJM_6016_TestCase.java

Test_BJM_6016.composite

Service4Impl1.java

Expected output

Negative test:

exception”

BJM_6017_1_TestCase

Testcase ID

BJM_6017_1_TestCase

Test Assertion

BJM-TA-60017

Description

Tests that for an SCA service with a JMS binding, when a callback request message is sent the SCA runtime MUST set the JMSReplyTo destination in the callback request message as defined in sections 6.1 or 6.2 as appropriate for the type of the callback operation invoked.

This is the section 6.2 request-response callback case so a replyTo should be set.

Artifacts

BJM_6017_1_TestCase.java

Test_BJM_6017.composite

Service4Impl2.java

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><arg0>onewayOperation1 callback request</arg0>”

BJM_6017_2_TestCase

Testcase ID

BJM_6017_2_TestCase

Test Assertion

BJM-TA-60017

Description

Tests that for an SCA service with a JMS binding, when a callback request message is sent the SCA runtime MUST set the JMSReplyTo destination in the callback request message as defined in sections 6.1 or 6.2 as appropriate for the type of the callback operation invoked.

This is the section 6.1 oneway callback case so no replyTo should be set.

Artifacts

BJM_6017_2_TestCase.java

Test_BJM_6017.composite

Service4Impl2.java

Expected output

Positive test:

<?xml version=\"1.0\" encoding=\"UTF-8\"?><arg0>operation1 callback request</arg0>”


3Catalog of Test Artifacts

3.1Composite Files - lower level

Name

Valid

Description

TestClient_0001.composite

Y

Test client invocation composite

1 service TestInvocation interface TestInvocation

1 reference reference1 (1..1) interface Service1

TestComposite1.composite

Y

1 service Service1 interface Service1

0 references

Service1Impl

TestComposite21.composite

Y

1 service Service2 interface Service2

0 references

Service2Impl

TestComposite34.composite

Y

1 service Service3 interface Service3

1 reference Reference3 interface Service3

Service3Impl

TestComposite4.composite

Y

1 service Service1 interface Service1

0 references

Service1Impl2

3.2Java Interfaces

Name

Description

Service1.java

Remotable interface with 1 operation “operation1”, string input and output

Service2.java

Remotable interface with 2 operations

operation1”, string input and output

operation2”, string input and output

Service3.java

Remotable interface with 1 oneway operation “operation1”, string input

Service4.java

Remotable interface with call back Service4Callback, with 2 operations

operation1”, string input and output

onewayOperation1”, string input

Service5.java

Remotable interface with 2 operations

onMessage”, string input and output

dummy”, string input and output

Service4Callback.java

Remotable interface with 2 operations

callbackMessage”, string input

callbackWithReply”, string input and output

TestInvocation.java

Remotable interface with 1 operation “invokeTest”, string input,string output

3.3Java Implementation Classes

Name

Description

Service1Impl.java

1 service “Service1”, 1 property “serviceName”

Service1Impl2.java

1 service “Service1”, 1 property “serviceName”, 1 reference “reference1”

Service2Impl.java

1 service “Service2”, 1 property “serviceName”

Service2Impl2.java

1 service “Service2”, 1 references “reference1”

Service3Impl2.java

1 service “Service3”, 1 property “serviceName”, 1 reference “reference3”

Service3Impl3.java

1 service “Service3”, 1 property “serviceName”, 1 reference “reference4”

Service3Impl4.java

1 service “Service3”, 1 property “serviceName”, 1 reference “reference4”

Service4Impl1.java

1 service “Service4”

Service4Impl2.java

1 service “Service4”

Service5Impl.java

1 service “Service5”, 1 property “serviceName”

BJM_0001_Client.java

1 service “TestInvocation”, 1 property “testName”, 1 reference “reference1”

3.4WSDL Interface Files

Name

Description

Service1.wsdl

Service1 interface

1 operation “operation1”, string input and output

Service2.wsdl

Service2 interface

2 operations

operation1”, string input and output

operation2”, string input and output

Service3.wsdl

Service3 interface

1 operation “operation1”, string input and no output

Service5.wsdl

Service5 interface

2 operations

onMessage”, string input and output

dummy”, string input and output

TestInvocation.wsdl

TestInvocation interface supplied by SCA

component to allow client application to invoke test

artifacts

1 operation:

- "invokeTest"

string input, string output

4Conformance

The artifacts contained in the sca-jmsbinding-1.1-testcases.zip file are considered to be authoritative and take precedence over the artifacts described in this document.

An implementation that claims to conform to this specification MUST be able to run all test cases in Section 2 TestCases, producing the 'Expected Output'.

  1. Test Assertions for the JMS Binding

This section defines the Test Assertions for the SCA JMS Binding specification, following the format defined in the OASIS Test Assertion Guidelines specification [TA-GUIDE].

    1. Example Test Assertion

Test assertions are presented in a tabular format with rows corresponding to the entry types defined in the OASIS Test Assertions Guidelines

Assertion ID

BJM-TA-nnnnn

 

[BJMnnnnn]

Target

<xyuvbghs/> element of composite file

Prerequisites

The [<xyuvbghs/> element] has a @foobar attribute

Predicate

The @foobar attribute of [the <xyuvbghs/> element] is a URI that references a foobar element in the SCA Domain-

Prescription Level

Mandatory

Tags

foobar references

Assertion ID: Is a unique ID for the test assertion. Its format starts with a 3 letter string that identifies the specification to which it relates - "BJM” for the SCA JMS Binding specification. This is followed by "-TA-" to indicate that this identifier is for a test assertion. This is then followed by a unique 5 digit number

Source: Is the identifier(s) of the normative statement(s) in the specification to which this assertion relates.

Target: Identifies the target which is addressed by this assertion. This is typically some SCA document element, but possibly could identify an SCA runtime and its behaviour.

Prerequisites: Defines any prerequisites for this test assertion. The prerequisites can be defined in terms of one or more other test assertions that have to be true.

Predicate: The meat of the assertion - something that evaluates to true or false for the given target.

Prescription Level: Mandatory (for “MUST” requirements) or Preferred (for “SHOULD” requirements) or Permitted (for “MAY” requirements).

Tags: Zero or more labels to be attached to this test assertion - these tags can be used to group sets of assertions.

    1. Test Assertions for JMS Bindings Specification Section 3

Assertion ID

BJM-TA-30001

Source

[BJM30001]

Target

The @uri attribute of a <binding.jms> element

Prerequisites

 

Predicate

The @uri attribute matches the syntax defined in [IETFJMS]

Prescription Level

Mandatory

Tags

uri



Assertion ID

BJM-TA-30002

Source

[BJM30002]

Target

The @uri attribute of a <binding.jms> element

Prerequisites

One or more of the JNDI resources identified by the destination and jndiConnectionFactoryName in the @uri attribute does not exist

Predicate

SCA runtime raises an error

Prescription Level

Mandatory

Tags

uri, jndi



Assertion ID

BJM-TA-30003

Source

[BJM30003]

Target

The @correlationScheme attribute of a <binding.jms> element

Prerequisites

1) <binding.jms> element child of a <service> element has the @correlationScheme attribute set to “sca:messageID”

2) the <service> element has an interface that includes at least one request/reply operation

Predicate

The correlation ID of a reply message is set to the value of the message ID of the corresponding request message when a request/reply operation is invoked

Prescription Level

Mandatory

Tags

request/reply, correlation, service



Assertion ID

BJM-TA-30004

Source

[BJM30004]

Target

The @correlationScheme attribute of a <binding.jms> element

Prerequisites

1) <binding.jms> element child of a <service> element has the @correlationScheme attribute set to “sca:correlationID”

2) the <service> element has an interface that includes at least one request/reply operation

Predicate

The correlation ID of a reply message is set to the value of the correlation ID of the corresponding request message when a request/reply operation is invoked

Prescription Level

Mandatory

Tags

request/reply, correlation, service



Assertion ID

BJM-TA-30005

Source

[BJM30005]

Target

The @correlationScheme attribute of a <binding.jms> element

Prerequisites

1) <binding.jms> element child of a <service> element has the @correlationScheme attribute set to “sca:none”

2) the <service> element has an interface that includes at least one request/reply operation

Predicate

The correlation ID of a reply message is unset when a request/reply operation is invoked

Prescription Level

Mandatory

Tags

request/reply, correlation, service

Assertion ID

BJM-TA-30007

Source

[BJM30007]

Target

The @correlationScheme attribute of a <binding.jms> element child of a <reference> element

Prerequisites

1) <binding.jms> element child of a <reference> element has the @correlationScheme attribute set to “sca:correlationID”

Predicate

The correlation ID of request messages is set to a non-null value.

Prescription Level

Mandatory

Tags

correlation, reference



Assertion ID

BJM-TA-30010

Source

[BJM30010]

Target

SCA Runtime

Prerequisites

  1. interface with at least one request/reply operation

  2. <service> with a child <binding.jms> element

JMS client application invokes request/reply operation

Predicate

One and only one response is received by the JMS client application

Prescription Level

Mandatory

Tags

request/reply, service

Comment

This is untestable as there is no defined timescale over which the second response could appear



Assertion ID

BJM-TA-30011

Source

[BJM30011]

Target

@create attribute of a <destination>, <connectionFactory> or <activationSpec> element

Prerequisites

1) @create attribute value is “always”

2) @jndiName attribute specified

3) Resource of the required type cannot be created at the JNDI location

Predicate

SCA runtime raises an error

Prescription Level

Mandatory

Tags

jndi, connectionFactory, activationSpec, destination



Assertion ID

BJM-TA-30012

Source

[BJM30012]

Target

@create attribute of a <destination>, <connectionFactory> or <activationSpec> element

Prerequisites

@create attribute value is “ifNotExist”

Predicate

The @jndiName attribute specifies the location of the resource

Prescription Level

Mandatory

Tags

jndi, connectionFactory, activationSpec, destination



Assertion ID

BJM-TA-30013

Source

[BJM30013]

Target

@create attribute of a <destination>, <connectionFactory> or <activationSpec> element

Prerequisites

1) @create attribute value is “ifNotExist”

2) @jndiName attribute specified

3) resource does not exist at given JNDI location, and cannot be created there

Predicate

SCA runtime raises an error

Prescription Level

Mandatory

Tags

jndi, connectionFactory, activationSpec, destination

Comment

Untestable as no portable way to simulate an internal failure to create JMS resources



Assertion ID

BJM-TA-30014

Source

[BJM30014]

Target

@jndiName attribute of a <destination>, <connectionFactory> or <activationSpec> element

Prerequisites

1) @create attribute value is “ifNotExist”

2) The @jndiName attribute refers to an existing resource

3) The existing resource is not of the correct type

Predicate

SCA runtime raises an error

Prescription Level

Mandatory

Tags

jndi, connectionFactory, activationSpec, destination



Assertion ID

BJM-TA-30015

Source

[BJM30015]

Target

@create attribute of a <destination>, <connectionFactory> or <activationSpec> element

Prerequisites

1) @create attribute value is “never”

2a) @jndiName not specified, or

2b) @jndiName specified but refers to a non-existent resource, or

2c) @jndiName specified but refers to a resource of an incorrect type

Predicate

SCA runtime raises an error

Prescription Level

Mandatory

Tags

jndi, connectionFactory, activationSpec, destination



Assertion ID

BJM-TA-30017

Source

[BJM30017]

Target

<binding.jms> element

Prerequisites

 

Predicate

The <binding.jms> element does not have both a <connectionFactory> and <activationSpec> child element

Prescription Level

Mandatory

Tags

connectionFactory, activationSpec



Assertion ID

BJM-TA-30018

Source

[BJM30018]

Target

<connectionFactory> element child of <binding.jms> element

Prerequisites

<binding.jms> element with a <connectionFactory> child

Predicate

The destination is defined either by the <destination> element child of the <binding.jms> element or by the @uri attribute of the <binding.jms> element

Prescription Level

Mandatory

Tags

connectionFactory, destination



Assertion ID

BJM-TA-30019

Source

[BJM30019]

Target

<activationSpec> element child of <binding.jms> element

Prerequisites

1) <binding.jms> element with an <activationSpec> child

2) destination is defined either by the <destination> element or by the @uri attribute of the <binding.jms> element

Predicate

The destination defined by the <destination> element or @uri attribute refers to the same JMS destination as the <activationSpec>

Prescription Level

Mandatory

Tags

activationSpec, destination

Comment

Untestable as no portable way to check the configuration of an activation spec.



Assertion ID

BJM-TA-30020

Source

[BJM30020]

Target

<binding.jms> element

Prerequisites

<binding.jms> element child of a <reference> element

Predicate

The <binding.jms> element does not have an <activationSpec> child

Prescription Level

Mandatory

Tags

reference, activationSpec



Assertion ID

BJM-TA-30021

Source

[BJM30021]

Target

<response> element

Prerequisites

<binding.jms> element with <response> child element

Predicate

The <response> element does not include both a <connectionFactory> and <activationSpec> child

Prescription Level

Mandatory

Tags

response, connectionFactory, activationSpec



Assertion ID

BJM-TA-30022

Source

[BJM30022]

Target

<response> element

Prerequisites

<response> element with both <destination> and <activationSpec> child elements

Predicate

The <destination> and <activationSpec> elements refer to the same destination

Prescription Level

Mandatory

Tags

response, activationSpec, destination

Comment

Untestable as no portable way to check the configuration of an activation spec.



Assertion ID

BJM-TA-30023

Source

[BJM30023]

Target

<response> element

Prerequisites

<service> element with <binding.jms> element child with <response> element child

Predicate

The <response> element does not have an <activationSpec> child element

Prescription Level

Mandatory

Tags

response, activationSpec, service



Assertion ID

BJM-TA-30024-1

Source

[BJM30024]

Target

SCA runtime

Prerequisites

@uri attribute including parameters specifying values for type, deliveryMode, timeToLive and priority

Predicate

JMS messages sent have JMSType, JMSDeliveryMode, JMSTimeToLive and JMSPriority headers set as specified by the @uri element

Prescription Level

Mandatory

Tags

uri, headers



Assertion ID

BJM-TA-30024-2

Source

[BJM30024]

Target

SCA runtime

Prerequisites

1) operationProperties/headers element corresponding to the operation being invoked with values specified for one or more of @type, @deliveryMode, @timeToLive and @priority

2) @uri attribute not present or not including parameters specifying values for those headers

Predicate

JMS messages sent have JMSType, JMSDeliveryMode, JMSTimeToLive and JMSPriority headers set as specified by the operationProperties/headers element for the operation being invoked

Prescription Level

Mandatory

Tags

uri, headers, operationProperties

Comment

Priority 2 case for BJM30024



Assertion ID

BJM-TA-30024-3

Source

[BJM30024]

Target

SCA runtime

Prerequisites

1) headers element with values specified for one or more of @type, @deliveryMode, @timeToLive and @priority

2) No operationProperties/headers element corresponding to the operation being invoked, or the operationProperties/headers element that does correspond to the operation being invoked does not have values specified those headers

3) @uri attribute not present, or not including parameters specifying values for those headers

Predicate

JMS messages sent have JMSType, JMSDeliveryMode, JMSTimeToLive and JMSPriority headers set as specified by the headers element

Prescription Level

Mandatory

Tags

uri, headers, operationProperties

Comment

Priority 3 case for BJM30024



Assertion ID

BJM-TA-30024-4

Source

[BJM30024]

Target

SCA runtime

Prerequisites

1) no headers element, or headers element no values specified for one or more of @type, @deliveryMode, @timeToLive and @priority

2) No operationProperties/headers element corresponding to the operation being invoked, or the operationProperties/headers element that does correspond to the operation being invoked does not have values specified those headers

3) @uri attribute not present, or not including parameters specifying values for those headers

Predicate

JMS messages sent have JMSDeliveryMode, JMSTimeToLive and JMSPriority headers set to default values of “persistent”, 0, and 4 respectively

Prescription Level

Mandatory

Tags

uri, headers, operationProperties

Comment

Priority 4 case for BJM30024; note that there is no defined default for the type parameter.



Assertion ID

BJM-TA-30025-1

Source

[BJM30025]

Target

SCA runtime

Prerequisites

operationProperties element corresponding to the operation being invoked with one or more headers/property children

Predicate

JMS messages sent include a user property for each operationProperties/headers/property element, with the given name, type and value

Prescription Level

Mandatory

Tags

headers, operationProperties



Assertion ID

BJM-TA-30025-2

Source

[BJM30025]

Target

SCA runtime

Prerequisites

headers element with one or more headers/property children

No operationProperties element corresponding to the operation being invoked, or an operationProperties element corresponding to the operation being invoked with no headers/property children with the same names as those in the headers element

Predicate

JMS messages sent include a user property for each headers/property element, with the given name, type and value

Prescription Level

Mandatory

Tags

headers, operationProperties

Comment

Priority 2 case for BJM30025



Assertion ID

BJM-TA-30026-1

Source

[BJM30026]

Target

SCA runtime

Prerequisites

@uri attribute including selector parameter

Predicate

Only messages received by the binding matching the selector specified in the @uri attribute are delivered to the component

Prescription Level

Mandatory

Tags

uri, selector



Assertion ID

BJM-TA-30026-2

Source

[BJM30026]

Target

SCA runtime

Prerequisites

1) messageSelection/@selector attribute present

2) @uri attribute not present, or not incl7uding selector parameter

Predicate

Only messages received by the binding matching the selector specified in the messageSelection/@selector attribute are delivered to the component

Prescription Level

Mandatory

Tags

uri, selector

Comment

Priority 2 case for BJM30026



Assertion ID

BJM-TA-30026-3

Source

[BJM30026]

Target

SCA runtime

Prerequisites

1) messageSelection/@selector attribute not present

2) @uri attribute not present, or not including selector parameter

Predicate

All messages received by the binding are delivered to the component

Prescription Level

Mandatory

Tags

uri, selector

Comment

Priority 3 case for BJM30026



Assertion ID

BJM-TA-30029

Source

[BJM30029]

Target

@selectedOperation attribute

Prerequisites

Multiple operationProperties/@selectedOperation attributes in the same binding.jms element

Predicate

All @selectedOperation attributes of operationProperties elements have different values

Prescription Level

Mandatory

Tags

selectedOperation, operationProperties



Assertion ID

BJM-TA-30031

Source

[BJM30031]

Target

<resourceAdapter> element

Prerequisites

JMS provider for the resources referenced by the JMS binding is implemented using JCA 1.5 [JCA15]

Destination, connectionFactory or activationSpec element with @create attribute value of “always” or “ifNoExist”.

Predicate

The <resourceAdapter> element is present

Prescription Level

Mandatory

Tags

resource adapter, destination, connectionFactory, activationSpec



Assertion ID

BJM-TA-30034

Source

[BJM30034]

Target

<binding.jms> element

Prerequisites

<binding.jms> element with @uri attribute

Predicate

The <binding.jms> element has no <destination> child element

Prescription Level

Mandatory

Tags

uri, destination



Assertion ID

BJM-TA-30036

Source

[BJM30036]

Target

<binding.jms> element

Prerequisites

 

Predicate

The <binding.jms> element conforms to the XML schema

Prescription Level

Mandatory

Tags

 

Comment

The binding.jms element MUST conform to the XML schema defined in sca-binding-jms-1.1.xsd



Assertion ID

BJM-TA-30037

Source

[BJM30037]

Target

@create attribute of a <destination>, <connectionFactory> or <activationSpec> element

Prerequisites

1) @create attribute value is “always”

2) @jndiName attribute not specified

3) Resource of the required type cannot be created

Predicate

SCA runtime raises an error

Prescription Level

Mandatory

Tags

jndi, connectionFactory, activationSpec, destination

Comment

Untestable as no portable way to simulate an internal failure to create JMS resources

    1. Test Assertions for JMS Bindings Specification Section 4

Assertion ID

BJM-TA-40001

Source

[BJM40001]

Target

SCA runtime

Prerequisites

<binding.jms> element with either no <wireFormat> child or a <wireFormat.jmsDefault> child, and either no <operationSelector> child or a <operationSelector.jmsDefault> child.

Predicate

Messages sent by the service or reference adhere to the default wire format and operation selector behaviour, and messages received by the service or reference that follow this behaviour are correctly processed.

Prescription Level

Mandatory

Tags

wireFormat, operationSelector, default



Assertion ID

BJM-TA-40002

Source

[BJM40002]

Target

SCA runtime

Prerequisites

<binding.jms> element with no <operationSelector> child

Predicate

The SCA runtime behaves as if <operationSelector.jmsDefault> was specified on the binding

Prescription Level

Mandatory

Tags

operationSelector default



Assertion ID

BJM-TA-40003

Source

[BJM40003]

Target

SCA runtime

Prerequisites

<service> element with:

<binding.jms> element with either no <wireFormat> child or <wireFormat.jmsDefault>

<interface> element that identifies an interface with more than one operation, and at least one operation with a single parameter

An invocation from a component connected to the service of one of the operations with a single parameter

Predicate

The JMS message sent from the service has the JMS user property “scaOperationName” set to the name of the operation being invoked

Prescription Level

Mandatory

Tags

wireFormat, operation name



Assertion ID

BJM-TA-40004

Source

[BJM40004]

Target

SCA runtime

Prerequisites

<binding.jms> element with no <wireFormat> child

Predicate

The SCA runtime behaves as if <operationSelector.jmsDefault> was specified on the binding

Prescription Level

Mandatory

Tags

wireFormat, default



Assertion ID

BJM-TA-40005

Source

[BJM40005]

Target

SCA runtime

Prerequisites

A <service> or <reference> element with a <binding.jms> element with either no <wireFormat> child or a <wireFormat.jmsDefault> child

Predicate

Response messages sent to the reference and request messages sent to the service are accepted using either JMS text or JMS bytes format

Prescription Level

Mandatory

Tags

wireFormat, default



Assertion ID

BJM-TA-40006

Source

[BJM40006]

Target

SCA runtime

Prerequisites

A <service> or <reference> element with a <binding.jms> element with either no <wireFormat> child or a <wireFormat.jmsDefault> child

Predicate

Response messages sent by the service and request messages sent by the reference are either JMS text or JMS bytes

Prescription Level

Mandatory

Tags

wireFormat, default



Assertion ID

BJM-TA-40008

Source

[BJM40008]

Target

SCA runtime

Prerequisites

<service> element with <binding.jms> child with either no <operationSelector> child or a <operationSelector.jmsDefault> child

Predicate

The resolved operation name is identified using the JMS default operation selector algorithm

Prescription Level

Mandatory

Tags

operationSelector, default



Assertion ID

BJM-TA-40009

Source

[BJM40009]

Target

SCA runtime

Prerequisites

<service> or <reference> with <binding.jms> child with <wireFormat.jmsDefault> child

Predicate

Messages sent by the service or reference adhere to the default wire format behaviour, and messages received by the service or reference that follow this behaviour are correctly processed.

Prescription Level

Mandatory

Tags

wireFormat, default



Assertion ID

BJM-TA-40010

Source

[BJM40010]

Target

SCA runtime

Prerequisites

<service> element with <binding.jms> child

Resolved operation name in the target component’s interface

Predicate

The target component’s operation corresponding to the resolved operation name is invoked

Prescription Level

Mandatory

Tags

resolved operation, operationSelector



Assertion ID

BJM-TA-40011

Source

[BJM40011]

Target

SCA runtime

Prerequisites

<service> element with <binding.jms> child

Resolved operation name not in the target component’s interface

Predicate

An error is raised by the SCA runtime

Prescription Level

Mandatory

Tags

resolved operation, operationSelector

    1. Test Assertions for JMS Bindings Specification Section 5

Assertion ID

BJM-TA-50001

Source

[BJM50001]

Target

SCA runtime

Prerequisites

SCA service or reference element with requires=”JMS” and binding.jms child.

Predicate

The SCA runtime does not report this as an error

Prescription Level

Mandatory

Tags

JMS intent



Assertion ID

BJM-TA-50002

Source

[BJM50002]

Target

JMS <bindingType> element

Prerequisites

<bindingType> element for the JMS binding

Predicate

The <bindingType> element includes the JMS intent in the @alwaysProvides attribute

Prescription Level

Mandatory

Tags

JMS intent

Comment

Untestable as no way to examine the content of the JMS binding type

    1. Test Assertions for JMS Bindings Specification Section 6

Assertion ID

BJM-TA-60002

Source

[BJM60002]

Target

SCA runtime

Prerequisites

<service> element with <binding.jms> child

Request message corresponding to a one-way operation in the service’s interface sent to the service’s JMS binding with a non-null JMSReplyTo

Predicate

No error is raised

Prescription Level

Mandatory

Tags

JMSReplyTo unidirectional service one-way



Assertion ID

BJM-TA-60003

Source

[BJM60003]

Target

SCA runtime

Prerequisites

<reference> element with <binding.jms> child with <response> child with <destination> child element.

Predicate

Responses are received according to the value of the @correlationScheme attribute

Prescription Level

Mandatory

Tags

reference request/response correlation



Assertion ID

BJM-TA-60004

Source

[BJM60004]

Target

SCA runtime

Prerequisites

<reference> element with <binding.jms> child with <response> child with <destination> child

Request/response operation invoked using the JMS reference binding

Predicate

Request messages sent by the JMS reference binding have the JMSReplyTo set to the destination specified in the <destination> element

Prescription Level

Mandatory

Tags

JMSReplyTo reference destination request/response



Assertion ID

BJM-TA-60005

Source

[BJM60005]

Target

SCA runtime

Prerequisites

<reference> element with <binding.jms> child with either no <response> child, or a <response> child with no <destination> child.

Request/response operation invoked using the JMS reference binding

Predicate

Request messages sent by the JMS reference binding have the JMSReplyTo set to a non-null destination

Prescription Level

Mandatory

Tags

JMSReplyTo reference destination request/response



Assertion ID

BJM-TA-60006

Source

[BJM60006]

Target

SCA runtime

Prerequisites

<reference> element with <binding.jms> child, with either no <response> child, or a <response> child with no <destination> child element.

Predicate

Responses are received either on unique destinations, or according to the value of the @correlationScheme attribute

Prescription Level

Mandatory

Tags

Reference request/response destination correlation

Comment

Untestable as no way to check the way that the runtime implementation behaves



Assertion ID

BJM-TA-60007

Source

[BJM60007]

Target

SCA runtime

Prerequisites

<service> element with <binding.jms> child

Request message received as part of a request/response MEP with non-null JMSReplyTo destination

Predicate

Response message is sent by the service JMS binding to the JMSReplyTo destination

Prescription Level

Mandatory

Tags

JMSReplyTo service response destination



Assertion ID

BJM-TA-60008

Source

[BJM60008]

Target

SCA runtime

Prerequisites

<service> element with <binding.jms> child with <response> child with <destination> child

Request message received as part of a request/response MEP with null JMSReplyTo destination

Predicate

Response message is sent by the service JMS binding to the binding’s response destination

Prescription Level

Mandatory

Tags

JMSReplyTo service response destination



Assertion ID

BJM-TA-60009

Source

[BJM60009]

Target

SCA runtime

Prerequisites

<service> element with <binding.jms> child with either no <response> child, or a <response> child with no <destination> child

Request message received as part of a request/response MEP with null JMSReplyTo destination

Predicate

The request is not processed and an error is raised

Prescription Level

Mandatory

Tags

JMSReplyTo service response destination

Comment

Not tested



Assertion ID

BJM-TA-60010

Source

[BJM60010]

Target

SCA runtime

Prerequisites

<service> element with <binding.jms> child

Request message is received by the service JMS binding as part of a request/response MEP

Predicate

Response message sent by the service JMS binding with the correlation identifier set as defined by the @correlationScheme attribute

Prescription Level

Mandatory

Tags

Service response correlation

Comment

No test case as implementation-specific values cannot be tested. The cases for the defined correlationScheme values sca:messageID, sca:correlationID and sca:none are tested by BJM-TA-30003, BJM-TA-30004 and BJM-TA-30005.



Assertion ID

BJM-TA-60011

Source

[BJM60011]

Target

SCA runtime

Prerequisites

<reference> with <binding.jms> child and bidirectional interface

Predicate

Request messages sent by the reference JMS binding for request/response interactions include the scaCallbackDestination user property whose value is a JMS URI string, in the format defined by the IETF URI Scheme for Java™ Message Service 1.0 [IETFJMS], that identifies the destination to which callback messages are to be sent

Prescription Level

Mandatory

Tags

Reference bidirectional callback destination



Assertion ID

BJM-TA-60012

Source

[BJM60012]

Target

SCA runtime

Prerequisites

<reference> element with <binding.jms> child and bidirectional interface, one-way operation invoked

Predicate

JMSReplyTo set to the destination for callback messages

Prescription Level

Mandatory

Tags

 



Assertion ID

BJM-TA-60013

Source

[BJM60013]

Target

SCA runtime

Prerequisites

<reference> element with <binding.jms> child and bidirectional interface

Request message sent as part of a request/response MEP

Predicate

Request messages sent by the reference JMS binding have the JMSReplyTo header set as in section 6.2

Prescription Level

Mandatory

Tags

Reference bidirectional JMSReplyTo

Comment

Already tested by BJM60004 and BJM60005



Assertion ID

BJM-TA-60014-1

Source

[BJM60014]

Target

SCA runtime

Prerequisites

<reference> with:

  • <binding.jms> child

  • bidirectional interface

callback destination identified via callback service JMS binding

Predicate

Request messages sent by the reference JMS binding include the scaCallbackDestination user property set to the specified callback destination

Prescription Level

Mandatory

Tags

Reference bidirectional callback destination



Assertion ID

BJM-TA-60014-2

Source

[BJM60014]

Target

SCA runtime

Prerequisites

<reference> with:

  • <binding.jms> child

  • bidirectional interface

no callback destination specified via callback service JMS binding

Predicate

Request messages sent by the reference JMS binding include the scaCallbackDestination user property set to a specified callback destination provided by the SCA runtime

Prescription Level

Mandatory

Tags

Reference bidirectional callback destination



Assertion ID

BJM-TA-60015

Source

[BJM60015]

Target

SCA runtime

Prerequisites

<service> element with <binding.jms> child

Callback destination identified as follows, in order of priority:

  • The scaCallbackDestination identified by an earlier request, if not null;

  • the JMSReplyTo destination identified by an earlier one-way request, if not null;

  • the request destination of the service’s callback reference JMS binding, if specified

Predicate

Request messages sent by the service’s callback JMS reference are sent to the callback destination

Prescription Level

Mandatory

Tags

Service callback destination



Assertion ID

BJM-TA-60016

Source

[BJM60016]

Target

SCA runtime

Prerequisites

<service> element with <binding.jms> child

  • No scaCallbackDestination identified by an earlier request

No JMSReplyTo destination identified by an earlier one-way request

No request destination specified by the service’s callback reference JMS binding

Predicate

When a callback request is made an exception is thrown

Prescription Level

Mandatory

Tags

JMSReplyTo service callback destination



Assertion ID

BJM-TA-60017

Source

[BJM60017]

Target

SCA runtime

Prerequisites

<service> element with <binding.jms> child

Predicate

Callback request messages have the JMSReplyTo set as defined in section 6.1 or 6.2 as appropriate

Prescription Level

Mandatory

Tags

JMSReplyTo service callback destination



Assertion ID

BJM-TA-60018

Source

[BJM60018]

Target

<binding.jms> element

Prerequisites

<service> or <reference> with <binding.jms> child, bidirectional interface and callback <binding.jms>

Predicate

Behaviour as defined in section 6.4 and its subsections is observed

Prescription Level

Mandatory

Tags

 

Comment

Tested by the test cases defined for statements in section 6.4.

  1. Cross Mapping of Normative Statements to Test Assertions

This section contains a list of normative statements in the SCA JMS Binding specification and the corresponding Test Assertions.

Normative Statement ID

Test Assertion

BJM30001

BJM-TA-30001

BJM30002

BJM-TA-30002

BJM30003

BJM-TA-30003

BJM30004

BJM-TA-30004

BJM30005

BJM-TA-30005

BJM30007

BJM-TA-30007

BJM30010

BJM-TA-30010

BJM30011

BJM-TA-30011

BJM30012

BJM-TA-30012

BJM30013

BJM-TA-30013

BJM30014

BJM-TA-30014

BJM30015

BJM-TA-30015

BJM30017

BJM-TA-30017

BJM30018

BJM-TA-30018

BJM30019

BJM-TA-30019

BJM30020

BJM-TA-30020

BJM30021

BJM-TA-30021

BJM30022

BJM-TA-30022

BJM30023

BJM-TA-30023

BJM30024

BJM-TA-30024-1, BJM-TA-30024-2, BJM-TA-30024-3, BJM-TA-30024-4

BJM30025

BJM-TA-30025-1, BJM-TA-30025-2

BJM30026

BJM-TA-30026-1, BJM-TA-30026-2, BJM-TA-30026-3

BJM30029

BJM-TA-30029

BJM30031

BJM-TA-30031

BJM30034

BJM-TA-30034

BJM30036

BJM-TA-30036

BJM30037

BJM-TA-30037

BJM40001

BJM-TA-40001

BJM40002

BJM-TA-40002

BJM40003

BJM-TA-40003

BJM40004

BJM-TA-40004

BJM40005

BJM-TA-40005

BJM40006

BJM-TA-40006

BJM40008

BJM-TA-40008

BJM40009

BJM-TA-40009

BJM40010

BJM-TA-40010

BJM40011

BJM-TA-40011

BJM50001

BJM-TA-50001

BJM50002

BJM-TA-50002

BJM60002

BJM-TA-60002

BJM60003

BJM-TA-60003

BJM60004

BJM-TA-60004

BJM60005

BJM-TA-60005

BJM60006

BJM-TA-60006

BJM60007

BJM-TA-60007

BJM60008

BJM-TA-60008

BJM60009

BJM-TA-60009

BJM60010

BJM-TA-60010

BJM60011

BJM-TA-60011

BJM60012

BJM-TA-60012

BJM60013

BJM-TA-60013

BJM60014

BJM-TA-60014-1, BJM-TA-60014-2

BJM60015

BJM-TA-60015

BJM60016

BJM-TA-60016

BJM60017

BJM-TA-60017

BJM60018

BJM-TA-60018

  1. Cross Mapping of Test Assertions to TestCases

This section contains a list of Test Assertions and the corresponding TestCases.

Test Assertion

Test Cases

BJM-TA-30001

BJM_3001_TestCase

BJM-TA-30002

BJM_3002_1_TestCase,BJM_3002_2_TestCase

BJM-TA-30003

BJM_3003_TestCase

BJM-TA-30004

BJM_3004_TestCase

BJM-TA-30005

BJM_3005_TestCase

BJM-TA-30007

BJM_3007_TestCase

BJM-TA-30010

Untestable

BJM-TA-30011

BJM_3011A_TestCase,BJM_3011C_TestCase, BJM_3011D_TestCase

BJM-TA-30012

BJM_3012A_TestCase,BJM_3012C_TestCase, BJM_3012D_TestCase

BJM-TA-30013

Not tested

BJM-TA-30014

BJM_3014A_TestCase,BJM_3014C_TestCase, BJM_3014D_TestCase

BJM-TA-30015

BJM_3015Aa_TestCase, BJM_3015Ab_TestCase, BJM_3015Ac_TestCase, BJM_3015Ca_TestCase, BJM_3015Cb_TestCase, BJM_3015Cc_TestCase, BJM_3015Da_TestCase, BJM_3015Db_TestCase, BJM_3015Dc_TestCase

BJM-TA-30017

BJM_3017_TestCase

BJM-TA-30018

BJM_3018_TestCase

BJM-TA-30019

Not tested

BJM-TA-30020

BJM_3020_TestCase

BJM-TA-30021

BJM_3021_TestCase

BJM-TA-30022

Not tested

BJM-TA-30023

BJM_3023_TestCase

BJM-TA-30024-1

BJM_3024_1_TestCase

BJM-TA-30024-2

BJM_3024_2_TestCase

BJM-TA-30024-3

BJM_3024_3_TestCase

BJM-TA-30024-4

BJM_3024_4_TestCase

BJM-TA-30025-1

BJM_3025_1_TestCase

BJM-TA-30025-2

BJM_3025_2_TestCase

BJM-TA-30026-1

BJM_3026_1_TestCase

BJM-TA-30026-2

BJM_3026_2_TestCase

BJM-TA-30026-3

BJM_3026_3_TestCase

BJM-TA-30029

BJM_3029_TestCase

BJM-TA-30031

BJM_3031_TestCase

BJM-TA-30034

BJM_3034_TestCase

BJM-TA-30036

BJM_3036_TestCase

BJM-TA-30037

Not tested



Test Assertion

Test Cases

BJM-TA-40001

BJM_4001_TestCase

BJM-TA-40002

BJM_4002_1_TestCase, BJM_4002_2_TestCase, BJM_4002_3_TestCase, BJM_4002_4_TestCase

BJM-TA-40003

BJM_4003_TestCase

BJM-TA-40004

BJM_4004_TestCase, BJM_4004_2_TestCase

BJM-TA-40005

BJM_4005B_TestCase, BJM_4005T_TestCase

BJM-TA-40006

BJM_4006_TestCase

BJM-TA-40008

BJM_4008_TestCase

BJM-TA-40009

BJM_4009_TestCase

BJM-TA-40010

BJM_4010_TestCase

BJM-TA-40011

BJM_4011_TestCase





Test Assertion

Test Cases

BJM-TA-50001

BJM_5001_TestCase

BJM-TA-50002

Not tested





Test Assertion

Test Cases

BJM-TA-60002

BJM_6002_TestCase

BJM-TA-60003

BJM_6003_1_TestCase, BJM_6003_2_TestCase, BJM_6003_3_TestCase

BJM-TA-60004

BJM_6004_TestCase

BJM-TA-60005

BJM_6005_TestCase

BJM-TA-60006

Not tested

BJM-TA-60007

BJM_6007_TestCase, BJM_6007_2_TestCase

BJM-TA-60008

BJM_6008_TestCase

BJM-TA-60009

Not tested

BJM-TA-60010

Not tested

BJM-TA-60011

BJM_6011_TestCase

BJM-TA-60012

BJM_6012_TestCase

BJM-TA-60013

BJM_6013_TestCase, BJM_6013_2_TestCase

BJM-TA-60014-1

BJM_6014_1_1_TestCase, BJM_6014_1_2_TestCase

BJM-TA-60014-2

BJM_6014_2_TestCase

BJM-TA-60015

BJM_6015_1_TestCase, BJM_6015_2_TestCase, BJM_6015_3_TestCase

BJM-TA-60016

BJM_6016_TestCase

BJM-TA-60017

BJM_6017_1_TestCase, BJM_6017_2_TestCase

BJM-TA-60018

Not tested

  1. Acknowledgments

The following individuals have participated in the creation of this specification and are gratefully acknowledged

Participants:


Participant Name

Affiliation

Bryan Aupperle

IBM

Ron Barack

SAP AG

Michael Beisiegel

IBM

Henning Blohm

SAP AG

David Booz

IBM

Martin Chapman

Oracle Corporation

Jean-Sebastien Delfino

IBM

Laurent Domenech

TIBCO Software Inc.

Jacques Durand

Fujitsu Limited

Mike Edwards

IBM

Ant Elder

IBM

Billy Feng

Primeton Technologies, Inc.

Nimish Hathalia

TIBCO Software Inc.

Simon Holdsworth

IBM

Eric Johnson

TIBCO Software Inc.

Uday Joshi

Oracle Corporation

Khanderao Kand

Oracle Corporation

Anish Karmarkar

Oracle Corporation

Nickolaos Kavantzas

Oracle Corporation

Mark Little

Red Hat

Ashok Malhotra

Oracle Corporation

Jim Marino

Individual

Jeff Mischkinsky

Oracle Corporation

Dale Moberg

Axway Software

Simon Nash

Individual

Sanjay Patil

SAP AG

Plamen Pavlov

SAP AG

Peter Peshev

SAP AG

Piotr Przybylski

IBM

Luciano Resende

IBM

Tom Rutt

Fujitsu Limited

Vladimir Savchenko

SAP AG

Scott Vorthmann

TIBCO Software Inc.

Tim Watson

Oracle Corporation

Owen Williams

Avaya, Inc.

Prasad Yendluri

Software AG, Inc.


  1. Revision History



Revision

Date

Editor

Changes Made

wd01

2010-04-15

Simon Holdsworth

Initial draft

wd02

2010-09-16

Ant Elder

Initial tests for wd06 test assertions doc

wd03

2010-10-07

Ant Elder

Review updates and wd07 test assertions doc

wd04

2010-10-21

Ant Elder

More review updates

wd05

2010-10-27

Ant Elder

Added BJM_3007 and further review updates

wd06

2010-10-29

Simon Holdsworth

Updated references, other editorial updates

wd07

2010-11-11

Ant Elder

Updated some expect messages texts

csd01-rev1

2011-03-28

Simon Holdsworth

Updated with resolutions to issues BINDINGS-143, BINDINGS-147, BINDINGS-150

csd01-rev2

2011-03-28

Simon Holdsworth

Renamed to remove -1.0 from file name

csd01-rev3

2011-05-25

Simon Holdsworth

Updated with resolutions to issues: BINDINGS-154, BINDINGS-155, BINDINGS-156, BINDINGS-157, BINDINGS-158, BINDINGS-159

csd01-rev4

2011-05-26

Simon Holdsworth

Added comments to explain untested assertions

csd01-rev5

2011-07-04

Simon Holdsworth

Updated with resolution to issue BINDINGS-169



sca-jmsbinding-1.1-testcases-csprd02 14 July 2011

Standards Track Work Product Copyright © OASIS Open 2011. All Rights Reserved. Page 69 of 69