/*
* Licensed to the SYSTAP, LLC under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* SYSTAP, LLC licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied.
*
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package junit.extensions.proxy;
import junit.framework.*;
/**
* Tests the proxy delegation pattern. This class implements a proxy.
*/
public class ProxyTestCase
extends TestCase
implements IProxyTest
{
public ProxyTestCase()
{
this.m_delegate = new DelegateTestCase();
}
//************************************************************
//*********************** IProxyTest *************************
//************************************************************
Test m_delegate = null;
public void setDelegate( Test delegate )
{
m_delegate = delegate;
}
public Test getDelegate()
{
return m_delegate;
}
//************************************************************
//********************** Delegated Methods *******************
//************************************************************
/**
* This method succeeds on the delegate and it writes a message on
* {@link System#err}. The implementation on the proxy throws an
* exception so if the proxy is not setup correctly, you will see
* that thrown exception.
*/
public void doSomething()
{
Test delegate = getDelegate();
if( delegate == null ) {
System.err.println
( "The delegate was not setup."
);
fail("The delegate was not setup.");
}
(( DelegateTestCase) delegate ) . doSomething() ;
}
//************************************************************
//************************** tests ***************************
//************************************************************
/**
* This test will fail unless the delegate has been correctly
* configured.<p>
*
* Note: If this test fails, then it can also be a symptom of
* attempting to directly execute the proxy tests rather than
* gathering them up and executing them in {@link
* DelegateTestCase}. This issue can typically be traced back to
* how you have configured your Maven/ant JUnit task. It is
* recommended that the JUnit task exclude all classes matching
<code> ** / *ProxyTest* </code>
*/
public void testProxy()
{
doSomething();
}
}