blob: 0c7a60bd1ddf1de5f07ea75062c94e53994bb88b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 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
* -------- -------- -----------------------------------------------------------
* 20060317 127456 cbrealey@ca.ibm.com - Chris Brealey
* 20060711 147862 cbrealey@ca.ibm.com - Chris Brealey
* 20060711 147864 cbrealey@ca.ibm.com - Chris Brealey
*******************************************************************************/
package org.eclipse.jst.ws.axis.consumption.core.tests.unittest;
import java.util.Iterator;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jst.ws.axis.consumption.core.tests.util.JavaFilter;
import org.eclipse.jst.ws.axis.consumption.core.tests.util.StdoutProgressMonitor;
import org.eclipse.jst.ws.axis.consumption.core.tests.util.Util;
import org.eclipse.jst.ws.internal.wsrt.WebServiceJavaClientInfo;
import org.eclipse.wst.ws.internal.wsfinder.WebServiceFinder;
import org.eclipse.wst.ws.internal.wsrt.WebServiceClientInfo;
public class LocatorTests extends TestCase
{
public static Test suite ()
{
return new TestSuite(LocatorTests.class);
}
public void test_AxisClientLocator ()
{
System.out.println("BEGIN test_AxisClientLocator");
try
{
String[] projectNames = new String[] {"Java1","Java2","Java3"};
IProject[] projects = new IProject[projectNames.length];
for (int x=0; x<projectNames.length; x++)
{
projects[x] = ResourcesPlugin.getWorkspace().getRoot().getProject(projectNames[x]);
}
Util.init();
try
{
for (int i=0; i<projects.length; i++)
{
IJavaProject javaProject = Util.createJavaProject(projectNames[i]);
Util.addRequiredJarsToJavaProject(javaProject);
Util.copyExamplesToJavaProject(javaProject,new JavaFilter());
}
}
catch (Throwable t)
{
t.printStackTrace();
fail("Failed to access or create prerequisite projects");
}
WebServiceFinder finder = WebServiceFinder.instance();
String[] categoryIds = finder.getWebServiceCategoryIds();
int n = -1;
IProgressMonitor monitor = new StdoutProgressMonitor();
for (int i=0; i<categoryIds.length; i++)
{
System.out.println("Category ID = ["+categoryIds[i]+"]");
if (categoryIds[i].equals("org.eclipse.jst.ws.internal.axis.consumption.core.locator.category.axis"))
{
n = i;
Iterator iter = finder.getWebServiceClientsByCategoryId(categoryIds[i],monitor);
assertFoundClients(iter,6);
iter = finder.getWebServiceClientsByCategoryId(categoryIds[i],projects,monitor);
assertFoundClients(iter,6);
iter = finder.getWebServiceClientsByCategoryId(categoryIds[i],new IProject[] {projects[0]},monitor);
assertFoundClients(iter,2);
iter = finder.getWebServiceClientsByCategoryId(categoryIds[i],new IProject[] {projects[1],projects[2]},monitor);
assertFoundClients(iter,4);
IProject noSuchProject = ResourcesPlugin.getWorkspace().getRoot().getProject("noSuchProject");
iter = finder.getWebServiceClientsByCategoryId(categoryIds[i],new IProject[] {noSuchProject},monitor);
assertFoundClients(iter,0);
}
}
assertTrue("Axis locator extension missing.",n >= 0);
}
finally
{
System.out.println("ENDED test_AxisClientLocator");
}
}
private void assertFoundClients ( Iterator iter, int x )
{
int p = 0;
while (iter.hasNext())
{
Object obj = iter.next();
assertTrue("Finder returned a "+obj.getClass().getName()+" instead of a WebServiceClientInfo.",obj instanceof WebServiceClientInfo);
p++;
WebServiceClientInfo wscInfo = (WebServiceClientInfo)obj;
String proxyClassURL = wscInfo.getImplURL();
System.out.println("Axis client proxy class = ["+proxyClassURL+"]");
if (wscInfo instanceof WebServiceJavaClientInfo)
{
WebServiceJavaClientInfo wscJInfo = (WebServiceJavaClientInfo)wscInfo;
assertNotNull("Found an unexpected null IType",wscJInfo.getType());
System.out.println("Axis client proxy IType = ["+wscJInfo.getType()+"]");
}
}
assertTrue("Found "+p+" proxies instead of the expected "+x+".",p == x);
}
}