TestCases for the SCA Policy Framework Version 1.1

Committee Specification Draft 03

25 July 2011

Specification URIs

This version:

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

http://docs.oasis-open.org/opencsa/sca-policy/sca-policy-1.1-testcases-csd03.html

http://docs.oasis-open.org/opencsa/sca-policy/sca-policy-1.1-testcases-csd03.odt

Previous version:

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

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

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

Latest version:

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

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

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

Technical Committee:

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

Chairs:

David Booz (booz@us.ibm.com), IBM

Ashok Malhotra (ashok.malhotra@oracle.com), Oracle

Editor:

David Booz (booz@us.ibm.com), IBM

Additional artifacts:

Related work:

This specification is related to:

Declared XML namespaces:

Abstract:

This document defines the TestCases for the SCA Policy Framework 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 Policy Framework Specification.

Status:

This document was last revised or approved by the OASIS Service Component Architecture / Policy (SCA-Policy) 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-policy/.

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-policy/ipr.php).

Citation format:

When referencing this Work Product the following citation format should be used:

[SCA-Policy-TestCases]

TestCases for the SCA Policy Framework Version 1.1. 25 July 2011. OASIS Committee Specification Draft 03.
http://docs.oasis-open.org/opencsa/sca-policy/sca-policy-1.1-testcases-csd03.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 name "OASIS" is a trademark 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 7

1.4 Normative References 7

1.5 Non-Normative References 7

2 TestCases 8

2.1 Section 3 8

2.2 Section 4 13

2.3 Section 5 21

2.4 Section 9 21

2.5 Section 10 25

2.6 Section 11 25

3 Catalog of Test Artifacts 26

3.1 Composite Files - lower level 26

3.2 Java Interfaces – General_Java contribution 26

3.3 Java Implementation Classes - General_Java 26

3.4 WSDL Interface Files - General 26

3.5 Policy files - General 27

4 Testcases Grouped by Capability 28

5 Conformance 30

Appendix A. Test Assertions for the SCA Policy Framework 31

A.1 Example Test Assertion 31

A.2 Test Assertions for SCA Policy Framework Section 3 31

A.3 Test Assertions for SCA Policy Framework Section 4 35

A.4 Test Assertions for SCA Policy Framework Section 5 42

A.5 Test Assertions for SCA Policy Framework Section 7 43

A.6 Test Assertions for SCA Policy Framework Section 8 44

A.7 Test Assertions for SCA Policy Framework Section 9 45

A.8 Test Assertions for SCA Policy Framework Section 10 50

A.9 Test Assertions for SCA Policy Framework Section 11 51

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

Appendix C. Cross Mapping of Test Assertions to TestCases 55

Appendix D. Acknowledgments 58

Appendix E. Revision History 60



1Introduction

This document defines the TestCases for the SCA Policy Framework specification. [POLICY]

The tests described in this document are related to the Test Assertions described in Appendix A, "Test Assertions for the SCA Policy Framework".

1.1TestCase Structure

The SCA Policy testcases follow a standard structure. They are divided into two main parts:

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

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

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

Test Client

The test client is designed as a standalone application. The version built here is a Java application which uses the JUnit test framework, although in principle, the client could be built using another implementation technology.

The test client is structured to contain configuration information about the testcase, which consists of:

  1. metadata identifying the 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 Java test client consists of a base runtime class, BaseJAXWSTestCase.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 Java 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 BaseJAXWSTestCase.

The Test Client defaults to using Web services to communicate with the test application. The client is structured to permit Web services to be replaced by some other binding (e.g. JMS) should the SCA runtime under test not support Web services as a binding technology.

Test Application

Each Test Application consists of one top level SCA Composite file and one or more other SCA Composite files and their associated artifacts (implementations, interface files), plus test client invocation application described above.

A typical test application has a design where the top level composite offers a single service to the client application over a Web services binding. The top level composite contains one component which offers the service that is used by the client application. The top level composite then contains one or more other components which are used by the first component.

All of the components in the top level composite are implemented by composites. These second level composites then contain typically one component, implemented using a specific technology such as Java POJO. In some cases the implementation may be a third level composite.

The application is structured so that alternative technologies can be used. For example, replacing the contents of the second-level or third-level composites allows different implementation technologies to be tested – eg POJOs or BPEL may be used. Similarly, the binding used to connect from the top level composite to the client application may be changed from Web services to JMS if required, simply by changing the binding on the <service/> of the top level composite.

Which implementation language to use for test artifacts is controlled by a system variable or environment variable which is read by the test client application, with the name "OASIS_TESTENV_IMPL_LANG". This variable can have one of the following values:

The testcases are designed so that the range of implementation types can be expanded

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:

Note that the names of Contributions containing implementation specific artifacts ends with a name that is specific to the implementation type - so "_Java" is used for Java implementations. Note that the name following the underscore matches the name used in the "OASIS_TESTENV_IMPL_LANG" variable used to control execution of the test client. The concept is that where there is an implementation type specific contribution, each implementation type must provide its own versions of the same basic artifacts. Typically, this means that each contribution must contain the same set of Composites, but that the implementation type dependent artifacts that these composites use will differ from implementation type to implementation type.

Basically, the setting of the variable is used to select the suffix used for implementation type dependent contributions. If the variable is set to "Java" then the contribution "General_Java" is selected, whereas if the variable is set to "BPEL", the contribution "General_BPEL" is selected.

TestCase Groups

The SCA Policy Framework specification [POLICY] contains some optional capabilities in the way that policySets are attached to SCA composites. Specifically, policySets can be attached directly, externally or both ways. An SCA runtime has the freedom to choose which of those three sets of capability to implement. There are three groups of testcases which match each set of capability. In order to claim compliance to the test suite, an SCA implementation has to pass all the tests in at least one of the three groups. The three groups are defined in Section “Testcases Grouped by Optional Capability”.

1.2Namespaces and Java Package Names

The SCA Policy 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. IETF RFC 2119, March 1997.
http://www.ietf.org/rfc/rfc2119.txt.



[POLICY] OASIS Committee Draft 04, “SCA Policy Framework 1.1 Specification, September 2010. http://docs.oasis-open.org/opencsa/sca-policy/sca-policy-1.1-spec-cd04.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

1.5Non-Normative References

N/A



2TestCases

2.1Section 3

POL_3001_TestCase


Testcase ID

POL_3001_TestCase

Test Assertion

POL-TA-30001

Description

Tests that the runtime rejects a composite where the use of an intent conflicts with the configuration of the binding itself.

Artifacts

POL_3001_TestCase.java

Test_POL_3001.composite

TestInvocation.wsdl

TestClient_0004.composite

TestComposite1.composite

Service1.wsdl

Service1.java

service1Impl.java

Expected output

Negative test:

“exception”


 

 

 

 

 

 

 

 

 

 

POL_3003_TestCase


Testcase ID

POL_3003_TestCase

Test Assertion

POL-TA-30003

Description

Tests that the runtime rejects a definitions file when it contains duplicate intent definitions.

Artifacts

POL_3003_TestCase.java

Test_POL_3003.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_3004_TestCase


Testcase ID

POL_3004_TestCase

Test Assertion

POL-TA-30004

Description

Tests that the runtime rejects a definitions file when it contains an intent definition which has two default qualifiers.

Artifacts

POL_3004_TestCase.java

Test_POL_3004.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_3005_TestCase


Testcase ID

POL_3005_TestCase

Test Assertion

POL-TA-30005

Description

Tests that the runtime rejects a definitions file when it contains an intent definition which has two duplicate qualifiers.

Artifacts

POL_3005_TestCase.java

Test_POL_3005.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_3006_TestCase


Testcase ID

POL_3006_TestCase

Test Assertion

POL-TA-30006

Description

Tests that the runtime rejects a definitions file when it contains a profile intent definition that contains a '.' in its name.

Artifacts

POL_3006_TestCase.java

Test_POL_3006.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_3007_TestCase


Testcase ID

POL_3007_TestCase

Test Assertion

POL-TA-30007

Description

Tests that when a profile intent is required, that the attached policySet(s) satisfy all the intents required by the profile intent.

Artifacts

POL_3007_TestCase.java

Test_POL_3007.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Positive test:

“POL_3007 request no invocation”

POL_3008_TestCase


Testcase ID

POL_3008_TestCase

Test Assertion

POL-TA-30008

Description

Tests that an intentMap provides an unqualified intent that the policySet provides.

Artifacts

POL_3008_TestCase.java

Test_POL_3008.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Positive test:

“POL_3008 request no invocation”

POL_3009_TestCase


Testcase ID

POL_3009_TestCase

Test Assertion

POL-TA-30010

Description

Tests that a policySet only has one intentMap for any given qualifiable intent.

Artifacts

POL_3009_TestCase.java

Test_POL_3009.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_3011_TestCase


Testcase ID

POL_3011_TestCase

Test Assertion

POL-TA-30013

Description

Tests that a referenced policySet provides a subset of the intents provided by the referencing policySet.

Artifacts

POL_3011_TestCase.java

Test_POL_3011.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Positive test:

“POL_3011 request no invocation”

POL_3012_TestCase


Testcase ID

POL_3012_TestCase

Test Assertion

POL-TA-30015

Description

Tests that the runtime rejects a definitions file when it contains a profile intent definition that requires undefined intents.

Artifacts

POL_3012_TestCase.java

Test_POL_3012.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_3013_TestCase


Testcase ID

POL_3013_TestCase

Test Assertion

POL-TA-30016

Description

Tests that the runtime rejects a definitions file when it contains a profile intent definition that excludes an undefined intent.

Artifacts

POL_3013_TestCase.java

Test_POL_3013.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_3014_TestCase


Testcase ID

POL_3014_TestCase

Test Assertion

POL-TA-30017

Description

Tests that the runtime ensures that policySet definitions are unique in the Domain.

Artifacts

POL_3014_TestCase.java

Test_POL_3014.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_3015_TestCase


Testcase ID

POL_3015_TestCase

Test Assertion

POL-TA-30018

Description

Tests that the XPath expression in policySet/@appliesTo is valid.

Artifacts

POL_3015_TestCase.java

Test_POL_3015.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_3016_TestCase


Testcase ID

POL_3016_TestCase

Test Assertion

POL-TA-30019

Description

Tests that the XPath expression in policySet/@attachTo is valid.

Artifacts

POL_3016_TestCase.java

Test_POL_3016.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_3017_TestCase


Testcase ID

POL_3017_TestCase

Test Assertion

POL-TA-30020

Description

Tests that an intentMap specifies all possible qualifiers for a qualifiable intent.

Artifacts

POL_3017_TestCase.java

Test_POL_3017.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_3018_TestCase


Testcase ID

POL_3018_TestCase

Test Assertion

POL-TA-30021

Description

Tests that an intentMap provides an intent that is provided by the containing policySet.

Artifacts

POL_3018_TestCase.java

