<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
TestSuite - mapping test cases for AS6 and IronJacamar
</h3>
<span style="margin-bottom: 10px;">
modified by <a href="http://community.jboss.org/people/maeste">Stefano Maestri</a> in <i>IronJacamar Development</i> - <a href="http://community.jboss.org/docs/DOC-16266">View the full document</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><h1>1. General Note</h1><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><ol><li>Every deployment related test should be written with Arquillian</li><li>Every test that depends on some external deployment into the environment (for example jdbc driver) should be carefully evaluated to consider possible difference in AS7 env</li><li>Stress tests are not reported in this list because they are out of our unit test suite scope. It easy to keep track of them because all class names of this kind o tests contain the word "Stress" <span> :) </span></li><li>InFlow test should be carefully evaluated too.</li><li>Also some integration tests are out of unit tests suite scope, but they are listed and commented here to keep track of them and open a discussion about integration tests.</li></ol><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>2. Test List</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 95%; border: 1px solid #000000;"></table><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 95%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;">Stressed condition</span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><p><span style="color: #ffffff;">AS6 Implementation</span></p><p><span style="color: #ffffff; font-size: 8pt;">(ClassName.methodName)</span></p><p><span style="color: #ffffff; font-size: 8pt;">package is always </span></p><pre><span style="color: #ffffff; font-size: 8pt; font-weight: normal;">org.jboss.test.jca.test</span></pre></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><p style="padding: 0pt; margin: 0pt;"><span style="color: #ffffff;">IronJacamar Implementation</span></p><p style="padding: 0pt; margin: 0pt;"><span style="color: #ffffff; font-size: 8pt;">(packageName.ClassName.methodName)</span></p><br/></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><p style="padding: 0pt; margin: 0pt;"><span style="color: #ffffff;"> </span></p><p style="padding: 0pt; margin: 0pt;"><span style="color: #ffffff; font-size: 8pt;"> </span></p>JIRA<br/></span></th></tr><tr><td style="border: 1px solid #000000;">verify AdminObject deployment, obj types and properties</td><td style="border: 1px solid #000000;">AdminObjectUnitTestCase.testAdminObject()</td><td style="border: 1px solid #000000;"><p>TODO. We only verify atm that annotated AdminObject class is correctly processed from an annotation point of view in org.jboss.jca.deployers.annotations.AnnotationsTestCase.</p><p>testProcessAdministeredObject.</p></td><td style="border: 1px solid #000000;"><a class="jive-link-external-small" href="https://issues.jboss.org/browse/JBJCA-485">https://issues.jboss.org/browse/JBJCA-485</a></td></tr><tr><td style="border: 1px solid #000000;">Test for connection background validation</td><td style="border: 1px solid #000000;">BackgroundValidationUnitTestCase</td><td style="border: 1px solid #000000;"><p>To be evaluated: we are testing our Validation mechanism directly, but this test should be ported to stress Validation framework indirectly at deploy time. IOW we can verify with this test if and when validation should stop the deployment.</p></td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">stress various condition on CM (changing config and/or using it to get connection and so on)</td><td style="border: 1px solid #000000;">BaseConnectionManagerUnitTestCase</td><td style="border: 1px solid #000000;"><p>TODO. In fact we have  org/jboss/jca/core/connectionmanager/unit/AbstractConnectionManagerTestCase</p><p>That is the class with right tests. We have to complete it and moreover to check also TxConnectionManagerTestCase and XATxConnectionManagerTestCase. Finally we have to move and complete also NonTxConnectionManagerTestCase</p></td><td style="border: 1px solid #000000;"><p><a class="jive-link-external-small" href="https://issues.jboss.org/browse/JBJCA-486">https://issues.jboss.org/browse/JBJCA-486</a></p><p><a class="jive-link-external-small" href="https://issues.jboss.org/browse/JBJCA-487">https://issues.jboss.org/browse/JBJCA-487</a></p><p><a class="jive-link-external-small" href="https://issues.jboss.org/browse/JBJCA-488">https://issues.jboss.org/browse/JBJCA-488</a></p><p><a class="jive-link-external-small" href="https://issues.jboss.org/browse/JBJCA-489">https://issues.jboss.org/browse/JBJCA-489</a></p></td></tr><tr><td style="border: 1px solid #000000;"><br/></td><td style="border: 1px solid #000000;">CachedConnectionErrorUnitTestCase</td><td style="border: 1px solid #000000;">To be analysed. Maybe it don't make sense as is for ironjacamar</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;"><br/></td><td style="border: 1px solid #000000;">CachedConnectionSessionUnitTestCase</td><td style="border: 1px solid #000000;">To be analysed. Maybe it don't make sense as is for ironjacamar</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">verify cf (datasource) correct serialization/deserialization</td><td style="border: 1px solid #000000;">ConnectionFactorySerializationUnitTestCase</td><td style="border: 1px solid #000000;">TODO</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">verify dependency define in jboss-ra.xml</td><td style="border: 1px solid #000000;">DependsRARUnitTestCase</td><td style="border: 1px solid #000000;">Does not make sense for ironjacamar</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Check deployment of a -ds</td><td style="border: 1px solid #000000;">DeploymentUnitTestCase</td><td style="border: 1px solid #000000;"><p>/ironjacamar-adapters/src/test/java/org/jboss/jca/adapters/jdbc/unit/H2TestCase</p><p>/ironjacamar-adapters/src/test/java/org/jboss/jca/adapters/jdbc/unit/H2XATestCase</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>NOTE: here we are just testing that deployment is working, while in old test suite also some properties setting are verified</p></td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Test HA connection both Local and XA</td><td style="border: 1px solid #000000;">HAConnectionFactoryUnitTestCase</td><td style="border: 1px solid #000000;">Does not make sense since we are not supporting HA connection right now.</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">test in flow RA using a Message Driven Bean</td><td style="border: 1px solid #000000;">InflowUnitTestCase</td><td style="border: 1px solid #000000;">TODO. We need to set up a messaging system in our test suite to do that</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">test correct behavior of ConnectionPool</td><td style="border: 1px solid #000000;"><p>InternalManagedConnection</p><p>PoolStatUnitTestCase</p></td><td style="border: 1px solid #000000;">TODO</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">test that calling .close() 2 times on rs, statement, and connection does not throw Exception</td><td style="border: 1px solid #000000;">JDBCComplianceUnitTestCase</td><td style="border: 1px solid #000000;">To be evaluated, it's a jdbc compliance test, not directly related to JCA</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">test that after -ds redeployment connection are obtainable.</td><td style="border: 1px solid #000000;">JDBCDriverRedeployUnitTestCase</td><td style="border: 1px solid #000000;">TODO: extending<p style="padding: 0pt; margin: 0pt;">/ironjacamar-adapters/src/test/java/org/jboss/jca/adapters/jdbc/unit/H2TestCase</p><p style="padding: 0pt; margin: 0pt;">and</p><p style="padding: 0pt; margin: 0pt;">/ironjacamar-adapters/src/test/java/org/jboss/jca/adapters/jdbc/unit/H2XATestCase</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="padding: 0pt; margin: 0pt;">Note: the old test suite is redeploying driver too. It have to be evaluated in our new environment if it make sense and if AS7 would permit driver hot redeployment</p></td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">test various jdbc statement method</td><td style="border: 1px solid #000000;">JDBCStatementTestsConnectionUnitTestCase</td><td style="border: 1px solid #000000;">It's a JDBC test, not a JCA test. To be evaluated</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">test Local transaction states</td><td style="border: 1px solid #000000;">LocalTransactionTidyupUnitTestCase</td><td style="border: 1px solid #000000;">TODO: byteman to be evaluated. Probably not needed here</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">test Local transaction commits and rollbacks</td><td style="border: 1px solid #000000;">LocalWrapperCleanupUnitTestCase</td><td style="border: 1px solid #000000;">TODO: byteman to be evaluated. Maybe useful here.</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">test marsha/unmarshal of ManagedConnectionFactory and some deployment injection for it</td><td style="border: 1px solid #000000;">ManagedDeploymentUnitTestCase.java</td><td style="border: 1px solid #000000;">TODO: the marshal/unmarshal part. The injection is already covered</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Verify multi thread correct behavior for DS and JCA adapter in a Tx context</td><td style="border: 1px solid #000000;"><p>MultiThreadedTxDsUnitTestCase</p><p>MultiThreadedTxUnitTestCase</p></td><td style="border: 1px solid #000000;">TODO for sure, but we have to postpone this after other unit tests porting/implementation, since we need to understand if the AS6 tests in this classes are enough (probably not) or if we need to stress other condition in a mutithread env. Probably we could use for all (or at least almost) of this test the Tx fake implementation we have. If we need (or decite to) use the real arjuna one we probably would need Byteman here, but it have to be carefully evaluated since we are writing pure JCA tests that should not depend on Tx framework used.  The best solution frm a Unit test point of view would be to use our fake implementation for every test, but we need to verify if it is possible.</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Verify pooling behaviours<</td><td style="border: 1px solid #000000;"><div id="_mcePaste" style="position: absolute; left: -10000px; top: 1049px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">PoolingUnitTestCase.java</div><div id="_mcePaste" style="position: absolute; left: -10000px; top: 1049px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">PreFillPoolingUnitTestCase.java</div><p>PoolingUnitTestCase</p><p>PreFillPoolingUnitTestCase.java</p></td><td style="border: 1px solid #000000;">TODO: we have 2 classes that should do that in package org.jboss.jca.core.connectionmanager.unit.pool named PoolingTestCase and PreFillPoolingTestCase but all test methods are empty</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Test case for resource adapters with primitive config-property definitions</td><td style="border: 1px solid #000000;">PrimitiveUnitTestCase.java</td><td style="border: 1px solid #000000;">ConnectionFactories does not make sense anymore. Moreover we are verifying config-property settings and mainly mandatory ones in parser's test cases</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">ests of the prepared statement cache</td><td style="border: 1px solid #000000;">PSCacheUnitTestCase.java</td><td style="border: 1px solid #000000;">TODO, but Not a pure JCA. It's a JDBC tests we have to evaluate if we are going to provide JDBC tests too.</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">tests if CachedConnectionManager works with reentrant ejbs</td><td style="border: 1px solid #000000;">ReentrantUnitTestCase.java</td><td style="border: 1px solid #000000;">It's a JCA/EJB test. It's more an integration test. It would make sense to have it into AS7, but not ironjacamar standalone because we need an EJB environment to do that.</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Tests of remote access to a jdbc datasource.</td><td style="border: 1px solid #000000;">RemoteDSUnitTestCase.java</td><td style="border: 1px solid #000000;">It would be implemented as integration test, not as part of our unit test suite. Like stress tests.</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Unit test for the RetryableResourceException</td><td style="border: 1px solid #000000;">RetryableResourceUnitTestCase.java</td><td style="border: 1px solid #000000;">does not make sense we haven't this exception in ironjacamar impl</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">RollbackOnlyReleaseConnectionUnitTestCase</td><td style="border: 1px solid #000000;">RollbackOnlyReleaseConnectionUnitTestCase.java</td><td style="border: 1px solid #000000;">TODO. Our Tx fake implementation should be enough here</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">tests scoped rar inside ear</td><td style="border: 1px solid #000000;"><p>ScopedRARNoJBossAppUnitTestCase.java</p><p>ScopedRARUnitTestCase.java</p></td><td style="border: 1px solid #000000;">Integration tests. Suitable for AS7, ironjacamar standalone does not support ear</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Tests of how security context interact with the JCA layer.</td><td style="border: 1px solid #000000;">SecurityContextUnitTestCase</td><td style="border: 1px solid #000000;">TODO after security integration <span> :) </span></td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">StaleConnectionCheckerUnitTestCase</td><td style="border: 1px solid #000000;">StaleConnectionCheckerUnitTestCase.java</td><td style="border: 1px solid #000000;">org/jboss/jca/adapters/jdbc/spi/StaleConnectionCheckerTestCase</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">StatisticsFormatterUnitTestCase</td><td style="border: 1px solid #000000;"><p>StatisticsFormatterUnitTestCase.java</p><p>StatisticsReporterUnitTestCase.java</p></td><td style="border: 1px solid #000000;">Does not make sense. It will be covered by RHQ integration tests</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Unit test for the TestConnection method</td><td style="border: 1px solid #000000;">TestConnectionUnitTestCase.java</td><td style="border: 1px solid #000000;">does not make sense is a jmx sever method</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Transaction Active test</td><td style="border: 1px solid #000000;">TransactionActiveUnitTestCase.java</td><td style="border: 1px solid #000000;">TODO. AS6' one is based on a jms queue. Maybe it should be redefined in another way. To be evaluated.</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Unit test for class TxConnectionManager</td><td style="border: 1px solid #000000;">Unit test for class TxConnectionManager</td><td style="border: 1px solid #000000;">TODO. Probably we could use for all (or at least almost) of this test the Tx fake implementation we have. If we need (or decite to) use the real arjuna one we probably would need Byteman here, but it have to be carefully evaluated since we are writing pure JCA tests that should not depend on Tx framework used.  The best solution from a Unit test point of view would be to use our fake implementation for every test, but we need to verify if it is possible.</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Tests unshared connections</td><td style="border: 1px solid #000000;">UnsharedConnectionUnitTestCase.java</td><td style="border: 1px solid #000000;">TODO</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Test correct deployment of UserTx</td><td style="border: 1px solid #000000;">UserTxUnitTestCase.java</td><td style="border: 1px solid #000000;">Doable extending deployers' tes cases.</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Inflow unit tests</td><td style="border: 1px solid #000000;"><p>WorkManagerUnitTestCase.java</p><p>TimerUnitTestCase.java</p><p>TxInflowUnitTestCase.java</p></td><td style="border: 1px solid #000000;">TO be evaluated</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">XADSUnitTestCase.java</td><td style="border: 1px solid #000000;">XADSUnitTestCase.java</td><td style="border: 1px solid #000000;">done on H2XATestCase</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">verify correct thrown of XAException</td><td style="border: 1px solid #000000;">XAExceptionUnitTestCase.java</td><td style="border: 1px solid #000000;">TODO</td><td style="border: 1px solid #000000;"><br/></td></tr><tr><td style="border: 1px solid #000000;">Unit test for class XATxConnectionManager</td><td style="border: 1px solid #000000;">XATxConnectionManagerUnitTestCase.java</td><td style="border: 1px solid #000000;">TODO. Probably we could use for all (or at least almost) of this test the Tx fake implementation we have. If we need (or decite to) use the real arjuna one we probably would need Byteman here, but it have to be carefully evaluated since we are writing pure JCA tests that should not depend on Tx framework used.  The best solution from a Unit test point of view would be to use our fake implementation for every test, but we need to verify if it is possible.</td><td style="border: 1px solid #000000;"><br/></td></tr></tbody></table><p><span style="border-collapse: collapse;"><br/></span></p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Comment by <a href="http://community.jboss.org/docs/DOC-16266">going to Community</a></p>
        <p style="margin: 0;">Create a new document in IronJacamar Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=102&containerType=14&container=2099">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>