001/*
002 *    GeoAPI - Java interfaces for OGC/ISO standards
003 *    http://www.geoapi.org
004 *
005 *    Copyright (C) 2011-2019 Open Geospatial Consortium, Inc.
006 *    All Rights Reserved. http://www.opengeospatial.org/ogc/legal
007 *
008 *    Permission to use, copy, and modify this software and its documentation, with
009 *    or without modification, for any purpose and without fee or royalty is hereby
010 *    granted, provided that you include the following on ALL copies of the software
011 *    and documentation or portions thereof, including modifications, that you make:
012 *
013 *    1. The full text of this NOTICE in a location viewable to users of the
014 *       redistributed or derivative work.
015 *    2. Notice of any changes or modifications to the OGC files, including the
016 *       date changes were made.
017 *
018 *    THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE
019 *    NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
020 *    TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
021 *    THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY
022 *    PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
023 *
024 *    COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
025 *    CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
026 *
027 *    The name and trademarks of copyright holders may NOT be used in advertising or
028 *    publicity pertaining to the software without specific, written prior permission.
029 *    Title to copyright in this software and any associated documentation will at all
030 *    times remain with copyright holders.
031 */
032package org.opengis.test;
033
034import java.util.EventObject;
035import org.junit.runner.Description;
036
037
038/**
039 * Events provided to {@linkplain TestListener test listeners} when a test begin, complete or fail.
040 *
041 * @author  Martin Desruisseaux (Geomatys)
042 * @version 3.1
043 * @since   3.1
044 *
045 * @deprecated To be replaced by JUnit 5 listener mechanism.
046 */
047@Deprecated
048public final class TestEvent extends EventObject {
049    /**
050     * For cross-version compatibility.
051     */
052    private static final long serialVersionUID = -3409373706089551108L;
053
054    /**
055     * The name of the class which contain the test being run.
056     */
057    private final String className;
058
059    /**
060     * The name of test method which is executed.
061     */
062    private final String methodName;
063
064    /**
065     * If a test failure occurred in an optional test, the configuration key for disabling
066     * that test. Otherwise {@code null}.
067     */
068    Configuration.Key<Boolean> configurationTip;
069
070    /**
071     * Creates a new event for the given source.
072     */
073    TestEvent(final TestCase source, final Description description) {
074        super(source);
075        className  = description.getClassName();
076        methodName = description.getMethodName();
077    }
078
079    /**
080     * Returns the {@link TestCase} instance which is been run. This allow inspection of
081     * the test state, for example by invoking {@link TestCase#configuration()}.
082     *
083     * @return the {@code TestCase} instance which is been run.
084     */
085    @Override
086    public TestCase getSource() {
087        return (TestCase) source;
088    }
089
090    /**
091     * Returns the fully-qualified name of the class which contain the test method
092     * being executed.
093     *
094     * @return the name of the class which contain the test method being executed.
095     */
096    public String getClassName() {
097        return className;
098    }
099
100    /**
101     * Returns the name of the test method which is executed, followed by a sequential number.
102     * The sequential number is used when the same test method has been executed many time
103     * because more than one {@linkplain org.opengis.util.Factory factory} has been found on
104     * the classpath.
105     *
106     * @return the name of the test method.
107     */
108    public String getMethodName() {
109        return methodName;
110    }
111
112    /**
113     * If a test failure occurred in an optional test, the configuration key for disabling
114     * that test. Otherwise {@code null}.
115     *
116     * @return the configuration key for disabling the optional test that failed, or {@code null}.
117     */
118    public Configuration.Key<Boolean> getConfigurationTip() {
119        return configurationTip;
120    }
121}