Test_POL_3018.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_3019_TestCase


Testcase ID

POL_3019_TestCase

Test Assertion

POL-TA-30025

Description

Tests that intents defined in the Policy spec are in the SCA Domain.

Artifacts

POL_3019_TestCase.java

Test_POL_3019.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Positive test:

“POL_3019 request no invocation”

POL_3020_TestCase


Testcase ID

POL_3020_TestCase

Test Assertion

POL-TA-30026

Description

Tests that an intent definition with one qualifier has the qualifier marked as a default.

Artifacts

POL_3020_TestCase.java

Test_POL_3020.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Positive test:

“POL_3020 request no invocation”

2.2Section 4

POL_4001_TestCase


Testcase ID

POL_4001_TestCase

Test Assertion

POL-TA-40001

Description

Tests that directly attached policySets are ignored when there are externally attached policySets.

Artifacts

POL_4001_TestCase.java

Test_POL_4001.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative:

“exception”

POL_4002_TestCase


Testcase ID

POL_4002_TestCase

Test Assertion

POL-TA-40002

Description

Tests that directly attached policySets are supported

Artifacts

POL_4002_TestCase.java

Test_POL_4002.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Positive test:

“POL_4002 request no invocation”

POL_4003_TestCase


Testcase ID

POL_4003_TestCase

Test Assertion

POL-TA-40003

Description

Tests that externally attached policy sets are supported.

Artifacts

POL_4003_TestCase.java

Test_POL_4003.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Positive test:

“POL_4003 request no invocation”

POL_4004_TestCase


Testcase ID

POL_4004_TestCase

Test Assertion

POL-TA-40004

Description

Tests that qualified intents override qualifiable intents in the implementation hierarchy.

Artifacts

POL_4004_TestCase.java

Test_POL_4004.composite

TestCompositeImplIntent.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_4005_TestCase


Testcase ID

POL_4005_TestCase

Test Assertion

POL-TA-40005

Description

Tests that qualified intents override qualifiable intents in the implementation hierarchy of service promotion.

Artifacts

POL_4005_TestCase.java

Test_POL_4005.composite

TestCompositeImplIntent.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_4006_TestCase


Testcase ID

POL_4006_TestCase

Test Assertion

POL-TA-40006

Description

Tests that intents higher in the structural hierarchy are unioned with intents lower in the structural hierarchy.

Artifacts

POL_4006_TestCase.java

Test_POL_4006.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_4007_TestCase


Testcase ID

POL_4007_TestCase

Test Assertion

POL-TA-40007

Description

Tests that intents higher in the structural hierarchy are unioned with non-mutually exclusive intents lower in the structural hierarchy.

Artifacts

POL_4007_TestCase.java

Test_POL_4007.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Positive test:

“POL_4007 request service1 operation1 invoked”

POL_4008_TestCase


Testcase ID

POL_4008_TestCase

Test Assertion

POL-TA-40008

Description

Tests that qualified intents in the structural hierarchy override the unqualified form of the intent.

Artifacts

POL_4008_TestCase.java

Test_POL_4008.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Positive test:

“POL_4008 request service1 operation1 invoked”

POL_4009_TestCase


Testcase ID

POL_4009_TestCase

Test Assertion

POL-TA-40009

Description

Tests that componentType attached policySets are ignored when policySets are attached to the using component definition.

Artifacts

POL_4009_TestCase.java

Test_POL_4009.composite

TestCompositeImplPolicySet.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_4010_TestCase


Testcase ID

POL_4010_TestCase

Test Assertion

POL-TA-40015

Description

Tests that directly attached policySets are ignored when the runtime does not support directly attached policySets and there are externally attached policySet(s).

Artifacts

POL_4010_TestCase.java

Test_POL_4010.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”


POL_4012_TestCase


Testcase ID

POL_4012_TestCase

Test Assertion

POL-TA-40012

Description

A testcase to verify that mutually exclusive intents cause an error.

Artifacts

POL_4012_TestCase.java

Test_POL_4012.composite

TestInvocation.wsdl

TestClient_0004.composite

Expected output

Negative test:

“exception”

POL_4013_TestCase

Testcase ID

POL_4013_TestCase

Test Assertion

POL-TA-40014

Description

A testcase to verify that external attachment of policySets works correctly.

Artifacts

POL_4013_TestCase.java

Test_POL_4013.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Positive test:

“POL_4013 request no invocation”

POL_4015_TestCase


Testcase ID

POL_4015_TestCase

Test Assertion

POL-TA-40013

Description

Tests that directly attached policySets are ignored when the runtime does not support directly attached policySets.

Artifacts

POL_4015_TestCase.java

Test_POL_4015.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_4016_TestCase


Testcase ID

POL_4016_TestCase

Test Assertion

POL-TA-40016

Description

Tests that externally attached policySets are ignored when the runtime does not support them.

Artifacts

POL_4016_TestCase.java

Test_POL_4016.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_4018_TestCase


Testcase ID

POL_4018_TestCase

Test Assertion

POL-TA-40018

Description

Tests that externally attached policySets are ignored when the runtime does not support them, and there are directly attached policySets that are supported.

Artifacts

POL_4018_TestCase.java

Test_POL_4018.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_4019_TestCase


Testcase ID

POL_4019_TestCase

Test Assertion

POL-TA-40024

Description

Tests that policySets on interfaces apply to bindings and services.

Artifacts

POL_4019_TestCase.java

Test_POL_4019.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Positive test:

“POL_4019 request no invocation”

POL_4020_TestCase


Testcase ID

POL_4020_TestCase

Test Assertion

POL-TA-40025

Description

Tests that policySets on interfaces apply to bindings and services.

Artifacts

POL_4020_TestCase.java

Test_POL_4020.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Positive test:

“POL_4020 request no invocation”


POL_4024_TestCase


Testcase ID

POL_4024_TestCase

Test Assertion

POL-TA-40027, POL-TA-40028

Description

Tests that when an intent is required, that the attached policySet(s) satisfies the intent.

Artifacts

POL_4024_TestCase.java

Test_POL_4024.composite

TestInvocation.wsdl

TestClient_0004.composite

TestComposite1.composite

Service1.java

Service1.wsdl

definitions.xml

Expected output

Positive test:

“POL_4024 request service1 operation1 invoked”

POL_4027_TestCase


Testcase ID

POL_4027_TestCase

Test Assertion

POL-TA-40039

Description

BindingTypes are unique in the Domain.

Artifacts

POL_4027_TestCase.java

Test_POL_4027.composite

TestInvocation.wsdl

TestClient_0004.composite

Service1.wsdl

definitions.xml

Expected output

Positive test:

“exception”

POL_4028_TestCase


Testcase ID

POL_4028_TestCase

Test Assertion

POL-TA-40049

Description

A testcase to verify that an error is raised if policySet/@attachTo points to a property.

Artifacts

POL_4028_TestCase.java

Test_POL_4028.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_4029_TestCase


Testcase ID

POL_4029_TestCase

Test Assertion

POL-TA-40020

Description

Tests that where a <component/> has an <implementation/> element which has a service with an attached intent, that the intent applies to the binding of the <component/> <service/> and must be satisfied by that binding.

Artifacts

POL_4029_TestCase.java

Test_POL_4029.composite

TestInvocation.wsdl

Service1.wsdl

TestClient_0004.composite

TestCompositeSOAP.composite

Expected output

Positive test:

“POL_4029 request service1 operation1 invoked”

POL_4030_TestCase


Testcase ID

POL_4030_TestCase

Test Assertion

POL-TA-40021

Description

Tests that where a <component/> has an <implementation/> element which has a service with an attached unqualified form of an intent and the qualified form of the intent is attached to <service/> element of the component, that the qualified form of the intent applies to the <component/> <service/> and must be satisfied by its binding.

Artifacts

POL_4030_TestCase.java

Test_POL_4030.composite

TestInvocation.wsdl

Service1.wsdl

TestClient_0004.composite

TestCompositeSOAP.composite

Expected output

Positive test:

“POL_4030 request service1 operation1 invoked”

POL_4031_TestCase


Testcase ID

POL_4031_TestCase

Test Assertion

POL-TA-40022

POL-TA-40037

POL-TA-40050

Description

Tests that where a <component/> has an <service/> element which has a <interface/> subelement with an intent attached to it, that the intent applies to the <component/> <service/> and must be satisfied by its binding.

Artifacts

POL_4031_TestCase.java

Test_POL_4031.composite

TestInvocation.wsdl

TestClient_0004.composite

Service1.wsdl

Service1withSOAPIntent.wsdl

TestComposite1.composite

Expected output

Positive test:

“POL_4031 request service1 operation1 invoked”

POL_4032_TestCase


Testcase ID

POL_4032_TestCase

Test Assertion

POL-TA-40023

POL-TA-40038

POL_TA_40050

Description

Tests that where a <component/> has an <reference/> element which has a <interface/> subelement with an intent attached to it, that the intent applies to the <component/> <reference/> and must be satisfied by its binding.

Artifacts

POL_4032_TestCase.java

Test_POL_4032.composite

TestInvocation.wsdl

TestClient_0004.composite

Service1.wsdl

Service1withSOAPIntent.wsdl

TestComposite1.composite

Expected output

Positive test:

“POL_4032 request service1 operation1 invoked”

POL_4033_TestCase


Testcase ID

POL_4033_TestCase

Test Assertion

POL-TA-40058

Description

Tests that the @attachTo attribute of an <externalAttachment/> element is a valid XPath 1.0 production expression

Artifacts

POL_4033_TestCase.java

Test_POL_4033.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml in POL_4033 contribution

Expected output

Negative test:

“exception”

2.3Section 5

POL_5001_TestCase


Testcase ID

POL_5001_TestCase

Test Assertion

POL-TA-50001

Description

A testcase to verify that the runtime can detect unknown implementation types.

Artifacts

POL_5001_TestCase.java

Test_POL_5001.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

2.4Section 9

POL_9006_TestCase


Testcase ID

POL_9006_TestCase

Test Assertion

POL-TA-90009, POL-TA-90036

Description

A testcase to verify that a reference with transactedOneWay on a non-global tran component, results in an error from the runtime.

Artifacts

POL_9006_TestCase.java

Test_POL_9006.composite

TestInvocation.wsdl

TestClient_0004.composite

TestComposite1.composite

TestComposite4.composite

Service1.wsdl

Expected output

Negative test:

“exception”

POL_9009_TestCase


Testcase ID

POL_9009_TestCase

Test Assertion

POL-TA-90012, POL-TA-90030

Description

A testcase to verify that a service with transactedOneWay on a non-global tran component, results in an error from the runtime.

Artifacts

POL_9009_TestCase.java

Test_POL_9009.composite

TestInvocation.wsdl

TestClient_0004.composite

TestComposite1.composite

TestComposite4.composite

Service1.wsdl

Expected output

Negative test:

“exception”

POL_9015_TestCase


