blob: f9ea79265edc4c1c468a6b9e719b9926b12217b5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* yyyymmdd bug Email and other contact information
* -------- -------- -----------------------------------------------------------
* 20071024 196997 pmoogk@ca.ibm.com - Peter Moogk
*******************************************************************************/
package org.eclipse.wst.ws.service.policy.test;
import java.util.List;
import java.util.Set;
import java.util.Vector;
import junit.framework.TestCase;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.wst.ws.service.policy.IDescriptor;
import org.eclipse.wst.ws.service.policy.IFilter;
import org.eclipse.wst.ws.service.policy.IServicePolicy;
import org.eclipse.wst.ws.service.policy.ServicePolicyPlatform;
import org.eclipse.wst.ws.service.policy.ui.IPolicyOperation;
import org.eclipse.wst.ws.service.policy.ui.IQuickFixAction;
import org.eclipse.wst.ws.service.policy.ui.IQuickFixActionInfo;
import org.eclipse.wst.ws.service.policy.ui.ServicePolicyPlatformUI;
import org.eclipse.wst.ws.service.policy.ui.utils.ActivityUtils;
public class MainUITester extends TestCase
{
public void testExtensions()
{
ServicePolicyPlatformUI platformUI = ServicePolicyPlatformUI.getInstance();
List<IPolicyOperation> operations = platformUI.getAllOperations();
for( IPolicyOperation operation : operations )
{
displayOperation( operation );
}
}
public void testOperationCache()
{
ServicePolicyPlatform platform = ServicePolicyPlatform.getInstance();
ServicePolicyPlatformUI platformUI = ServicePolicyPlatformUI.getInstance();
IServicePolicy id1 = platform.getServicePolicy( "id1" ); //$NON-NLS-1$
IServicePolicy id2 = platform.getServicePolicy( "id2" ); //$NON-NLS-1$
IServicePolicy id3 = platform.getServicePolicy( "id3" ); //$NON-NLS-1$
IServicePolicy id4 = platform.getServicePolicy( "id4" ); //$NON-NLS-1$
//IServicePolicy id_bool1 = platform.getServicePolicy( "id_boolean1" );
// /IServicePolicy id_bool2 = platform.getServicePolicy( "id_boolean2" );
List<IServicePolicy> list1 = new Vector<IServicePolicy>();
List<IServicePolicy> list2 = new Vector<IServicePolicy>();
List<IServicePolicy> list3 = new Vector<IServicePolicy>();
List<IServicePolicy> list4 = new Vector<IServicePolicy>();
List<IServicePolicy> list5 = new Vector<IServicePolicy>();
List<IServicePolicy> list6 = new Vector<IServicePolicy>();
List<IServicePolicy> list7 = new Vector<IServicePolicy>();
IPolicyOperation op1 = platformUI.getOperation( "service.ui.operation1" ); //$NON-NLS-1$
IPolicyOperation op2 = platformUI.getOperation( "service.ui.operation2" ); //$NON-NLS-1$
IPolicyOperation op3 = platformUI.getOperation( "service.ui.operation3" ); //$NON-NLS-1$
IPolicyOperation op4 = platformUI.getOperation( "service.ui.operation4" ); //$NON-NLS-1$
list1.add( id1 );
list2.add( id2 );
list3.add( id3 );
list4.add( id4 );
list5.add( id4 );
list5.add( id1 );
list6.add( id2 );
list6.add( id3 );
list7.add( id1 );
list7.add( id2 );
list7.add( id3 );
list7.add( id4 );
Set<IPolicyOperation> set1 = platformUI.getSelectedOperations( list1, true );
Set<IPolicyOperation> set2 = platformUI.getSelectedOperations( list2, true );
Set<IPolicyOperation> set3 = platformUI.getSelectedOperations( list3, true );
Set<IPolicyOperation> set4 = platformUI.getSelectedOperations( list4, true );
Set<IPolicyOperation> set5 = platformUI.getSelectedOperations( list5, true );
Set<IPolicyOperation> set6 = platformUI.getSelectedOperations( list6, true );
Set<IPolicyOperation> set7 = platformUI.getSelectedOperations( list7, true );
System.out.println( "\nDisplay sets" ); //$NON-NLS-1$
displaySet( "Set1", set1 ); //$NON-NLS-1$
displaySet( "Set2", set2 ); //$NON-NLS-1$
displaySet( "Set3", set3 ); //$NON-NLS-1$
displaySet( "Set4", set4 ); //$NON-NLS-1$
displaySet( "Set5", set5 ); //$NON-NLS-1$
displaySet( "Set6", set6 ); //$NON-NLS-1$
displaySet( "Set7", set7 ); //$NON-NLS-1$
checkContents( "Set1", set1, new IPolicyOperation[]{ op2, op4 } ); //$NON-NLS-1$
checkContents( "Set2", set2, new IPolicyOperation[]{ op1, op2, op4 } ); //$NON-NLS-1$
checkContents( "Set3", set3, new IPolicyOperation[]{ op1, op2, op4 } ); //$NON-NLS-1$
checkContents( "Set4", set4, new IPolicyOperation[]{ op2, op3 } ); //$NON-NLS-1$
checkContents( "Set5", set5, new IPolicyOperation[]{ op2, op3, op4 } ); //$NON-NLS-1$
checkContents( "Set6", set6, new IPolicyOperation[]{ op1, op2, op4 } ); //$NON-NLS-1$
checkContents( "Set7", set7, new IPolicyOperation[]{ op1, op2, op3, op4 } ); //$NON-NLS-1$
}
public void testEnabledOperations()
{
ServicePolicyPlatform platform = ServicePolicyPlatform.getInstance();
ServicePolicyPlatformUI platformUI = ServicePolicyPlatformUI.getInstance();
IServicePolicy id1 = platform.getServicePolicy( "id1" ); //$NON-NLS-1$
IServicePolicy id2 = platform.getServicePolicy( "id2" ); //$NON-NLS-1$
IServicePolicy id3 = platform.getServicePolicy( "id3" ); //$NON-NLS-1$
IServicePolicy id4 = platform.getServicePolicy( "id4" ); //$NON-NLS-1$
List<IServicePolicy> policyList1 = new Vector<IServicePolicy>();
List<IServicePolicy> policyList2 = new Vector<IServicePolicy>();
IPolicyOperation op1 = platformUI.getOperation( "service.ui.operation3" ); //$NON-NLS-1$
policyList1.add( id1 );
policyList1.add( id2 );
policyList1.add( id3 );
policyList1.add( id4 );
policyList2.add( id4 );
assertTrue( "Expected operation to not be enabled", !op1.isEnabled( policyList1 ) ); //$NON-NLS-1$
assertTrue( "Expected operation to be enabled", op1.isEnabled( policyList2 ) ); //$NON-NLS-1$
}
public void testQuickFixActions()
{
ServicePolicyPlatform platform = ServicePolicyPlatform.getInstance();
ServicePolicyPlatformUI platformUI = ServicePolicyPlatformUI.getInstance();
IServicePolicy id1 = platform.getServicePolicy( "id1" ); //$NON-NLS-1$
IStatus status1 = new Status( IStatus.ERROR, "org.eclipse.wst.ws.service.policy.test", 1, "some error", null ); //$NON-NLS-1$ //$NON-NLS-2$
IStatus status2 = new Status( IStatus.ERROR, "org.eclipse.wst.ws.service.policy.test", 2, "some error", null ); //$NON-NLS-1$ //$NON-NLS-2$
List<IQuickFixActionInfo> fixList1 = platformUI.getQuickFixes( status1 );
List<IQuickFixActionInfo> fixList2 = platformUI.getQuickFixes( status2 );
assertTrue( "Expecting two quick fixes", fixList1.size() == 2 ); //$NON-NLS-1$
assertTrue( "Expection one quick fix", fixList2.size() == 1 ); //$NON-NLS-1$
for( IQuickFixActionInfo actionInfo : fixList1 )
{
IQuickFixAction action = actionInfo.getAction();
id1.setStatus( status1 );
assertTrue( "Status is not OK", !id1.getStatus().isOK() ); //$NON-NLS-1$
action.action( id1 );
assertTrue( "Status is Ok ", id1.getStatus().isOK() ); //$NON-NLS-1$
}
for( IQuickFixActionInfo actionInfo : fixList2 )
{
IQuickFixAction action = actionInfo.getAction();
id1.setStatus( status2 );
assertTrue( "Status is not OK", !id1.getStatus().isOK() ); //$NON-NLS-1$
action.action( id1 );
assertTrue( "Status is Ok ", id1.getStatus().isOK() ); //$NON-NLS-1$
}
}
public void testActivitiesFilter()
{
IFilter activitiesFilter = ActivityUtils.getCurrentActivitiesFilter();
ServicePolicyPlatform platform = ServicePolicyPlatform.getInstance();
List<IServicePolicy> policyList = platform.getRootServicePolicies( activitiesFilter );
displayPolicies( policyList );
}
private void displayPolicies( List<IServicePolicy> policyList )
{
System.out.println( "Listing service policies:" );
for( IServicePolicy policy : policyList )
{
System.out.println( " " + policy.getId() );
}
}
private void displaySet( String setName, Set<IPolicyOperation> operationSet )
{
System.out.print( setName + ": " ); //$NON-NLS-1$
for( IPolicyOperation operation : operationSet )
{
System.out.print( operation.getId() + "," ); //$NON-NLS-1$
}
System.out.println( "" ); //$NON-NLS-1$
}
private void checkContents( String setName, Set<IPolicyOperation> operationSet, IPolicyOperation[] operationArray )
{
assertTrue( "Set and array sizes don't match for " + setName + ".", operationSet.size() == operationArray.length ); //$NON-NLS-1$ //$NON-NLS-2$
for( IPolicyOperation operation : operationArray )
{
assertTrue( setName + " does not contain operation " + operation.getId() + ".", operationSet.contains( operation ) ); //$NON-NLS-1$ //$NON-NLS-2$
}
}
private void displayOperation( IPolicyOperation operation )
{
List<IServicePolicy> zeroPolicies = new Vector<IServicePolicy>();
List<IServicePolicy> manyPolicies = ServicePolicyPlatform.getInstance().getRootServicePolicies( null );
IDescriptor descriptor = operation.getDescriptor();
String shortName = descriptor.getShortName();
String longName = descriptor.getLongName();
System.out.println( "Operation id: " + operation.getId() ); //$NON-NLS-1$
System.out.println( " short name: " + shortName ); //$NON-NLS-1$
System.out.println( " long name: " + longName ); //$NON-NLS-1$
System.out.println( " pattern: " + operation.getPolicyIdPattern() ); //$NON-NLS-1$
System.out.println( " isEnabled zero: " + operation.isEnabled( zeroPolicies ) ); //$NON-NLS-1$
System.out.println( " isEnabled many: " + operation.isEnabled( manyPolicies ) ); //$NON-NLS-1$
switch( operation.getOperationKind() )
{
case selection:
{
System.out.println( " selection: true" ); //$NON-NLS-1$
break;
}
case iconSelection:
{
System.out.println( " selection icon: true" ); //$NON-NLS-1$
break;
}
case enumeration:
{
System.out.println( " enumeration id: " + operation.getEnumerationId() ); //$NON-NLS-1$
break;
}
case complex:
{
System.out.println( " complex: true" ); //$NON-NLS-1$
operation.launchOperation( zeroPolicies );
break;
}
}
}
}