0N/A/*
2362N/A * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A *
0N/A * This code is free software; you can redistribute it and/or modify it
0N/A * under the terms of the GNU General Public License version 2 only, as
0N/A * published by the Free Software Foundation.
0N/A *
0N/A * This code is distributed in the hope that it will be useful, but WITHOUT
0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A * version 2 for more details (a copy is included in the LICENSE file that
0N/A * accompanied this code).
0N/A *
0N/A * You should have received a copy of the GNU General Public License version
0N/A * 2 along with this work; if not, write to the Free Software Foundation,
0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A *
2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2362N/A * or visit www.oracle.com if you need additional information or have any
2362N/A * questions.
0N/A */
0N/A
0N/A/*
0N/A * Copyright 2003 Wily Technology, Inc.
0N/A */
0N/A
0N/A/**
0N/A * This class serves as a bridge between the Wily JUnit-style tests and the
0N/A * Sun test framework.
0N/A *
0N/A * This is a replacement for the JUnit TestCase base class. Provides surrogate
0N/A * functionality for the setup/teardown calls, and for all the verification and
0N/A * assertion services.
0N/A *
0N/A * The Sun framework relies on each test case being a separate class with a separate main,
0N/A * which throws if the test fails and does not throw if the test succeeds.
0N/A */
0N/A
0N/A
0N/Apublic abstract class ATestCaseScaffold {
0N/A private String fName;
0N/A private boolean fVerbose;
0N/A
0N/A
0N/A protected
0N/A ATestCaseScaffold(String name) {
0N/A fName = name;
0N/A fVerbose = false;
0N/A }
0N/A
0N/A public final void
0N/A runTest()
0N/A throws Throwable {
0N/A Throwable toRethrow = null;
0N/A
0N/A setUp();
0N/A
0N/A try {
0N/A doRunTest();
0N/A }
0N/A finally {
0N/A tearDown();
0N/A }
0N/A
0N/A }
0N/A
0N/A protected void
0N/A setUp()
0N/A throws Exception {
0N/A }
0N/A
0N/A protected void
0N/A tearDown()
0N/A throws Exception {
0N/A }
0N/A
0N/A protected abstract void
0N/A doRunTest()
0N/A throws Throwable;
0N/A
0N/A /**
0N/A * Be verbose: print out what happens after this
0N/A */
0N/A public void
0N/A beVerbose()
0N/A {
0N/A fVerbose = true;
0N/A }
0N/A
0N/A /**
0N/A * Print a string, if and only if verbose printing is enabled.
0N/A */
0N/A public void
0N/A verbosePrint(String message)
0N/A {
0N/A if (fVerbose)
0N/A {
0N/A System.out.println("Debugging message: " + message);
0N/A }
0N/A }
0N/A
0N/A /*
0N/A * Replacement verification methods
0N/A * Shaped the same as the JUnit ones to make reusing the JUnit test possible
0N/A * Didn't implement them all, only the ones our existing tests use.
0N/A */
0N/A
0N/A public final void
0N/A fail() {
0N/A throw new TestCaseScaffoldException();
0N/A }
0N/A
0N/A public final void
0N/A fail(String message) {
0N/A throw new TestCaseScaffoldException(message);
0N/A }
0N/A
0N/A public final void
0N/A assertTrue(boolean condition) {
0N/A if ( !condition ) {
0N/A fail();
0N/A }
0N/A }
0N/A
0N/A public final void
0N/A assertTrue(String message, boolean condition) {
0N/A if ( !condition ) {
0N/A fail(message);
0N/A }
0N/A }
0N/A
0N/A public final void
0N/A assertNotNull(Object o) {
0N/A assertTrue(o != null);
0N/A }
0N/A
0N/A public final void
0N/A assertNotNull(String message, Object o) {
0N/A assertTrue(message, o != null);
0N/A }
0N/A
0N/A public final void
0N/A assertEquals(String message, Object expected, Object actual) {
0N/A if ( (expected == null) && (actual == null) ) {
0N/A return;
0N/A }
0N/A else if ( (expected != null) && (expected.equals(actual)) ) {
0N/A return;
0N/A }
0N/A else {
0N/A throw new TestCaseScaffoldException(message + ". Expected: '" + expected +
0N/A "'. Actual: '" + actual + "'.");
0N/A }
0N/A }
0N/A
0N/A public final void
0N/A assertEquals(Object expected, Object actual) {
0N/A assertEquals(null, expected, actual);
0N/A }
0N/A
0N/A public final void
0N/A assertEquals(String message, int expected, int actual) {
0N/A assertEquals(message, new Integer(expected), new Integer(actual));
0N/A }
0N/A
0N/A public final void
0N/A assertEquals(int expected, int actual) {
0N/A assertEquals("Expected equality", expected, actual);
0N/A }
0N/A
0N/A public final static class
0N/A TestCaseScaffoldException extends RuntimeException {
0N/A public
0N/A TestCaseScaffoldException() {
0N/A super();
0N/A }
0N/A
0N/A public
0N/A TestCaseScaffoldException(String m) {
0N/A super(m);
0N/A }
0N/A
0N/A }
0N/A
0N/A}