Testcase ID

POL_9015_TestCase

Test Assertion

POL-TA-90021

Description

A testcase to verify that a component with managedTransaction.local and a service with propagatesTransaction, results in an error from the runtime.

Artifacts

POL_9015_TestCase.java

Test_POL_9015.composite

TestInvocation.wsdl

TestClient_0004.composite

TestComposite1.composite

Service1.wsdl

Expected output

Negative test:

“exception”

POL_9016_TestCase


Testcase ID

POL_9016_TestCase

Test Assertion

POL-TA-90022

Description

A testcase to verify that a component with noManagedTransaction and a service with propagatesTransaction, results in an error from the runtime.

Artifacts

POL_9016_TestCase.java

Test_POL_9016.composite

TestInvocation.wsdl

TestClient_0004.composite

TestComposite1.composite

Service1.wsdl

Expected output

Negative test:

“exception”

POL_9017_TestCase


Testcase ID

POL_9017_TestCase

Test Assertion

POL-TA-90025

Description

A testcase to verify that a reference with propagatesTransaction on a local tran component, results in an error from the runtime.

Artifacts

POL_9017_TestCase.java

Test_POL_9017.composite

TestInvocation.wsdl

TestClient_0004.composite

TestComposite1.composite

TestComposite4.composite

Service1.wsdl

Expected output

Negative test:

“exception”

POL_9018_TestCase


Testcase ID

POL_9018_TestCase

Test Assertion

POL-TA-90026

Description

A testcase to verify that a reference with propagatesTransaction on a noManagedTransaction component, results in an error from the runtime.

Artifacts

POL_9018_TestCase.java

Test_POL_9018.composite

TestInvocation.wsdl

TestClient_0004.composite

TestComposite1.composite

TestComposite4.composite

Service1.wsdl

Expected output

Negative test:

“exception”

POL_9019_TestCase


Testcase ID

POL_9019_TestCase

Test Assertion

POL-TA-90031

Description

Tests that where a <component/> <implementation/> is marked with the intent managedTransaction.local that a reference of the component is not marked with the transactedOneWay intent

Artifacts

POL_9019_TestCase.java

Test_POL_9019.composite

TestInvocation.wsdl

TestClient_0004.composite

Service1.wsdl

TestCompositeOneWayClient.composite

TestCompositeOneWay.composite

definitions.xml in POL_9019 contribution

Expected output

Negative test:

“exception”

POL_9020_TestCase


Testcase ID

POL_9020_TestCase

Test Assertion

POL-TA-90032

Description

Tests that where the <interface/> of a reference involves request/response operations, that the <reference/> using that interface is not marked with the transactedOneWay intent

Artifacts

POL_9020_TestCase.java

Test_POL_9020.composite

TestInvocation.wsdl

TestClient_0004.composite

Service1.wsdl

TestComposite1.composite

TestComposite4.composite

definitions.xml in POL_9020 contribution

Expected output

Negative test:

“exception”

POL_9021_TestCase


Testcase ID

POL_9021_TestCase

Test Assertion

POL-TA-90033

Description

Tests that where the <interface/> of a reference involves request/response operations, that the <reference/> using that interface is not marked with the immediateOneWay intent

Artifacts

POL_9021_TestCase.java

Test_POL_9021.composite

TestInvocation.wsdl

TestClient_0004.composite

Service1.wsdl

TestComposite1.composite

TestComposite4.composite

definitions.xml in POL_9021 contribution

Expected output

Negative test:

“exception”

POL_9022_TestCase


Testcase ID

POL_9022_TestCase

Test Assertion

POL-TA-90034

Description

Tests that where a <component/> <reference/> is marked with the asyncInvocation intent it is not also marked with the propagatesTransaction intent

Artifacts

POL_9022_TestCase.java

Test_POL_9022.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

POL_9023_TestCase


Testcase ID

POL_9023_TestCase

Test Assertion

POL-TA-90035

Description

Tests that where a <component/> <service/> is marked with the asyncInvocation intent it is not also marked with the propagatesTransaction intent

Artifacts

POL_9023_TestCase.java

Test_POL_9023.composite

TestInvocation.wsdl

TestClient_0004.composite

definitions.xml

Expected output

Negative test:

“exception”

2.5Section 10

POL_10001_TestCase


Testcase ID

POL_10001_TestCase

Test Assertion

POL-TA-100005

Description

A testcase to verify that the noListener intent is not used on a service.

Artifacts

POL_10001_TestCase.java

Test_POL_10001.composite

TestInvocation.wsdl

TestClient_0004.composite

Expected output

Negative test:

“exception”

2.6Section 11

POL_11001_TestCase


Testcase ID

POL_11001_TestCase

Test Assertion

POL-TA-110001

Description

A testcase to verify that the runtime rejects a composite that does not conform to the Policy FW schema.

Artifacts

POL_11001_TestCase.java

Test_POL_11001.composite

TestInvocation.wsdl

TestClient_0004.composite

Expected output

Negative test:

“exception”








3Catalog of Test Artifacts


3.1Composite Files - lower level

Name

Valid

Description

TestClient_0004.composite

Y

Contains a service, property and optional reference that receives control from the test client.

TestComposite1.composite

Y

Contains a component that implements Service1.

TestComposite4.composite

Y

Contains a component that implements Service1 and has a reference to another component.

TestCompositeSOAP.composite

Y

Contains the use of the SCA defined SOAP intent.


3.2Java Interfaces – General_Java contribution


Name

Description

Service1.java

Interface with one request/response operation called operation1

3.3Java Implementation Classes - General_Java


Name

Description

ASM_0002_Client.java

Basic class that receives operation call from test client, and has one optional reference

Service1Impl.java

Implements Service1 by returning the value of the serviceName property on the component

Service1Impl2.java

Implements Service1 by passing the invocation on to it's reference and then returning the value of the serviceName property on the component

3.4WSDL Interface Files - General


Name

Description

Service1.wsdl

PortType with one request/response operation called operation1

TestInvocation.wsdl

PortType used to invoke a test application

 

 


3.5Policy files - General


Name

Description

General - definitions.xml

Contains a base set of policySets and intents that are used to test syntactic conformance statements

NOTE: Some testcase contributions also have a definitions.xml file. The existence of such a file usually indicates that it contains a statically checkable error.


4Testcases Grouped by Capability

These three testcase groups can be found in the Test_Client contribution within the SCA Policy Testcases.


Testcase Group

Testcases

AllDirectAttachTests.java

POL_3001_TestCase, POL_3003_TestCase, POL_3004_TestCase, POL_3005_TestCase, POL_3006_TestCase, POL_3007_TestCase, POL_3008_TestCase, POL_3009_TestCase, POL_3011_TestCase, POL_3012_TestCase, POL_3013_TestCase, POL_3014_TestCase, POL_3015_TestCase, POL_3017_TestCase, POL_3018_TestCase, POL_3019_TestCase, POL_3020_TestCase, POL_4001_TestCase, POL_4002_TestCase, POL_4003_TestCase, POL_4004_TestCase, POL_4005_TestCase, POL_4006_TestCase, POL_4007_TestCase, POL_4008_TestCase, POL_4009_TestCase, POL_4012_TestCase, POL_4016_TestCase, POL_4018_TestCase, POL_4019_TestCase, POL_4020_TestCase, POL_4024_TestCase, POL_4027_TestCase, POL_4029_TestCase, POL_4030_TestCase, POL_4031_TestCase, POL_4032_TestCase, POL_4033_TestCase, POL_5001_TestCase, POL_9006_TestCase, POL_9009_TestCase, POL_9015_TestCase, POL_9016_TestCase, POL_9017_TestCase, POL_9018_TestCase, POL_9019_TestCase, POL_9020_TestCase, POL_9021_TestCase, POL_9022_TestCase, POL_9023_TestCase, POL_10001_TestCase, POL_11001_TestCase

AllExtAttachTests.java

POL_3001_TestCase, POL_3003_TestCase, POL_3004_TestCase, POL_3005_TestCase, POL_3006_TestCase, POL_3007_TestCase, POL_3008_TestCase, POL_3009_TestCase, POL_3011_TestCase, POL_3012_TestCase, POL_3013_TestCase, POL_3014_TestCase, POL_3015_TestCase, POL_3016_TestCase, POL_3017_TestCase, POL_3018_TestCase, POL_3019_TestCase, POL_3020_TestCase, POL_4001_TestCase, POL_4002_TestCase, POL_4003_TestCase, POL_4004_TestCase, POL_4005_TestCase, POL_4006_TestCase, POL_4007_TestCase, POL_4008_TestCase, POL_4009_TestCase, POL_4010_TestCase, POL_4012_TestCase, POL_4013_TestCase, POL_4015_TestCase, POL_4019_TestCase, POL_4020_TestCase, POL_4024_TestCase, POL_4027_TestCase, POL_4028_TestCase, POL_4029_TestCase, POL_4030_TestCase, POL_4031_TestCase, POL_4032_TestCase, POL_4033_TestCase, POL_5001_TestCase, POL_9006_TestCase, POL_9009_TestCase, POL_9015_TestCase, POL_9016_TestCase, POL_9017_TestCase, POL_9018_TestCase, POL_9019_TestCase, POL_9020_TestCase, POL_9021_TestCase, POL_9022_TestCase, POL_9023_TestCase, POL_10001_TestCase, POL_11001_TestCase

AllTests.java

POL_3001_TestCase, POL_3003_TestCase, POL_3004_TestCase, POL_3005_TestCase, POL_3006_TestCase, POL_3007_TestCase, POL_3008_TestCase, POL_3009_TestCase, POL_3011_TestCase, POL_3012_TestCase, POL_3013_TestCase, POL_3014_TestCase, POL_3015_TestCase, POL_3016_TestCase, POL_3017_TestCase, POL_3018_TestCase, POL_3019_TestCase, POL_3020_TestCase, POL_4001_TestCase, POL_4002_TestCase, POL_4003_TestCase, POL_4004_TestCase, POL_4005_TestCase, POL_4006_TestCase, POL_4007_TestCase, POL_4008_TestCase, POL_4009_TestCase, POL_4010_TestCase, POL_4012_TestCase, POL_4013_TestCase, POL_4018_TestCase, POL_4019_TestCase, POL_4020_TestCase, POL_4024_TestCase, POL_4027_TestCase, POL_4028_TestCase, POL_4029_TestCase, POL_4030_TestCase, POL_4031_TestCase, POL_4032_TestCase, POL_4033_TestCase, POL_5001_TestCase, POL_9006_TestCase, POL_9009_TestCase, POL_9015_TestCase, POL_9016_TestCase, POL_9017_TestCase, POL_9018_TestCase, POL_9019_TestCase, POL_9020_TestCase, POL_9021_TestCase, POL_9022_TestCase, POL_9023_TestCase, POL_10001_TestCase, POL_11001_TestCase


5Conformance

