Skip to main content
summaryrefslogtreecommitdiffstats
blob: e1b94fc30f2703dac057715be4db4f871b4ed206 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/*******************************************************************************
 * Copyright (c) 2004, 2009 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
 * -------- -------- -----------------------------------------------------------
 * 20060727   144354 kathy@ca.ibm.com - Kathy Chan
 * 20060821   153833 makandre@ca.ibm.com - Andrew Mak, Allow the Web Service Test extension point to specify the supported client runtime
 * 20060907   156606 makandre@ca.ibm.com - Andrew Mak, no sample JSP in the pop-up action of Generate Sample JSPs
 * 20090724   284582 mahutch@ca.ibm.com - Mark Hutchinson, WS Test facility selection ignored when wizard completes. Default always chosen
 *******************************************************************************/
/*
 * Created on May 4, 2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package org.eclipse.jst.ws.internal.consumption.ui.widgets.test;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jst.ws.internal.context.ScenarioContext;
import org.eclipse.jst.ws.internal.ext.test.WebServiceTestExtension;
import org.eclipse.jst.ws.internal.ext.test.WebServiceTestRegistry;
import org.eclipse.jst.ws.internal.plugin.WebServicePlugin;
import org.eclipse.wst.command.internal.env.core.selection.SelectionList;
import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;


/**
 * @author gilberta
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class TestDefaultingFragment extends AbstractDataModelOperation
{
  
  private SelectionList testFacilities;
  private String launchedServiceTestName;
  private ScenarioContext scenarioContext;	
  private boolean generateProxy;  // This actually represent whether client test is requested
  
  private String clientRuntimeId_;
  
  public IStatus execute( IProgressMonitor monitor, IAdaptable adaptable )
  {
  	IStatus status = Status.OK_STATUS;
  	
  	scenarioContext = WebServicePlugin.getInstance().getScenarioContext().copy();
  	if (generateProxy || testFacilities == null) {
  		selectTestFacility();
  	}
    return status;
  }
	
  // The test facilities retrieved from the extension
  // plus the default
  public SelectionList getTestFacility()
  {
    return testFacilities;
  } 
	  
  
  
  //	*********************** 
  // This method uses the preference to 
  // select the correct test facility 
  // 
  //***********************
  private void selectTestFacility()
  {
    //if we find something we launched earlier 
    //put it on the bottom
    String[] testTypes = scenarioContext.getWebServiceTestTypes();	  
    List newTestTypes = new ArrayList();
	String[] wsdlCases = scenarioContext.getNonJavaTestService();
	boolean launched = false;
	
    for(int i = 0;i<testTypes.length;i++){
    	
      WebServiceTestExtension extension =
    	  (WebServiceTestExtension) WebServiceTestRegistry.getInstance()
    	  .getWebServiceExtensionsByName(testTypes[i]);
		  
      if (clientRuntimeId_ != null && !extension.supportsRuntime(clientRuntimeId_))
    	  continue;
    	
	  if(testTypes[i].equals(launchedServiceTestName))
	    launched = true;
	  else{
	     newTestTypes.add(testTypes[i]); 
	  }
	}
	   	
    if(launched)
	  newTestTypes.add(launchedServiceTestName);
    
	
	if(!generateProxy)
      testFacilities = new SelectionList(wsdlCases,0);	
	else {
	  String[] tempArray = new String[newTestTypes.size()];
	  testFacilities = new SelectionList((String[]) newTestTypes.toArray(tempArray), 0);
	}
  }

  public void setServiceTestFacilities(SelectionList facilities) {
	  this.testFacilities = facilities;
  }
  
  public void setLaunchedServiceTestName(String launchedServiceTestName)
  {
  	this.launchedServiceTestName = launchedServiceTestName;
  }
  
  public void setGenerateProxy(boolean generateProxy)
  {
  	this.generateProxy = generateProxy;
  }
    
  /**
   * Sets the client runtime ID.
   * 
   * @param clientRuntimeId The client runtime ID.
   */
  public void setClientRuntimeId(String clientRuntimeId) {
	  clientRuntimeId_ = clientRuntimeId;
  }

}

Back to the top