blob: 815d146502eb4fcac9119e5cae5c14fef4f56873 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 by SAP AG, Walldorf.
* 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:
* SAP AG - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.ws.jaxws.utils.tests.internal.annotations;
import java.io.IOException;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.IField;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.ITypeParameter;
import org.eclipse.jst.ws.jaxws.testutils.project.ClassLoadingTest;
import org.eclipse.jst.ws.jaxws.utils.annotations.AnnotationFactory;
import org.eclipse.jst.ws.jaxws.utils.annotations.AnnotationGeneratorException;
import org.eclipse.jst.ws.jaxws.utils.annotations.AnnotationWriter;
import org.eclipse.jst.ws.jaxws.utils.annotations.IAnnotation;
import org.eclipse.jst.ws.jaxws.utils.annotations.ILocator;
import org.eclipse.jst.ws.jaxws.utils.annotations.IParamValuePair;
import org.eclipse.jst.ws.jaxws.utils.annotations.IValue;
import org.eclipse.jst.ws.jaxws.utils.internal.annotations.impl.AnnotationImpl;
public class AnnotationsBaseImplTest extends ClassLoadingTest
{
private static final String SRC = "src";
private static final String PCK = "org.eclipse.demo";
private IType endpoint;
public void setUp() throws CoreException, IOException, AnnotationGeneratorException
{
setUpWitoutRemove();
AnnotationFactory.removeAnnotationsFromJavaElement(endpoint);
}
public void setUpWitoutRemove() throws CoreException, IOException, AnnotationGeneratorException
{
createJavaProject(SRC, PCK);
endpoint = createClass("Endpoint.src", "Endpoint");
}
public void setUpWitoutRemove2() throws CoreException, IOException, AnnotationGeneratorException
{
createJavaProject(SRC, PCK);
endpoint = createClass("EndpointAnnInspector.src", "EndpointAnnInspector");
}
public void testBaseAnnotattionFunctionality()
{
AnnotationImpl<IType> ann = new AnnotationImpl<IType>("com.spa.test.MyAnnotation", new HashSet<IParamValuePair>());
assertEquals(ann.getAnnotationName(), "com.spa.test.MyAnnotation");
assertEquals(ann.getSimpleAnnotationName(), "MyAnnotation");
//assertEquals(ann.getValueType(), IValue.ANNOTATION_VALUE);
ann = new AnnotationImpl<IType>("MyNewAnnotation", new HashSet<IParamValuePair>());
assertEquals(ann.getAnnotationName(), "MyNewAnnotation");
assertEquals(ann.getSimpleAnnotationName(), "MyNewAnnotation");
//assertEquals(ann.getValueType(), IValue.ANNOTATION_VALUE);
}
public void testAddAnnotation() throws Exception
{
setUp();
IValue qv = AnnotationFactory.createQualifiedNameValue("full.qualified.Name");
Set<IParamValuePair> pv = new HashSet<IParamValuePair>();
pv.add(AnnotationFactory.createParamValuePairValue("param", qv));
IAnnotation<IType> ann = AnnotationFactory.createAnnotation("org.eclipse.test.MyAnnotation", pv, endpoint);
AnnotationWriter.getInstance().setAppliedElement(ann, endpoint);
Collection<IAnnotation<IType>> annotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectType();
assertNotNull(annotations);
assertTrue(annotations.size() == 1);
IAnnotation<IType> tmpAnn = annotations.iterator().next();
AnnotationWriter.getInstance().remove(tmpAnn);
annotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectType();
assertTrue(annotations.size() == 0);
IMethod[] methods = endpoint.getMethods();
for (IMethod method : methods)
{
if(method.getRawParameterNames() != null && method.getRawParameterNames().length > 0)
{
IAnnotation<IMethod> annM = AnnotationFactory.createAnnotation("org.eclipse.test.MyAnnotationMethod", pv, method);
AnnotationWriter.getInstance().setAppliedElement(annM, method);
assertEquals("full.qualified.Name", annM.getPropertyValue("param"));
assertNull(annM.getPropertyValue("paramNotExists"));
Collection<IAnnotation<IMethod>> annotationsM = AnnotationFactory.createAnnotationInspector(endpoint).inspectMethod(method);
IAnnotation<IMethod> annotatM = annotationsM.iterator().next();
assertEquals("qualified.Name", annotatM.getPropertyValue("param"));
IValue sv = AnnotationFactory.createStringValue("New String Value");
annM.getParamValuePairs().add(AnnotationFactory.createParamValuePairValue("NewParam", sv));
AnnotationWriter.getInstance().update(annM);
annotationsM = AnnotationFactory.createAnnotationInspector(endpoint).inspectMethod(method);
assertTrue(annotationsM.size() == 1);
annotatM = annotationsM.iterator().next();
assertEquals("New String Value", annotatM.getPropertyValue("NewParam"));
assertEquals("qualified.Name", annotatM.getPropertyValue("param"));
AnnotationWriter.getInstance().remove(annotatM);
annotationsM = AnnotationFactory.createAnnotationInspector(endpoint).inspectMethod(method);
assertTrue(annotationsM.size() == 0);
IValue sv3 = AnnotationFactory.createStringValue("New String Value3");
annM.getParamValuePairs().clear();
annM.getParamValuePairs().add(AnnotationFactory.createParamValuePairValue("NewParam", sv3));
AnnotationWriter.getInstance().update(annM);
annotationsM = AnnotationFactory.createAnnotationInspector(endpoint).inspectMethod(method);
assertTrue(annotationsM.size() == 1);
annotatM = annotationsM.iterator().next();
assertEquals("New String Value3", annotatM.getPropertyValue("NewParam"));
// clear annotation
AnnotationWriter.getInstance().remove(annM);
annotationsM = AnnotationFactory.createAnnotationInspector(endpoint).inspectMethod(method);
assertTrue(annotationsM.size() == 0);
for(int i = 0; i < method.getRawParameterNames().length; i++)
{
ITypeParameter param = method.getTypeParameter(method.getRawParameterNames()[i]);
IValue svParam = AnnotationFactory.createStringValue("String Valu Param");
Set<IParamValuePair> pvParam = new HashSet<IParamValuePair>();
pvParam.add(AnnotationFactory.createParamValuePairValue("ParamAtribute", svParam));
IAnnotation<ITypeParameter> annP = AnnotationFactory.createAnnotation("ParamAnnotation", pvParam, param);
AnnotationWriter.getInstance().setAppliedElement(annP, param);
AnnotationWriter.getInstance().remove(annP);
}
}
}
}
public void testAnnotattionUpdate() throws Exception
{
setUp();
IValue sv = AnnotationFactory.createStringValue("StringValue");
Set<IParamValuePair> spv = new HashSet<IParamValuePair>();
spv.add(AnnotationFactory.createParamValuePairValue("stringParam", sv));
IAnnotation<IType> typeAnnotation = AnnotationFactory.createAnnotation("org.eclipse.test.MyTypeAnnotation", spv, endpoint);
AnnotationWriter.getInstance().setAppliedElement(typeAnnotation, endpoint);
Collection<IAnnotation<IType>> typeAnnotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectType();
assertNotNull(typeAnnotations);
assertTrue(typeAnnotations.size() == 1);
IAnnotation<IType> tempTypeAnnotation = typeAnnotations.iterator().next();
assertEquals(tempTypeAnnotation.getPropertyValue("stringParam"), "StringValue");
IValue newSV = AnnotationFactory.createStringValue("NewStringValue");
Set<IParamValuePair> newSPV = new HashSet<IParamValuePair>();
newSPV.add(AnnotationFactory.createParamValuePairValue("stringParam", newSV));
AnnotationImpl<IType> newTypeAnnotation = new AnnotationImpl<IType>("org.eclipse.test.MyTypeAnnotation", newSPV);
newTypeAnnotation.setAppliedElementWithoutSave(endpoint);
AnnotationWriter.getInstance().update(newTypeAnnotation);
typeAnnotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectType();
assertNotNull(typeAnnotations);
assertTrue(typeAnnotations.size() == 1);
tempTypeAnnotation = typeAnnotations.iterator().next();
assertEquals(tempTypeAnnotation.getPropertyValue("stringParam"), "NewStringValue");
newSV = AnnotationFactory.createStringValue("NewestStringValue");
newSPV = new HashSet<IParamValuePair>();
newSPV.add(AnnotationFactory.createParamValuePairValue("newestStringParam", newSV));
newTypeAnnotation = new AnnotationImpl<IType>("org.eclipse.test.MyTypeAnnotation", newSPV);
newTypeAnnotation.setAppliedElementWithoutSave(endpoint);
AnnotationWriter.getInstance().update(newTypeAnnotation);
typeAnnotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectType();
assertNotNull(typeAnnotations);
assertTrue(typeAnnotations.size() == 1);
tempTypeAnnotation = typeAnnotations.iterator().next();
assertNull(tempTypeAnnotation.getPropertyValue("stringParam"));
assertEquals(tempTypeAnnotation.getPropertyValue("newestStringParam"), "NewestStringValue");
IMethod firstMethod = endpoint.getMethods()[0];
IValue iv = AnnotationFactory.createIntegerValue("10");
Set<IParamValuePair> ipv = new HashSet<IParamValuePair>();
ipv.add(AnnotationFactory.createParamValuePairValue("integerParam", iv));
IAnnotation<IMethod> methodAnnotation = AnnotationFactory.createAnnotation("org.eclipse.test.MyMethodAnnotation", ipv, firstMethod);
AnnotationWriter.getInstance().setAppliedElement(methodAnnotation, firstMethod);
Collection<IAnnotation<IMethod>> methodAnnotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectMethod(firstMethod);
assertNotNull(methodAnnotations);
assertTrue(methodAnnotations.size() == 1);
IAnnotation<IMethod> tempMethodAnnotation = methodAnnotations.iterator().next();
assertEquals(tempMethodAnnotation.getPropertyValue("integerParam"), "10");
IValue newIV = AnnotationFactory.createIntegerValue("11");
Set<IParamValuePair> newIPV = new HashSet<IParamValuePair>();
newIPV.add(AnnotationFactory.createParamValuePairValue("integerParam", newIV));
AnnotationImpl<IMethod> newMethodAnnotation = new AnnotationImpl<IMethod>("org.eclipse.test.MyMethodAnnotation", newIPV);
newMethodAnnotation.setAppliedElementWithoutSave(firstMethod);
AnnotationWriter.getInstance().update(newMethodAnnotation);
methodAnnotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectMethod(firstMethod);
assertNotNull(methodAnnotations);
assertTrue(methodAnnotations.size() == 1);
tempMethodAnnotation = methodAnnotations.iterator().next();
assertEquals(tempMethodAnnotation.getPropertyValue("integerParam"), "11");
newIV = AnnotationFactory.createIntegerValue("100");
newIPV = new HashSet<IParamValuePair>();
newIPV.add(AnnotationFactory.createParamValuePairValue("newestIntegerParam", newIV));
newMethodAnnotation = new AnnotationImpl<IMethod>("org.eclipse.test.MyMethodAnnotation", newIPV);
newMethodAnnotation.setAppliedElementWithoutSave(firstMethod);
AnnotationWriter.getInstance().update(newMethodAnnotation);
methodAnnotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectMethod(firstMethod);
assertNotNull(methodAnnotations);
assertTrue(methodAnnotations.size() == 1);
tempMethodAnnotation = methodAnnotations.iterator().next();
assertNull(tempMethodAnnotation.getPropertyValue("integerParam"));
assertEquals(tempMethodAnnotation.getPropertyValue("newestIntegerParam"), "100");
ITypeParameter typeParameter = firstMethod.getTypeParameter("annotatedParam");
IValue bv = AnnotationFactory.createBooleanValue(true);
Set<IParamValuePair> bpv = new HashSet<IParamValuePair>();
bpv.add(AnnotationFactory.createParamValuePairValue("booleanParam", bv));
IAnnotation<ITypeParameter> parameterAnnotation = AnnotationFactory.createAnnotation("org.eclipse.test.MyParameterAnnotation", bpv, typeParameter);
AnnotationWriter.getInstance().setAppliedElement(parameterAnnotation, typeParameter);
Collection<IAnnotation<ITypeParameter>> parameterAnnotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectParam(typeParameter);
assertNotNull(parameterAnnotations);
assertTrue(parameterAnnotations.size() == 1);
IAnnotation<ITypeParameter> tempParameterAnnotation = parameterAnnotations.iterator().next();
assertEquals(tempParameterAnnotation.getPropertyValue("booleanParam"), "true");
IValue newBV = AnnotationFactory.createBooleanValue(false);
Set<IParamValuePair> newBPV = new HashSet<IParamValuePair>();
newBPV.add(AnnotationFactory.createParamValuePairValue("booleanParam", newBV));
AnnotationImpl<ITypeParameter> newParameterAnnotation = new AnnotationImpl<ITypeParameter>("org.eclipse.test.MyParameterAnnotation", newBPV);
newParameterAnnotation.setAppliedElementWithoutSave(typeParameter);
AnnotationWriter.getInstance().update(newParameterAnnotation);
parameterAnnotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectParam(typeParameter);
assertNotNull(parameterAnnotations);
assertTrue(parameterAnnotations.size() == 1);
tempParameterAnnotation = parameterAnnotations.iterator().next();
assertEquals(tempParameterAnnotation.getPropertyValue("booleanParam"), "false");
newBV = AnnotationFactory.createBooleanValue(true);
newBPV = new HashSet<IParamValuePair>();
newBPV.add(AnnotationFactory.createParamValuePairValue("newestBooleanParam", newBV));
newParameterAnnotation = new AnnotationImpl<ITypeParameter>("org.eclipse.test.MyParameterAnnotation", newBPV);
newParameterAnnotation.setAppliedElementWithoutSave(typeParameter);
AnnotationWriter.getInstance().update(newParameterAnnotation);
parameterAnnotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectParam(typeParameter);
assertNotNull(parameterAnnotations);
assertTrue(parameterAnnotations.size() == 1);
tempParameterAnnotation = parameterAnnotations.iterator().next();
assertNull(tempParameterAnnotation.getPropertyValue("booleanParam"));
assertEquals(tempParameterAnnotation.getPropertyValue("newestBooleanParam"), "true");
}
public void testSetAppliedElementWithoutSave() throws Exception
{
setUp();
IValue qv = AnnotationFactory.createQualifiedNameValue("full.qualified.Name");
Set<IParamValuePair> pv = new HashSet<IParamValuePair>();
pv.add(AnnotationFactory.createParamValuePairValue("param", qv));
IAnnotation<IType> ann = AnnotationFactory.createAnnotation("org.eclipse.test.MyAnnotation", pv, endpoint);
try
{
AnnotationWriter.getInstance().setAppliedElement(ann, null);
fail("NullPointerException was not thrown.");
}
catch (NullPointerException e)
{
assertTrue(true);
}
}
public void testMultyAddAnnotation() throws Exception
{
setUpWitoutRemove();
IWorkspaceRunnable runnable = new IWorkspaceRunnable()
{
public void run(IProgressMonitor monitor) throws CoreException
{
try
{
Set<String> annoSet = new HashSet<String>();
annoSet.add("Stateless");
AnnotationFactory.removeAnnotations(endpoint, annoSet);
IValue qv = AnnotationFactory.createQualifiedNameValue("full.qualified.Name");
Set<IParamValuePair> pv = new HashSet<IParamValuePair>();
pv.add(AnnotationFactory.createParamValuePairValue("param", qv));
IAnnotation<IType> ann = AnnotationFactory.createAnnotation("org.eclipse.test.MyAnnotation", pv, endpoint);
AnnotationWriter.getInstance().setAppliedElement(ann, endpoint);
IValue sv = AnnotationFactory.createStringValue("StringValue");
Set<IParamValuePair> spv = new HashSet<IParamValuePair>();
spv.add(AnnotationFactory.createParamValuePairValue("stringParam", sv));
IAnnotation<IType> sAnn = AnnotationFactory.createAnnotation("org.eclipse.test.MyStringAnnotation", spv, endpoint);
AnnotationWriter.getInstance().setAppliedElement(sAnn, endpoint);
Collection<IAnnotation<IType>> annotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectType();
assertNotNull(annotations);
assertTrue(annotations.size() == 3);
IAnnotation<IType> tmpAnn = annotations.iterator().next();
AnnotationWriter.getInstance().remove(tmpAnn);
annotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectType();
assertTrue(annotations.size() == 2);
IMethod[] methods = endpoint.getMethods();
for (IMethod method : methods)
{
IValue smv = AnnotationFactory.createStringValue("StringValue");
Set<IParamValuePair> smpv = new HashSet<IParamValuePair>();
smpv.add(AnnotationFactory.createParamValuePairValue("stringParam", smv));
IAnnotation<IMethod> smAnn = AnnotationFactory.createAnnotation("org.eclipse.test.MyAnnotationMethod", smpv, method);
AnnotationWriter.getInstance().setAppliedElement(smAnn, method);
Collection<IAnnotation<IMethod>> annotationsM = AnnotationFactory.createAnnotationInspector(endpoint).inspectMethod(method);
assertNotNull(annotationsM);
assertTrue(annotationsM.size() == 2);
annotations = AnnotationFactory.createAnnotationInspector(endpoint).inspectType();
assertNotNull(annotations);
assertTrue(annotations.size() == 2);
}
} catch (Exception e)
{
fail(e.getMessage());
}
}
};
getTestProject().getSourceFolder().getResource().getWorkspace().run(runnable, null);
}
public void testEquals()
{
IValue qv = AnnotationFactory.createQualifiedNameValue("full.qualified.Name");
Set<IParamValuePair> pv = new HashSet<IParamValuePair>();
pv.add(AnnotationFactory.createParamValuePairValue("param", qv));
IAnnotation<IType> ann1 = AnnotationFactory.createAnnotation("org.eclipse.test.MyAnnotation1", pv, endpoint);
IAnnotation<IType> ann2 = AnnotationFactory.createAnnotation("org.eclipse.test.MyAnnotation2", pv, endpoint);
IAnnotation<IType> ann3 = AnnotationFactory.createAnnotation("org.eclipse.test.MyAnnotation1", pv, endpoint);
assertTrue(ann1.equals(ann1));
assertFalse(ann1.equals(null));
assertFalse(ann1.equals(qv));
assertFalse(ann1.equals(ann2));
assertTrue(ann1.equals(ann3));
}
public void testField() throws Exception
{
setUp();
IValue qv = AnnotationFactory.createQualifiedNameValue("full.qualified.Name");
Set<IParamValuePair> pv = new HashSet<IParamValuePair>();
pv.add(AnnotationFactory.createParamValuePairValue("param", qv));
IAnnotation<IField> ann = AnnotationFactory.createAnnotation("org.eclipse.test.MyAnnotation", pv, endpoint.getField("field1"));
AnnotationWriter.getInstance().setAppliedElement(ann, endpoint.getField("field1"));
assertEquals(ann.getAppliedElement(), endpoint.getField("field1"));
}
public void testLocator() throws Exception
{
setUpWitoutRemove2();
IAnnotation<IType> inspectedTypeAnnotation = AnnotationFactory.createAnnotationInspector(endpoint).inspectType("org.eclipse.demo.MyAnnotation");
assertNotNull(inspectedTypeAnnotation);
ILocator locator = inspectedTypeAnnotation.getLocator();
assertEquals("Unexpected annotation start position", 191, locator.getStartPosition());
assertEquals("Unexpected length", 33, locator.getLength());
Set<IParamValuePair> parmValues = inspectedTypeAnnotation.getParamValuePairs();
for (IParamValuePair paramValuePair : parmValues)
{
if(paramValuePair.getParam().equals("myValue"))
{
locator = paramValuePair.getLocator();
assertEquals("Unexpected annotation parameter start position", 205, locator.getStartPosition());
assertEquals("Unexpected annotation parameter length", 18, locator.getLength());
}
}
inspectedTypeAnnotation = AnnotationFactory.createAnnotationInspector(endpoint).inspectType("javax.jws.WebService");
assertNotNull(inspectedTypeAnnotation);
locator = inspectedTypeAnnotation.getLocator();
assertEquals("Unexpected @WebService annotation start position", 226, locator.getStartPosition());
assertEquals("Unexpected @WebService annotation length", 134, locator.getLength());
parmValues = inspectedTypeAnnotation.getParamValuePairs();
for (IParamValuePair paramValuePair : parmValues)
{
if(paramValuePair.getParam().equals("serviceName"))
{
locator = paramValuePair.getLocator();
assertEquals("Unexpected serviceName annotation parameter start position", 238, locator.getStartPosition());
assertEquals("Unexpected serviceName annotation parameter length", 31, locator.getLength());
}
if(paramValuePair.getParam().equals("name"))
{
locator = paramValuePair.getLocator();
assertEquals("Unexpected serviceName annotation parameter start position", 271, locator.getStartPosition());
assertEquals("Unexpected serviceName annotation parameter length", 17, locator.getLength());
}
if(paramValuePair.getParam().equals("targetNamespace"))
{
locator = paramValuePair.getLocator();
assertEquals("Unexpected targetNamespace annotation parameter start position", 290, locator.getStartPosition());
assertEquals("Unexpected targetNamespace annotation parameter length", 42, locator.getLength());
}
if(paramValuePair.getParam().equals("portName"))
{
locator = paramValuePair.getLocator();
assertEquals("Unexpected portName annotation parameter start position", 334, locator.getStartPosition());
assertEquals("Unexpected portName annotation parameter length", 25, locator.getLength());
}
}
IField field = endpoint.getField("field1");
IAnnotation<IField> inspectedFieldAnnotation = AnnotationFactory.createAnnotationInspector(endpoint).inspectField(field, "org.eclipse.demo.MyFieldAnnotation");
locator = inspectedFieldAnnotation.getLocator();
assertEquals("Unexpected MyFieldAnnotation annotation parameter start position", 401, locator.getStartPosition());
assertEquals("Unexpected MyFieldAnnotation annotation parameter length", 33, locator.getLength());
parmValues = inspectedFieldAnnotation.getParamValuePairs();
for (IParamValuePair paramValuePair : parmValues)
{
if(paramValuePair.getParam().equals("name"))
{
locator = paramValuePair.getLocator();
assertEquals("Unexpected name annotation parameter start position", 420, locator.getStartPosition());
assertEquals("Unexpected name annotation parameter length", 13, locator.getLength());
}
}
inspectedFieldAnnotation = AnnotationFactory.createAnnotationInspector(endpoint).inspectField(field, "javax.jws.WebField");
locator = inspectedFieldAnnotation.getLocator();
assertEquals("Unexpected WebField annotation parameter start position", 437, locator.getStartPosition());
assertEquals("Unexpected WebField annotation parameter length", 25, locator.getLength());
parmValues = inspectedFieldAnnotation.getParamValuePairs();
for (IParamValuePair paramValuePair : parmValues)
{
if(paramValuePair.getParam().equals("name"))
{
locator = paramValuePair.getLocator();
assertEquals("Unexpected name annotation parameter start position", 447, locator.getStartPosition());
assertEquals("Unexpected name annotation parameter length", 14, locator.getLength());
}
}
IMethod method = endpoint.getMethods()[0];
IAnnotation<IMethod> inspectedMethodAnnotation = AnnotationFactory.createAnnotationInspector(endpoint).inspectMethod(method, "org.eclipse.demo.MyMethodAnnotation");
locator = inspectedMethodAnnotation.getLocator();
assertEquals("Unexpected MyMethodAnnotation annotation parameter start position", 492, locator.getStartPosition());
assertEquals("Unexpected MyMethodAnnotation annotation parameter length", 43, locator.getLength());
parmValues = inspectedMethodAnnotation.getParamValuePairs();
for (IParamValuePair paramValuePair : parmValues)
{
if(paramValuePair.getParam().equals("name"))
{
locator = paramValuePair.getLocator();
assertEquals("Unexpected name annotation parameter start position", 512, locator.getStartPosition());
assertEquals("Unexpected name annotation parameter length", 22, locator.getLength());
}
}
inspectedMethodAnnotation = AnnotationFactory.createAnnotationInspector(endpoint).inspectMethod(method, "javax.jws.WebMethod");
locator = inspectedMethodAnnotation.getLocator();
assertEquals("Unexpected WebMethod annotation parameter start position", 538, locator.getStartPosition());
assertEquals("Unexpected WebMethod annotation parameter length", 46, locator.getLength());
parmValues = inspectedMethodAnnotation.getParamValuePairs();
for (IParamValuePair paramValuePair : parmValues)
{
if(paramValuePair.getParam().equals("exclude"))
{
locator = paramValuePair.getLocator();
assertEquals("Unexpected exclude annotation parameter start position", 549, locator.getStartPosition());
assertEquals("Unexpected exclude annotation parameter length", 13, locator.getLength());
}
if(paramValuePair.getParam().equals("operationName"))
{
locator = paramValuePair.getLocator();
assertEquals("Unexpected operationName annotation parameter start position", 563, locator.getStartPosition());
assertEquals("Unexpected operationName annotation parameter length", 20, locator.getLength());
}
}
ITypeParameter typeParameter = method.getTypeParameter("annotatedParam");
IAnnotation<ITypeParameter> inspectedParamAnnotation = AnnotationFactory.createAnnotationInspector(endpoint).inspectParam(typeParameter, "org.eclipse.demo.MyParamAnnotation");
locator = inspectedParamAnnotation.getLocator();
assertEquals("Unexpected MyParamAnnotation annotation parameter start position", 649, locator.getStartPosition());
assertEquals("Unexpected MyParamAnnotation annotation parameter length", 43, locator.getLength());
parmValues = inspectedParamAnnotation.getParamValuePairs();
for (IParamValuePair paramValuePair : parmValues)
{
if(paramValuePair.getParam().equals("name"))
{
locator = paramValuePair.getLocator();
assertEquals("Unexpected name annotation parameter start position", 668, locator.getStartPosition());
assertEquals("Unexpected name annotation parameter length", 23, locator.getLength());
}
}
inspectedParamAnnotation = AnnotationFactory.createAnnotationInspector(endpoint).inspectParam(typeParameter, "javax.jws.WebParam");
locator = inspectedParamAnnotation.getLocator();
assertEquals("Unexpected WebParam annotation parameter start position", 616, locator.getStartPosition());
assertEquals("Unexpected WebParam annotation parameter length", 32, locator.getLength());
parmValues = inspectedParamAnnotation.getParamValuePairs();
for (IParamValuePair paramValuePair : parmValues)
{
if(paramValuePair.getParam().equals("name"))
{
locator = paramValuePair.getLocator();
assertEquals("Unexpected name annotation parameter start position", 626, locator.getStartPosition());
assertEquals("Unexpected name annotation parameter length", 21, locator.getLength());
}
}
}
}