The artifacts contained in the sca-policy-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 one of the 3 groups of test cases described in Section 4 "TestCases grouped by Capability", producing the 'Expected Output'.


  1. Test Assertions for the SCA Policy Framework

This document defines Test Assertions for the SCA Policy specification:

http://docs.oasis-open.org/opencsa/sca-policy/sca-policy-1.1.pdf


The test assertions in this document follow the format defined in the OASIS Test Assertion Guidelines specification:

http://www.oasis-open.org/apps/group_public/download.php/30070/TestAssertionsGuidelines-draft-0-9-9-6.pdf


    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

POL-TA-nnnnn

 

[POLnnnnn]

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 - "POL" is for the SCA Policy specification. This is followed by "-TA-" to indicate that this identifier is for a test assertion. This is then followed by a unique 4 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 may be defined in terms of one or more other test assertions that must be true.


Predicate: The meat of the assertion - something that should evaluate 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 that may be attached to this test assertion - these tags can be used to group sets of assertions.

    1. Test Assertions for SCA Policy Framework Section 3


Assertion ID

POL-TA-30001

Source

[POL30001]

Target

<binding/> element with @requires attribute containing one intent

Prerequisites

Configuration of the <binding/> conflicts with the intent

Predicate

SCA runtime raises an error

Prescription Level

Mandatory

Tags

“intents”, “bindingInstance”, "conflict"

Comment

Testing note: WS binding which points to a non-SOAP WSDL binding, where the reference/service @requires the SOAP intent.


Assertion ID

POL-TA-30002

Source

[POL30001]

Target

<binding> element

Prerequisites

1) <binding/> element has a policySet either directly or externally attached.

2) Configuration of the <binding/> conflicts with the policySet

Predicate

SCA runtime raises an error

Prescription Level

Mandatory

Tags

“intents”, “bindingInstance”, "conflict"



Assertion ID

POL-TA-30003

Source

[POL30002]

Target

QName of <intent> element

Prerequisites

More than one <intent> elements are defined in the SCA Domain

Predicate

The QName of an <intent> element is unique amongst the set of all intents in the SCA domain

Prescription Level

Mandatory

Tags

“intent”, “definitions.xml”, "QName"



Assertion ID

POL-TA-30004

Source

[POL30004]

Target

The @default attribute of <qualifier> child elements of an <intent>

Prerequisites

<intent> element has more than one <qualifier> child elements

Predicate

Only one <qualifier> element for an <intent> has a @default attribute value of “true”

Prescription Level

Mandatory

Tags

“intent”, “definitions.xml”



Assertion ID

POL-TA-30005

Source

[POL30005]

Target

The @name attribute of <qualifier> child element of an <intent>

Prerequisites

<intent> element has more than one <qualifier> child element

Predicate

The @name attribute of the qualifier is unique within all <qualifier> child elements for the <intent>

Prescription Level

Mandatory

Tags

“intent”, “definitions.xml”



Assertion ID

POL-TA-30006

Source

[POL30006]

Target

The @name attribute of a profile intent

Prerequisites

 

Predicate

The @name attribute of a profile <intent> does not contain a “.” character

Prescription Level

Mandatory

Tags

“intent”, “definitions.xml”, "@name"



Assertion ID

POL-TA-30007

Source

[POL30007]

Target

SCDL element with a profile intent attached to it.

Prerequisites

 

Predicate

Each intent required by the profile intent is satisfied.

Prescription Level

Mandatory

Tags

“profileIntent”



Assertion ID

POL-TA-30008

Source

[POL30008]

Target

@provides attribute of <intentMap/> subelement of a <policySet> element

Prerequisites

 

Predicate

Value of the @provides attribute of the <intentMap> corresponds to an unqualified intent listed in the @provides attribute of the parent <policySet> element

Prescription Level

Mandatory

Tags

“policySet”, “intentMap”, “definitions.xml”, "@provides"



Assertion ID

POL-TA-30010

Source

[POL30010]

Target

<policySet/> element that has a qualifiable intent listed in its @provides attribute

Prerequisites

 

Predicate

<policySet/> contains at most one <intentMap/> subelement with a @provides attribute set to the the unqualified form of the qualifiable intent

Prescription Level

Mandatory

Tags

“policySet”, “intentMap”, “definitions.xml”, "'@provides"



Assertion ID

POL-TA-30011

Source

[POL30011]

Target

<policySet/> with policies defined using wsp:PolicyAttachment elements or extension elements

Prerequisites

<policySet/> has a @provides attribute containing one or more intents

Predicate

The set of policies specified by the child elements satisfies all the intents listed in the @provides attribute

Prescription Level

Mandatory

Tags

“policySet”, “definitions.xml”



Assertion ID

POL-TA-30013

Source

[POL30013]

Target

<policySet/> containing a reference to a second <policySet> by means of a <policySetReference/>

Prerequisites

<policySet/> has a @provides attribute containing a first set of intents

Referenced <policySet/> has a @provides attribute containing a second set of intents

Predicate

The second set of intents is a subset of the first set of intents

Prescription Level

Mandatory

Tags

“policySet”, “definitions.xml”, "@provides", "policySetReference"



Assertion ID

POL-TA-30015

Source

[POL30015]

Target

QName listed in the @requires attribute of an <intent> element

Prerequisites

 

Predicate

QName is the QName of an intent in the SCA Domain.

Prescription Level

Mandatory

Tags

“intent”, “definitions.xml”, "@requires", "QNname"



Assertion ID

POL-TA-30016

Source

[POL30016]

Target

QName listed in the @excludes attribute of an <intent> element

Prerequisites

 

Predicate

QName is the QName of an intent in the SCA Domain.

Prescription Level

Mandatory

Tags

“intent”, “definitions.xml”, "@excludes", "QName"



Assertion ID

POL-TA-30017

Source

[POL30017]

Target

The QName of <policySet> element

Prerequisites

More than one <policySet> element is defined in the SCA Domain

Predicate

QName of a <policySet> element is unique amongst all the <policySet> elements in the SCA Domain.

Prescription Level

Mandatory

Tags

“policySet”, “definitions.xml”



Assertion ID

POL-TA-30018

Source

[POL30018]

Target

@appliesTo attribute of a <policySet> element

Prerequisites

 

Predicate

The contents of the @appliesTo attribute is a valid XPath 1.0 production expr.

Prescription Level

Mandatory

Tags

“policySet”, “definitions.xml”, "@appliesTo", "XPath"



Assertion ID

POL-TA-30019

Source

[POL30019]

Target

@attachTo attribute of a <policySet> element

Prerequisites

 

Predicate

The contents of the @attachTo attribute is a valid XPath 1.0 production expr.

Prescription Level

Mandatory

Tags

“policySet”, “definitions.xml”, "@attachTo", "XPath"



Assertion ID

POL-TA-30020

Source

[POL30020]

Target

<intentMap> child element of <policySet>

Prerequisites

<intentMap/> @provides attribute specifies a qualifiable intent

Predicate

<intentMap> element specifies all possible qualifiers for the qualified intent specified in the @provides attribute

Prescription Level

Mandatory

Tags

“policySet”, “intentMap”, “definitions.xml”



Assertion ID

POL-TA-30021

Source

[POL30021]

Target

<policySet/> element with an <intentMap/> subelement

Prerequisites

<intentMap/> element has an @provides attribute with one or more intent

Predicate

<policySet/> has an @provides attribute which contains all of the intents specified in the @provides attribute of the <intentMap/>

Prescription Level

Mandatory

Tags

“policySet”, “intentMap”, “definitions.xml”, “@provides"




Assertion ID

POL-TA-30025

Source

[POL30024]

Target

SCA Domain

Prerequisites

 

Predicate

The set of intent definitions contained in the Policy_Intents_Definitions.xml described in the Appendix “Intent Definitions” of the SCA Policy Framework specification are in the SCA Domain.

Prescription Level

Mandatory

Tags

“intent”, "Policy_Intents_Definitions.xml” "SCA Domain"


Assertion ID

POL-TA-30026

Source

[POL30025]

Target

<intent> element

Prerequisites

The qualifier is used as the default qualifier

 

Predicate

The qualifier definition has @default=true

Prescription Level

Mandatory

Tags

“intent”, “qualifier”



    1. Test Assertions for SCA Policy Framework Section 4


Assertion ID

POL-TA-40001

Source

[POL40001,POL40010]

Target

SCDL Element

Prerequisites

a) An SCA implementation that supports both Direct Attachment and External Attachment mechanisms

b) The SCDL element has a directly attached policySet

c) There is a policySet using external attachment pointing to the same SCDL element

Predicate

The directly attached policySet is ignored and the externally attached policySet is applied

Prescription Level

Mandatory

Tags

“policySets”, “externalAttachment”, “directAttachment”



Assertion ID

POL-TA-40002

Source

[POL40001, POL40010]

Target

SCDL Element

Prerequisites

a) An SCA implementation that supports both Direct Attachment and External Attachment mechanisms

b) The SCDL element has only a directly attached policySet

Predicate

The directly attached policySet is applied.

Prescription Level

Mandatory

Tags

“policySets”, “externalAttachment”, “directAttachment”



Assertion ID

POL-TA-40003

Source

[POL40001,POL40010]

Target

SCDL Element

Prerequisites

a) An SCA implementation that supports both Direct Attachment and External Attachment mechanisms

b) There is only a policySet applied to the SCDL element using external attachment

Predicate

The externally attached policySet is applied.

Prescription Level

Mandatory

Tags

“policySets”, “externalAttachment”, “directAttachment”



Assertion ID

POL-TA-40004

Source

[POL40004]

Target

<component> element

Prerequisites

a) A qualifiable intent expressed lower in the implementation hierarchy

b) A qualified intent expressed on the component

Predicate

The qualified intent applies to the component.

Prescription Level

Mandatory

Tags

“intent”, “attachment”, “implementationHierarchy”



Assertion ID

POL-TA-40005

Source

[POL40004]

Target

<composite/> <service/> or <reference/> element which has a qualified intent expressed

Prerequisites

The unqualified form of the same qualifiable intent expressed on the <component/><service/> or <component/><reference/> element which is promoted by the <composite/><service/> or <composite/><reference/> element

Predicate

The qualified intent applies to the composite service or reference.

Prescription Level

Mandatory

Tags

“intent”, “attachment”, “implementationHierarchy”



Assertion ID

POL-TA-40006

Source

[POL40005]

Target

SCDL element

Prerequisites

a) The element inherits a set of intents from higher in the structural hierarchy (S1)

b) zero or more intents are applied directly to the element (S2)

c) no intents in S1 are mutually exclusive to any intent in S2

d) the UNION of S1 and S2 does NOT contain qualified and unqualified forms of the same intent

Predicate

The UNION of the set of intents in S1 and S2 are applied to the element

Prescription Level

Mandatory

Tags

“intent”, “attachment”, “structuralHierarchy”



Assertion ID

