<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!--

    Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

    <meta content="text/html; charset=ISO-8859-1"
          http-equiv="content-type">
    <title>AMX Unit Tests</title>
    <meta content="lloyd.chambers@sun.com" name="author">
</head>
<body>
<div style="text-align: center;"><big><big><big><span
        style="font-weight: bold;">AMX Unit Tests FAQ</span></big></big></big><br>
</div>
<br>
<span style="font-weight: bold;">Questions?&nbsp; </span><a
        style="font-weight: bold;"
        href="mailto:lloyd.chambers@sun.com?subject=Question%20about%20AMX%20unit%20tests">lloyd.chambers@sun.com</a><br>
Last updated: 23 June 2005<br>
<br>
NOTE: some of the links in this document refer to an internal sun
server and thus may not work.&nbsp; This will be fixed.<br>
<br>
<big><span style="font-weight: bold;">1. Introduction<br>
<br>
</span></big>When developing for AMX, please also refer to the&nbsp; <a
        href="../../../admin-core/mbeanapi/src/java/com/sun/enterprise/management/doc-files/amx-internal-developer-guide.html">AMX
    Internal Developer's Guide</a> (<span style="font-family: monospace;">glassfish/admin-core/mbeanapi/src/java/com/sun/enterprise/management<br>
/doc-files/amx-internal-developer-guide.html</span>).<br>
<br>
The unit tests for AMX are written using <a
        href="http://junit.org/index.htm">JUnit </a>as the framework.&nbsp;
When you introduce a new <a
        href="http://llcs.sfbay.sun.com:8080/mbean-api/9_0/index.html">AMX
    MBean</a>, or modify an existing one, you <span
        style="font-weight: bold;">must </span><a target="_blank"
                                                  href="com/sun/enterprise/management/doc-files/AddingAMXUnitTests.html">write
    a new unit tes</a>t and/or add/change existing unit tests to correspond
to the changes you've made.&nbsp; This is a <span
        style="font-weight: bold; color: rgb(255, 0, 0);">requirement</span><span
        style="color: rgb(255, 0, 0);"> </span>before you check in
changes to the AMX interfaces or implementation.&nbsp; Code should also
be reviewed by <a
        href="mailto:amx-dev@sun.com?subject=AMX%20code%20review">amx-dev@sun.com</a>.<span
        style="font-family: monospace;"></span><br>
<big><span style="font-weight: bold;"><br>
<br>
<a name="CheckinProcedure"></a>2.&nbsp; Checkin procedure<br>
</span></big><big>
    <small><br>
<span style="font-weight: bold;">See the procedure in <a
        target="_blank"
        href="../../../admin-core/mbeanapi/src/java/com/sun/enterprise/management/doc-files/amx-internal-developer-guide.html">admin-core/mbeanapi/src/java/com/sun/enterpise/management/doc-files/amx-internal-developer-guide.html.</a></span><br>
    </small>
</big><big><br style="font-weight: bold;">
    <small><span style="font-weight: bold;"><br>
<a name="Reference"></a>3. Reference<br>
<br>
</span></small>
</big>
<table style="text-align: left; width: 100%;" border="1" cellpadding="2"
       cellspacing="2">
    <tbody>
        <tr>
            <td style="vertical-align: top; font-weight: bold;">Item<br>
            </td>
            <td style="vertical-align: top; font-weight: bold;">Discussion<br>
            </td>
        </tr>
        <tr>
            <td style="vertical-align: top;"><a target="_blank"
                                                href="com/sun/enterprise/management/doc-files/AddingAMXUnitTests.html">AddingAMXUnitTests.html</a>
            </td>
            <td style="vertical-align: top;">How to modify an existing unit
                test and/or add a new unit test for AMX or its support code.<br>
                <br>
                <span style="font-family: monospace;">glassfish/admin/mbeanapi-impl/tests/</span><br
                    style="font-family: monospace;">
                <span style="font-family: monospace;">com/sun/enterprise/management/doc-files/AddingAMXUnitTests.html</span><br>
            </td>
        </tr>
        <tr>
            <td style="vertical-align: top;"><a target="_blank"
                                                href="com/sun/enterprise/management/doc-files/RunningUnitTests.html">RunningUnitTests.html</a>
            </td>
            <td style="vertical-align: top;">How to run the AMX unit tests..<br>
                <br>
                <span style="font-family: monospace;">glassfish/admin/mbeanapi-impl/tests/</span><br
                    style="font-family: monospace;">
                <span style="font-family: monospace;">com/sun/enterprise/management/doc-files/RunningUnitTests.html</span><br>
            </td>
        </tr>
        <tr>
            <td style="vertical-align: top;"><a target="_blank"
                                                href="../../../admin-core/mbeanapi/src/java/com/sun/enterprise/management/doc-files/amx-internal-developer-guide.html">AMX
                Internal Developer's Guide</a></td>
            <td style="vertical-align: top;">How to write new AMX MBeans.<br>
                <br>
                <span style="font-family: monospace;">glassfish/admin-core/mbeanapi/src/java/com/sun/enterprise/management/doc-files/</span><br
                    style="font-family: monospace;">
                <span style="font-family: monospace;">amx-internal-developer-guide.html</span><br>
            </td>
        </tr>
    </tbody>
</table>
<big>
    <small><span style="font-weight: bold;"><br>
<br>
<br>
</span><br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
    </small>
    <span style="font-weight: bold;"></span></big>
</body>
</html>