POL-TA-40007

Source

[POL40005]

Target

SCDL element

Prerequisites

a) The element inherits a set of intents from higher in the structural hierarchy (S1)

b) one or more intents are applied directly to the element (S2)

c) some intents in S2 are mutually exclusive to some intents in S1

d) the UNION of S1 and S2 does NOT contain qualified and unqualified forms of the same intent

Predicate

The intents in S2 and the intents from S1 that are NOT mutually exclusive with the intents in S2 are applied to the element

Prescription Level

Mandatory

Tags

“intent”, “attachment”, “structuralHierarchy”

Comment

There could be more than one mutually exclusive intent (Same as V1)



Assertion ID

POL-TA-40008

Source

[POL40005]

Target

SCDL element

Prerequisites

a) The element inherits a set of intents from higher in the structural hierarchy (S1)

b) zero or more intents are applied directly to the element (S2)

c) no intents in S1 are mutually exclusive to any intent in S2

d) the UNION of S1 and S2 contains qualified and unqualified forms of the same intent (S3)

Predicate

All intents in S3 that are not the unqualified form of a qualifiable intent that is also in S3 are applied to the element

Prescription Level

Mandatory

Tags

“intent”, “attachment”, “structuralHierarchy”

Comment

[POL40005] allows qualified intents from either source



Assertion ID

POL-TA-40009

Source

[POL40006]

Target

<component> element

Prerequisites

a) A component has a policySet attached to it.

b) The component’s componentType has a policySet attached to it.

Predicate

The policySet attached to the componentType is ignored.

Prescription Level

Mandatory

Tags

“intent”, “attachment”, “componentType” "component"



Assertion ID

POL-TA-40010

Source

[POL40007]

Target

<reference> with a configured <binding> subelement

Prerequisites

a) A reference has a directly or externally attached policySet.

b) The policySet uses WS-Policy syntax.

c) The configured binding instance points to a service outside the SCA Domain.

d) The target service is configured with WS-Policy based policies.

 

Predicate

WS-Policy compatibility of the reference with its target service is assessed using strict WS-Policy intersection.

Prescription Level

Mandatory

Tags

"policyMatching" "intersection" "WS-Policy" "reference"



Assertion ID

POL-TA-40011

Source

[POL40007]

Target

<service> with a configured <binding> subelement

Prerequisites

a) A service with directly or externally attached policySet.

b) The policySet uses WS-Policy syntax.

c) The configured binding instance enables access to clients outside the SCA Domain.

d) An external client is configured with WS-Policy based policies.

 

Predicate

WS-Policy compatibility of the client with the service is assessed using strict WS-Policy intersection.

Prescription Level

Mandatory

Tags

policyMatching



Assertion ID

POL-TA-40012

Source

[POL40009]

Target

SCDL element with a set of 2 or more intents applied to it

Prerequisites

 

Predicate

The intent set contains no pair of intents that are mutually exclusive.

Prescription Level

Mandatory

Tags

"policyMatching" "mutually exclusive" "intents"



Assertion ID

POL-TA-40013

Source

[POL40010, POL40011]

Target

SCDL Element with a directly attached policySet

Prerequisites

The SCA runtime only supports external attachment

Predicate

The directly attached policySet is ignored

Prescription Level

Mandatory

Tags

“policySet”, “attachment”, “externalAttachment”


Assertion ID

POL-TA-40014

Source

[POL40010, POL40011]

Target

SCDL Element with an externally attached policySet

Prerequisites

The SCA runtime only supports external attachment

Predicate

The externally attached policySet is applied

Prescription Level

Mandatory

Tags

“policySet”, “attachment”, “externalAttachment”



Assertion ID

POL-TA-40015

Source

[POL40010, POL40011]

Target

SCDL Element with a directly attached policySet and a different externally attached policySet

Prerequisites

The SCA runtime only supports external attachment

Predicate

The directly attached policySet is ignored and the externally attached policySet is applied.

Prescription Level

Mandatory

Tags

“policySet”, “attachment”, “externalAttachment”



Assertion ID

POL-TA-40016

Source

[POL40010, POL40012]

Target

SCDL Element with an externally attached policySet

Prerequisites

The SCA runtime only supports direct attachment

Predicate

The externally attached policySet is ignored.

Prescription Level

Mandatory

Tags

“policySet”, “attachment”, “directAttachment”



Assertion ID

POL-TA-40017

Source

[POL40010, POL40012]

Target

SCDL Element with a directly attached policySet

Prerequisites

The SCA runtime only supports direct attachment

Predicate

The directly attached policySet is applied.

Prescription Level

Mandatory

Tags

“policySet”, “attachment”, “directAttachment”



Assertion ID

POL-TA-40018

Source

[POL40010, POL40012]

Target

SCDL Element with a directly attached policySet and a different externally attached policySet

Prerequisites

The SCA runtime only supports direct attachment

Predicate

The externally attached policySet is ignored and the directly attached policySet is applied.

Prescription Level

Mandatory

Tags

“policySet”, “attachment”, “directAttachment”



Assertion ID

POL-TA-40020

Source

[POL40014]

Target

SCDL element with one or more elements below it in its implementation hierarchy

Prerequisites

An intent is applied to an element in the implementation hierarchy.

Predicate

The intent applies to the element

Prescription Level

Mandatory

Tags

“intent” “attachment”, “implementationHierarchy”



Assertion ID

POL-TA-40021

Source

[POL40015]

Target

SCDL Element

Prerequisites

a) Unqualified form of a qualifiable intent is attached to a SCDL element in the <componentType/> of an implementation.

b) Qualified form of the same qualifiable intent is attached to the corresponding element in a component implemented by the implementation.

Predicate

The qualified intent applies to the child elements of the SCDL Element

Prescription Level

Mandatory

Tags

“intent”, “attachment”, “implementationHierarchy”, “structural hierarchy”



Assertion ID

POL-TA-40022

Source

[POL40016]

Target

Component service

Prerequisites

a) service uses an interface with one or more intents attached or an <interface> element with one or more intents attached.

b) a binding that is configured for the service

Predicate

Intents attached to interface apply to the service and to the binding.

Prescription Level

Mandatory

Tags

“intent” “attachment”, “interface”, “binding”



Assertion ID

POL-TA-40023

Source

[POL40016]

Target

Component reference

Prerequisites

a) reference uses an interface with one or more intents attached or an <interface> element with one or more intents attached.

b) a binding that is configured for the reference

Predicate

Intents attached to interface apply to the reference and to the binding.

Prescription Level

Mandatory

Tags

“intent” , “attachment”, “interface”, “binding”



Assertion ID

POL-TA-40024

Source

[POL40016]

Target

Component service

Prerequisites

a) service uses an interface with one or more policySets attached or an <interface> element with one or more policySets attached.

b) a binding that is configured for the service

Predicate

policySets attached to interface apply to the service and the binding.

Prescription Level

Mandatory

Tags

“policySet”, “attachment”, “interface”, “binding”



Assertion ID

POL-TA-40025

Source

[POL40016]

Target

Component reference

Prerequisites

a) reference uses an interface with one or more policySets attached or an <interface> element with one or more policySets attached.

b) a binding that is configured for the reference

Predicate

policySets attached to interface apply to the reference and to the binding.

Prescription Level

Mandatory

Tags

“policySet”, “attachment”, “interface”, “binding”



Assertion ID

POL-TA-40026

Source

[POL40017]

Target

Composite document

Prerequisites

Required intent set for an element in the composite contains a pair of mutually exclusive intents.

Predicate

Composite document is rejected and the SCA runtime raises an error

Prescription Level

Mandatory

Tags

“intent” “attachment” "mutually exclusive"



Assertion ID

POL-TA-40027

Source

[POL40018]

Target

Component Service

Prerequisites

a) service has one or more intents in its required intent set

b) zero or more bindings (SCA binding is used if no others are configured)

c) zero or more policySets (attached directly and/or externally)

Predicate

All the intents in the required intent set are provided by the set of bindings and policySets which apply to the service.

Prescription Level

Mandatory

Tags

“intent” “policySets”, “service”, “binding”



Assertion ID

POL-TA-40028

Source

[POL40018]

Target

Component Reference

Prerequisites

a) reference has one or more intents in its required intent set

b) zero or more bindings

c) zero or more policySets (attached directly and/or externally)

Predicate

All the intents in the required intent set are provided by the set of bindings and policySets which apply to the reference.

Prescription Level

Mandatory

Tags

“intent” “policySets”, “reference”, “binding”



Assertion ID

POL-TA-40036

Source

[POL40018]

Target

Component implementation

Prerequisites

a) implementation has one or more intents in its required intent set

b) zero or more intents are provided by the implementationType

c) zero or more policySets (attached directly and/or externally)

Predicate

All the intents in the required intent set are provided by the combination of the implementationType and any policySets which apply to the implementation.

Prescription Level

Mandatory

Tags

“intent” “policySets”, “reference”, “binding”



Assertion ID

POL-TA-40037

Source

[POL40019]

Target

<component/> <service/>

Prerequisites

a) <component/> has <implementation/> which has an <interface/> attached to the <service/> corresponding to the <component> <service/>

b) <interface/> has an intent applied to it, either in the @requires attribute of the <interface/> element or in the declaration of the interface artifact

Predicate

The intent applies to the <component/> <service/>

Prescription Level

Mandatory

Tags

“intent” “”, “attachment”, “interface”, “service”



Assertion ID

POL-TA-40038

Source

[POL40019]

Target

<component/> <reference/>

Prerequisites

a) <component/> has <implementation/> which has an <interface/> attached to the <reference/> corresponding to the <component> <reference/>

b) <interface/> has an intent applied to it, either in the @requires attribute of the <interface/> element or in the declaration of the interface artifact

Predicate

The intent applies to the <component/> <reference/>

Prescription Level

Mandatory

Tags

“intent” “”, “attachment”, “interface”, “reference”



Assertion ID

POL-TA-40039

Source

[POL40020]

Target

QName of bindingType element

Prerequisites

More than one bindingType is defined in the SCA Domain

Predicate

The QName of the bindingType is unique amongst the set of bindingTypes in the SCA Domain.

Prescription Level

Mandatory

Tags

“bindingType”



Assertion ID

POL-TA-40040

Source

[POL40021]

Target

Binding implementation

Prerequisites

a) the associated bindingType has one or more intents listed in the @alwaysProvides attribute

b) the associated bindingType has one or more intents listed in the @mayProvides attribute

Predicate

The binding implementation implements all the intents listed in its @alwaysProvides and @mayProvides attributes.

Prescription Level

Mandatory

Tags

“intent”, “alwaysProvides”, “mayProvides”, “bindingType”



Assertion ID

POL-TA-40041

Source

[POL40022, POL40025]

Target

A reference that is connected to a service (i.e. a wire)

Prerequisites

a) one or more policySets (using policy language X) applied to the reference

b) one or more policySets (using policy language X) applied to the service

Predicate

The wire is valid if the policySets at each end of the wire are compatible, using the compatibility rules of policy language X.

Prescription Level

Mandatory

Tags

“policySets” “compatibility”



Assertion ID

POL-TA-40042

Source

[POL40023, POL40025]

Target

A reference that is connected to a service (i.e. a wire)

Prerequisites

a) one or more policySets (using policy language X) applied to the reference

b) one or more policySets (using policy language Y) applied to the service

Predicate

The wire is not valid.

Prescription Level

Mandatory

Tags

“policySets” “compatibility”



Assertion ID

POL-TA-40043

Source

[POL40024, POL40025]

Target

A reference that is connected to a service (i.e. a wire)

Prerequisites

a) one or more policySets (using WS-Policy language) applied to the reference

b) one or more policySets (using WS-Policy language) applied to the service

Predicate

Wire is valid if the policySets are compatible using WS-Policy strict intersection.

Prescription Level

Mandatory

Tags

“policySet”, “compatibility”, “WS-Policy”



Assertion ID

POL-TA-40049

Source

[POL40002]

Target

<policySet> element with @attachTo attribute

Prerequisites

a) A component with a <property> element

b) The policySet is deployed to the SCA Domain

c) The component is deployed to the SCA Domain

Predicate

The @attachTo attribute does not resolve to the component property

Prescription Level

Mandatory

Tags

“policySet”, “attachment”


Assertion ID

POL-TA-40050

Source

[POL40027]

Target

The required intent set for a component service or reference

Prerequisites

The service or reference interface definition contains attached intents

Predicate

The required intent set for the service or reference contains the intents from the interface definition

Prescription Level

Mandatory

Tags

“intent”, “attachment”, “interface”



Assertion ID

POL-TA-40057

Source

[POL40034]

Target

Component service

Prerequisites

  1. Component is contained within a composite which is deployed into the SCA Domain

  2. Component service has no directly attached intents

  3. SCA Domain already contains an <externalAttachment/> element which references an intent and which has an @attachTo attribute which includes the component service as one of the places to which it attaches the intent

  4. Component service has no directly attached policySets

  5. SCA Domain already contains a policySet with an @attachTo attribute which targets component services which have the intent referenced by the <externalAttachment/> element

Predicate

The component service runs with the policies present in the policySet

Prescription Level

Mandatory

Tags

“intent”, “policySet”. “attachment”, “externalAttachment”, “domain”



Assertion ID

POL-TA-40058

Source

[POL40035]

Target

@attachTo attribute of a <externalAttachment> element

Prerequisites

 

Predicate

The contents of the @attachTo attribute is a valid XPath 1.0 production expr.

Prescription Level

Mandatory

Tags

“externalAttachment”, “definitions.xml”, "@attachTo", "XPath"



    1. Test Assertions for SCA Policy Framework Section 5


Assertion ID

POL-TA-50001

Source

[POL50001]

Target

<implementationType/> @name attribute

Prerequisites

 

Predicate

@name attribute value of the implementationType element is the QName of an XSD global element for <implementation.xxx> elements. .

Prescription Level

Mandatory

Tags

“implementationType”


    1. Test Assertions for SCA Policy Framework Section 7


Assertion ID

POL-TA-70001

Source

[POL70001]

Target

SCA Runtime

Prerequisites

authorization intent is present on a wire.

Predicate

An authorization check is made during invocation of the service.

Prescription Level

Mandatory

Tags

“authorization”, “intent”



Assertion ID

POL-TA-70002

Source

[POL70009]

Target

SCA Runtime

Prerequisites

confidentiality intent is present on a wire.

Predicate

Messages exchanged over the wire are only viewable the two parties that make up the wire.

Prescription Level

Mandatory

Tags

“confidentiality”, “intent”



Assertion ID

POL-TA-70003

Source

[POL70010]

Target

SCA Runtime

Prerequisites

integrity intent is present on a wire.

Predicate

Messages exchanged over the wire are not altered by a third party.

Prescription Level

Mandatory

Tags

“integrity”, “intent”



Assertion ID

POL-TA-70004

Source

[POL70011]

Target

SCA Runtime

Prerequisites

a) A serverAuthentication, clientAuthentication, confidentiality. or integrity intent is present on a wire.

b) The intent is qualified by transport.

Predicate

The SCA runtime delegates the corresponding functionality to the transport layer of the communications protocol.

Prescription Level

Mandatory

Tags

“authentication”, “confidentiality”, “integrity”, “intent”



Assertion ID

POL-TA-70005

Source

[POL70012]

Target

SCA Runtime

Prerequisites

a) A serverAuthentication, clientAuthentication, confidentiality. or integrity intent is present on a wire.

b) The intent is qualified by message.

Predicate

The SCA runtime delegates the corresponding functionality to the message layer of the communications protocol.

Prescription Level

Mandatory

Tags

“authentication”, “confidentiality”, “integrity”, “intent”



Assertion ID

POL-TA-70006

Source

[POL70013]

Target

SCA Runtime

Prerequisites

The serverAuthentication intent is present on a wire.

Predicate

The SCA runtime authenticates the server to the client.

Prescription Level

Mandatory

Tags

“authentication”, “intent”



Assertion ID

POL-TA-70007

Source

[POL70014]

Target

SCA Runtime

Prerequisites

The clientAuthentication intent is present on a wire.

Predicate

The SCA runtime authenticates the client to the server.

Prescription Level

Mandatory

Tags

“authentication”, “intent”


    1. Test Assertions for SCA Policy Framework Section 8


Assertion ID

POL-TA-80001

Source

[POL80001]

Target

SCA Runtime

Prerequisites

The atLeastOnce intent is present on a wire.

Predicate

The SCA runtime delivers at least one copy of the message to the destination service implementation.

Prescription Level

Mandatory

Tags

“atLeastOnce”, “intent”



Assertion ID

POL-TA-80002

Source

[POL80002]

Target

SCA Runtime

Prerequisites

The atMostOnce intent is present on a wire.

Predicate

The SCA runtime delivers at most one copy of the message to the destination service implementation.

Prescription Level

Mandatory

Tags

“atMostOnce”, “intent”



Assertion ID

POL-TA-80003

Source

[POL80003]

Target

SCA Runtime

Prerequisites

The ordered intent is present on a wire.

Predicate

The SCA runtime delivers messages sent by each client to the service in the order that the messages were sent by the client.

Prescription Level

Mandatory

Tags

“ordered”, “intent”



Assertion ID

POL-TA-80004

Source

[POL80004]

Target

SCA Runtime

Prerequisites

The exactlyOnce intent is present on a wire.

Predicate

The SCA runtime delivers one and only one copy of the message to the destination service implementation.

Prescription Level

Mandatory

Tags

“exactlyOnce”, “intent”


    1. Test Assertions for SCA Policy Framework Section 9


Assertion ID

POL-TA-90003

Source

[POL90003]

Target

Implementation of a component marked with managedTransaction.global intent.

Prerequisites

 

Predicate

The implementation runs in a global transaction.

Prescription Level

Mandatory

Tags

“managedTransaction.global”, “intent”



Assertion ID

POL-TA-90004

Source

[POL90004]

Target

Implementation of a component marked with managedTransaction.local intent.

Prerequisites

 

Predicate

The implementation runs in a local transaction.

Prescription Level

Mandatory

Tags

“managedTransaction.local”, “intent”, “transactionContext”



Assertion ID

POL-TA-90006

Source

[POL90006]

Target

A component marked with managedTransaction.local intent.

Prerequisites

The component invokes a remotable service.

Predicate

Local transaction context is not propagated to the remotable service.

Prescription Level

Mandatory

Tags

“localTransaction”, “intent”, “transactionContext”



Assertion ID

POL-TA-90007

Source

[POL90007]

Target

Implementation of a component marked with noManagedTransaction intent.

Prerequisites

a) A service of the component is invoked by a client.

b) A transaction is propagated from the client with the service invocation.

Predicate

The component is not executed under the propagated transaction.

Prescription Level

Mandatory

Tags

“noManagedTransaction”, “intent”, “transactionContext”

Comment

The client for a test based on this test assertion is going to have to be a non-SCA client since the combination of "propagatesTransaction" and "noManagedTransaction" would result in an error in an SCA composite which attempted to model the interaction implied by this assertion.



Assertion ID

POL-TA-90008

Source

[POL90008]

Target

Component implementation with a reference with @requires=”transactedOneWay”.

Prerequisites

a) Component runs under a global transaction.

c) Reference is wired to Component B using a transaction aware binding that supports the transactedOneWay intent.

d) Component invokes the reference using a one-way operation.

e) Component A rolls back its transaction.

Predicate

Component B is not invoked.

Prescription Level

Mandatory

Tags

“transactedOneWay”, “intent”



Assertion ID

POL-TA-90009

Source

[POL90009]

Target

<reference/> of component that is not configured to run under a global transaction.

Prerequisites

 

Predicate

Reference is not marked with the transactedOneWay intent.

Prescription Level

Mandatory

Tags

“transactedOneWay”, “intent” "reference"



Assertion ID

POL-TA-90010

Source

[POL90009]

Target

<reference/> of component with a binding that does not support transactional message sending

Prerequisites

 

Predicate

Rreference is not marked with the transactedOneWay intent.

Prescription Level

Mandatory

Tags

“transactedOneWay”, “intent”



Assertion ID

POL-TA-90011

Source

[POL90010]

Target

Component with a <service/> marked with @requires="transactedOneWay".

Prerequisites

a) Component runs under a global transaction.

c) Client component is wired to the component using a transaction aware binding that supports the transactedOneWay intent.

d) Client component invokes the component via a one-way operation.

e) Client component rolls back its transaction.

Predicate

The component is not invoked.

Prescription Level

Mandatory

Tags

“transactedOneWay”, “intent”, “transactionContext”



Assertion ID

POL-TA-90012

Source

[POL90011]

Target

<service/> of component that is not configured to run under a global transaction.

Prerequisites

 

Predicate

service is not marked with the transactedOneWay intent.

Prescription Level

Mandatory

Tags

“transactedOneWay”, “intent”



Assertion ID

POL-TA-90013

Source

[POL90011]

Target

<service/> of component that has a <binding/> that does not support transactional message sending

Prerequisites

 

Predicate

service is not marked with the transactedOneWay intent.

Prescription Level

Mandatory

Tags

“transactedOneWay”, “intent”




Assertion ID

POL-TA-90016

Source

[POL90012]

Target

Component <reference/> with @requires=”immediateOneWay”

Prerequisites

a) Component runs under a global transaction

c) <reference/> is wired to target service using a transaction aware binding that supports the immediateOneWay intent

d) Component invokes the reference via a one-way operation

e) Component rolls back its transaction

Predicate

Target service is invoked once and only once

Prescription Level

Mandatory

Tags

“immediateOneWay”, “intent”



Assertion ID

POL-TA-90017

Source

[POL90013]

Target

Component <service/> with @requires="immediateOneWay"

Prerequisites

a) Client is wired to the <service/> using a transaction aware binding that supports the immediateOneWay intent

b) Client runs under a global transaction

d) Client invokes the <service/> via a one-way operation

e) Client rolls back its transaction

Predicate

<service/> is invoked once and only once

Prescription Level

Mandatory

Tags

“immediateOneWay”, “intent” "rollback"



Assertion ID

POL-TA-90018

Source

[POL90015, POL90016, POL90020]

Target

Component <service/> marked with @requires=”propagatesTransaction”

Prerequisites

a) Client component has a reference with @requires=”propagatesTransaction

b) Client component runs under a global transaction

c) Client component is wired to the <service/> using a transaction aware binding that supports the propagatesTransaction intent

d) Client component invokes the <service/> via a request/response operation

Predicate

<service/> operation runs under the client component’s transaction.

Prescription Level

Mandatory

Tags

“propagatesTransaction”, “intent”, “transactionContext”





Assertion ID

POL-TA-90020

Source

[POL90017, POL90022]

Target

Component <service/> marked with @requires=”suspendsTransaction”

Prerequisites

a) Client component has a reference with @requires=”suspendsTransaction

b) Client component runs under a global transaction

c) Client component is wired to <service/> using a transaction aware binding that supports the suspendsTransaction intent

d) Client component invokes <service/> via a request/response operation

Predicate

<service/> operation does not run under client component’s transaction.

Prescription Level

Mandatory

Tags

“suspendsTransaction”, “intent”, “transactionContext”



Assertion ID

POL-TA-90021

Source

[POL90019]

Target

Component <service/>

Prerequisites

Component is marked with the managedTransaction.local intent

Predicate

<service/> is not marked with the propagatesTransaction intent

Prescription Level

Mandatory

Tags

“propagatesTransaction”, “managedTransaction.local”, ”, “intent”



Assertion ID

POL-TA-90022

Source

[POL90019]

Target

Component <service/>

Prerequisites

Component is marked with the noManagedTransaction intent

Predicate

<service/> is not marked with the propagatesTransaction intent

Prescription Level

Mandatory

Tags

“propagatesTransaction”, “noManagedTransaction”, “intent”




Assertion ID

POL-TA-90025

Source

[POL90023]

Target

Component <reference/>

Prerequisites

Component is marked with the managedTransaction.local intent

Predicate

<reference/> is not marked with the propagatesTransaction intent

Prescription Level

Mandatory

Tags

“propagatesTransaction”, “managedTransaction.local”, ”, “intent”



Assertion ID

POL-TA-90026

Source

[POL90023]

Target

Component <reference/>

Prerequisites

Component is marked with the noManageTransaction intent

Predicate

<reference/> is not marked with the propagatesTransaction intent

Prescription Level

Mandatory

Tags

“propagatesTransaction”, “noManagedTransaction”, “intent”



Assertion ID

POL-TA-90027

Source

[POL90024]

Target

Component reference with a one-way operation

Prerequisites

a) Component is marked to run under a transaction

b) Component invokes a method of the reference marked @OneWay

Predicate

Transaction context is not propagated with the message sent from the reference

Prescription Level

Mandatory

Tags

“transactionContext”, “intent”



Assertion ID

POL-TA-90028

Source

[POL90025]

Target

Component reference with a one-way operation and also marked with propagatesTransaction intent.

Prerequisites

a) Component is marked to run under a transaction

b) Component implementation invokes a method of the reference marked @OneWay

Predicate

Transaction context is not propagated with the message sent from the reference

Prescription Level

Mandatory

Tags

“propagatesTransaction”, “intent”



Assertion ID

POL-TA-90030

Source

[POL90027]

Target

<component/> <service/>

Prerequisites

<component/> <implementation/> marked with managedTransaction.local intent

Predicate

<service/> is not marked with the transactedOneWay intent

Prescription Level

Mandatory

Tags

“transactedOneWay”, “managedTransaction.local”, ,“intent”



Assertion ID

POL-TA-90031

Source

[POL90027]

Target

<component/> <reference/>

Prerequisites

<component/> <implementation/> marked with managedTransaction.local intent

Predicate

<reference/> is not marked with the transactedOneWay intent

Prescription Level

Mandatory

Tags

“transactedOneWay”, “noManagedTransaction”,“intent”


Assertion ID

POL-TA-90032

Source

[POL90028]

Target

<component/> <interface/operation>

Prerequisites

<component/> <interface/operation> is a request-response operation

Predicate

<interface/operation> is not marked with the transactedOneWay intent.

Prescription Level

Mandatory

Tags

“transactedOneWay”,“intent”



Assertion ID

POL-TA-90033

Source

[POL90029]

Target

<component/> <interface/operation>

Prerequisites

<component/> <interface/operation> is a request-response operation

Predicate

<interface/operation> is not marked with the immediateOneWay intent.

Prescription Level

Mandatory

Tags

“immediateOneWay”,“intent”

Assertion ID

POL-TA-90034

Source

[POL90030]

Target

<component/> <reference/>

Prerequisites

<component/> <reference/> marked with the asynchInvocation intent

Predicate

<component/> <reference/> is not marked with the propagatesTransaction intent

Prescription Level

Mandatory

Tags

“asynchInvocation”, “propagatesTransaction”,“intent”



Assertion ID

POL-TA-90035

Source

[POL90030]

Target

<component/> <service/>

Prerequisites

<component/> <service/> marked with the asynchInvocation intent

Predicate

<component/> <service/> is not marked with the propagatesTransaction intent

Prescription Level

Mandatory

Tags

“asynchInvocation”, “propagatesTransaction”,“intent”



Assertion ID

POL-TA-90036

Source

[POL90031]

Target

<component/> <service/> marked with asynchInvocation intent

Prerequisites

a) Client component has a reference with @requires=”propagatesTransaction

b) Client component runs under a global transaction

c) Client component is wired to <service/> using a transaction aware binding that supports the propagatesTransaction intent

d) Client component invokes <service/> via a request/response operation

Predicate

<service/> behaves as if it were marked with the suspendsTtransaction intent

Prescription Level

Mandatory

Tags

“asynchInvocation”, “intent”


    1. Test Assertions for SCA Policy Framework Section 10


Assertion ID

POL-TA-100001

Source

[POL100001]

Target

SOAP intent on a service and the reference it is wired to.

Prerequisites

 

Predicate

The SCA runtime uses the SOAP messaging model to deliver messages

Prescription Level

Mandatory

Tags

“SOAP”, “intent”



Assertion ID

POL-TA-100002

Source

[POL100002]

Target

SOAP.v1_1 intent on a service and the reference it is wired to.

Prerequisites

 

Predicate

The SCA runtime uses the SOAP.v1_1 messaging model to deliver messages

Prescription Level

Mandatory

Tags

“SOAP.v1_1”, “intent”



Assertion ID

POL-TA-100003

Source

[POL100002]

Target

SOAP.v1_2 intent on a service and the reference it is wired to.

Prerequisites

 

Predicate

The SCA runtime uses the SOAP.v1_2 messaging model to deliver messages

Prescription Level

Mandatory

Tags

“SOAP.v1_2”, “intent”



Assertion ID

POL-TA-100004

Source

[POL100003]

Target

JMS intent on a service and the reference it is wired to.

Prerequisites

 

Predicate

The SCA runtime ensures that the binding used to send and receive messages supports the JMS API.

Prescription Level

Mandatory

Tags

“JMS”, “intent”



Assertion ID

POL-TA-100005

Source

[POL100004]

Target

<component/> <service/>

Prerequisites

 

Predicate

<service/> does not have the noListener intent applied to it

Prescription Level

Mandatory

Tags

“noListener”, “intent”



Assertion ID

POL-TA-100006

Source

[POL100005]

Target

<component/> <reference/> marked with noListener intent

Prerequisites

- <reference> has a callback interface

Predicate

No connection is created from the service to a client

Prescription Level

Mandatory

Tags

“noListener”, “intent”


Assertion ID

POL-TA-100007

Source

[POL100006]

Target

<component/> <service> marked with EJB intent

Prerequisites

- EJB client that can invoke the <service>

Predicate

The service is invoked using the EJB API.

Prescription Level

Mandatory

Tags

“EJB”, “intent”


Assertion ID

POL-TA-100008

Source

[POL100007]

Target

<component/> <reference> marked with EJB intent

Prerequisites

- EJB that can be invoked by the <reference>

Predicate

The <reference> is used to invoke the EJB.

Prescription Level

Mandatory

Tags

“EJB”, “intent”



    1. Test Assertions for SCA Policy Framework Section 11


Assertion ID

POL-TA-110001

Source

[POL110001]

Target

A composite file

Prerequisites

composite file does not conform to sca-policy-1.1.xsd schema

Predicate

SCA runtime rejects the composite file and raises an error.

Prescription Level

Mandatory

Tags

“xmlSchema”, “schemaConformance”



  1. Cross Mapping of Normative Statements to Test Assertions


Conformance statement

Test Assertion

POL30001

POL-TA-30001
POL-TA-30002

POL30002

POL-TA-30003

POL30004

POL-TA-30004

POL30005

POL-TA-30005

POL30006

POL-TA-30006

POL30007

POL-TA-30007

POL30008

POL-TA-30008

POL30010

POL-TA-30010

POL30011

POL-TA-30011

POL30013

POL-TA-30013

POL30015

POL-TA-30015

POL30016

POL-TA-30016

POL30017

POL-TA-30017

POL30018

POL-TA-30018

POL30019

POL-TA-30019

POL30020

POL-TA-30020

POL30021

POL-TA-30021

POL30024

POL-TA-30025

POL30025

POL-TA-30026

 

 

POL40001

POL-TA-40001
POL-TA-40002
POL-TA-40003

POL40002

POL-TA-40049

POL40004

POL-TA-40004
POL-TA-40005

POL40005

POL-TA-40006
POL-TA-40007
POL-TA-40008

POL40006

POL-TA-40009

POL40007

POL-TA-40010
POL-TA-40011

POL40009

POL-TA-40012

POL40010

POL-TA-40001
POL-TA-40002
POL-TA-40003
POL-TA-40013
POL-TA-40014
POL-TA-40015
POL-TA-40016
POL-TA-40017
POL-TA-40018

POL40011

POL-TA-40013
POL-TA-40014
POL-TA-40015

POL40012

POL-TA-40016
POL-TA-40017
POL-TA-40018

POL40014

POL-TA-40020

POL40015

POL-TA-40021

POL40016

POL-TA-40022
POL-TA-40023
POL-TA-40024
POL-TA-40025

POL40017

POL-TA-40026

POL40018

POL-TA-40027
POL-TA-40028
POL-TA-40036

POL40019

POL-TA-40037
POL-TA-40038

POL40020

POL-TA-40039

POL40021

POL-TA-40040

POL40022

POL-TA-40041

POL40023

POL-TA-40042

POL40024

POL-TA-40043

POL40025

POL-TA-40041
POL-TA-40042
POL-TA-40043

POL40027

POL-TA-40050

POL40034

POL-TA-40057

POL40035

POL-TA-40058

 

 

POL50001

POL-TA-50001

 

 

POL70001

POL-TA-70001

POL70009

POL-TA-70002

POL70010

POL-TA-70003

POL70011

POL-TA-70004

POL70012

POL-TA-70005

POL70013

POL-TA-70006

POL70014

POL-TA-70007

 

 

POL80001

POL-TA-80001

POL80002

POL-TA-80002

POL80003

POL-TA-80003

POL80004

POL-TA-80004

 

 

POL90003

POL-TA-90003

POL90004

POL-TA-90004

POL90006

POL-TA-90006

POL90007

POL-TA-90007

POL90008

POL-TA-90008

POL90009

POL-TA-90009
POL-TA-90010

POL90010

POL-TA-90011

POL90011

POL-TA-90012
POL-TA-90013

POL90012

POL-TA-90016

POL90013

POL-TA-90017

POL90015

POL-TA-90018

POL90016

POL-TA-90018

POL90017

POL-TA-90020

POL90019

POL-TA-90021
POL-TA-90022

POL90020

POL-TA-90018

POL90022

POL-TA-90020

POL90023

POL-TA-90025
POL-TA-90026

POL90024

POL-TA-90027

POL90025

POL-TA-90028

POL90027

POL-TA-90030
POL-TA-90031

POL90028

POL-TA-90032

POL90029

POL-TA-90033

POL90030

POL-TA-90034
POL-TA-90035

POL90031

POL-TA-90036

 

 

POL100001

POL-TA-100001

POL100002

POL-TA-100002
POL-TA-100003

POL100003

POL-TA-100004

POL100004

POL-TA-100005

POL100005

POL-TA-100006

POL100006

POL-TA-100007

POL100007

POL-TA-100008

 

 

POL110001

POL-TA-110001

  1. Cross Mapping of Test Assertions to TestCases


Test Assertion

Test Cases

POL-TA-30001

POL_3001_TestCase

POL-TA-30002

Untestable - requires policySets written using a specific policy language - none is mandatory

POL-TA-30003

POL_3003_TestCase

POL-TA-30004

POL_3004_TestCase

POL-TA-30005

POL_3005_TestCase

POL-TA-30006

POL_3006_TestCase

POL-TA-30007

POL_3007_TestCase

POL-TA-30008

POL_3008_TestCase

POL-TA-30010

POL_3009_TestCase

POL-TA-30011

Untestable - WS-Policy not required to be supported

POL-TA-30013

POL_3011_TestCase

POL-TA-30015

POL_3007_TestCase

POL_3012_TestCase

POL-TA-30016

POL_3013_TestCase

POL-TA-30017

POL_3011_TestCase

POL_3014_TestCase

POL-TA-30018

POL_3011_TestCase

POL_3015_TestCase

POL-TA-30019

POL_3016_TestCase

POL-TA-30020

POL_3017_TestCase

POL_4002_TestCase

POL-TA-30021

POL_3018_TestCase

POL_4002_TestCase

POL-TA-30025

POL_3019_TestCase

POL-TA-30026

POL_3020_TestCase



Test Assertion

Test Cases

POL-TA-40001

POL_4001_TestCase

POL-TA-40002

POL_4002_TestCase

POL-TA-40003

POL_4003_TestCase

POL-TA-40004

POL_4004_TestCase

POL-TA-40005

POL_4005_TestCase

POL-TA-40006

POL_4006_TestCase

POL-TA-40007

POL_4007_TestCase

POL-TA-40008

POL_4008_TestCase

POL-TA-40009

POL_4009_TestCase

POL-TA-40010

Untestable - WS-Policy not required to be supported

POL-TA-40011

Untestable - WS-Policy not required to be supported

POL-TA-40012

POL_4012_TestCase

POL-TA-40013

POL_4015_TestCase

POL-TA-40014

POL_4013_TestCase

POL-TA-40015

POL_4010_TestCase

POL-TA-40016

POL_4016_TestCase

POL-TA-40017

POL_3007_TestCase

POL-TA-40018

POL_4018_TestCase

POL-TA-40020

POL_4029_TestCase

POL-TA-40021

POL_4030_TestCase

POL-TA-40022

POL_4031_TestCase

POL-TA-40023

POL_4032_TestCase

POL-TA-40024

POL_4019_TestCase

POL-TA-40025

POL_4020_TestCase

POL-TA-40026

POL_4012_TestCase

POL-TA-40027

POL_4024_TestCase – delete? TA is preferred

POL-TA-40028

POL_4024_TestCase – delete? TA is preferred

POL-TA-40036

POL_3007_TestCase – delete? TA is preferred

POL-TA-40037

POL_4031_TestCase

POL-TA-40038

POL_4032_TestCase

POL-TA-40039

POL_4027_TestCase

POL-TA-40040

Untestable – no required binding available that meets the prerequisites of the test assertion.

POL-TA-40041

Untestable - requires policySets written using a specific policy language - none is mandatory.

POL-TA-40042

Untestable - requires policySets written using 2 specific policy language - none is mandatory.

POL-TA-40043

Untestable - requires support for WS-Policy which is not mandatory

POL-TA-40049

POL_4028_TestCase

POL-TA-40050

POL_4031_TestCase

POL_4032_TestCase

POL-TA-40057

Untestable - requires a measurable required concrete policy

POL-TA-40058

POL_4033_TestCase


Test Assertion

Test Cases

POL-TA-50001

POL_5001_TestCase


Test Assertion

Test Cases

POL-TA-70001

Untestable

POL-TA-70002

Untestable

POL-TA-70003

Untestable

POL-TA-70004

Untestable

POL-TA-70005

Untestable

POL-TA-70006

Untestable

POL-TA-70007

Untestable


Test Assertion

Test Cases

POL-TA-80001

Untestable

POL-TA-80002

Untestable

POL-TA-80003

Untestable

POL-TA-80004

Untestable


Test Assertion

Test Cases

POL-TA-90003

Untestable

POL-TA-90004

Untestable

POL-TA-90006

Untestable

POL-TA-90007

Untestable

POL-TA-90008

Untestable

POL-TA-90009

POL_9006_TestCase

POL-TA-90010

Untestable

POL-TA-90011

Untestable

POL-TA-90012

POL_9009_TestCase

POL-TA-90013

Untestable - No required binding available

POL-TA-90016

Untestable

POL-TA-90017

Untestable

POL-TA-90018

Untestable

POL-TA-90020

Untestable

POL-TA-90021

POL_9015_TestCase

POL-TA-90022

POL_9016_TestCase

POL-TA-90025

POL_9017_TestCase

POL-TA-90026

POL_9018_TestCase

POL-TA-90027

Untestable

POL-TA-90028

Untestable

POL-TA-90030

POL_9009_TestCase

POL-TA-90031

POL_9006_TestCase

POL_9019_TestCase

POL-TA-90032

POL_9020_TestCase

POL-TA-90033

POL_9021_TestCase

POL-TA-90034

POL_9022_TestCase

POL-TA-90035

POL_9023_TestCase

POL-TA-90036

POL_9006_TestCase


Test Assertion

Test Cases

POL-TA-100001

POL_3019_TestCase

POL-TA-100002

POL_4030_TestCase

POL-TA-100003

Untestable

POL-TA-100004

Untestable - JMS binding not a required binding

POL-TA-100005

POL_10001_TestCase

POL-TA-100006

Untestable

POL-TA-100007

Untestable - EJB binding not a required binding

POL-TA-100008

Untestable - EJB binding not a required binding


Test Assertion

Test Cases

POL-TA-110001

POL_11001_TestCase


  1. Acknowledgments

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

Participants:

Participant Name

Affiliation

Jeff Anderson

Deloitte Consulting LLP

Bryan Aupperle

IBM

Ron Barack

SAP AG*

Michael Beisiegel

IBM

Vladislav Bezrukov

SAP AG*

Henning Blohm

SAP AG*

David Booz

IBM

Fred Carter

AmberPoint

Tai-Hsing Cha

TIBCO Software Inc.

Martin Chapman

Oracle Corporation

Mike Edwards

IBM

Raymond Feng

IBM

Billy Feng

Primeton Technologies, Inc.

Robert Freund

Hitachi, Ltd.

Murty Gurajada

TIBCO Software Inc.

Simon Holdsworth

IBM

Michael Kanaley

TIBCO Software Inc.

Anish Karmarkar

Oracle Corporation

Nickolaos Kavantzas

Oracle Corporation

Rainer Kerth

SAP AG*

Pundalik Kudapkar

TIBCO Software Inc.

Meeraj Kunnumpurath

Individual

Rich Levinson

Oracle Corporation

Mark Little

Red Hat

Ashok Malhotra

Oracle Corporation

Jim Marino

Individual

Jeff Mischkinsky

Oracle Corporation

Dale Moberg

Axway Software*

Simon Nash

Individual

Bob Natale

Mitre Corporation*

Eisaku Nishiyama

Hitachi, Ltd.

Sanjay Patil

SAP AG*

Plamen Pavlov

SAP AG*

Martin Raepple

SAP AG*

Fabian Ritzmann

Sun Microsystems

Ian Robinson

IBM

Scott Vorthmann

TIBCO Software Inc.

Eric Wells

Hitachi, Ltd.

Prasad Yendluri

Software AG, Inc.*

Alexander Zubev

SAP AG*



  1. Revision History


Revision

Date

Editor

Changes Made

1

10/14/09

David Booz

Initial version sections 3 and 4

2

11/11/09

David Booz

Completed first pass of all test cases

3

05/11/10

Mike Edwards

Sync up with TestAssertions CD01

4

05/28/10

David Booz

Misc editorial updates

5

06/04/10

David Booz

More updates based on review comments

6

06/14/10

David Booz

Misc updates from review with TC – applied Issue 120, 121.

CD01

06/21/10

David Booz

Editorial updates for CD01.

CD01 rev1

09/15/10

David Booz

Apply 123,124,125,126

CSD01 rev2

11/10/10

David Booz

Apply 128 and prep for next CSD

CSPRD02

11/10/10

OASIS Admin

CSPRD02

WD021

07/11/11

Mike Edwards

Issue 131 - merged Assertions document into this one as an Appendix

- moved Cross Mapping of Test Assertions to Testcases into Appendix

- added Conformance statements

- removed TAs 40051 40052 40053 40054 40055 40056 40059 40060 40061 as a result of normative assertions being removed from latest Policy specification. This has no effect on testcases since these TAs had no testcases.

WD022

07/20/11

Mike Edwards

All changes accepted


sca-policy-1.1-testcases-csd03 25 July 2011

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