blob: 0d3c49a84001404b806bb479c33263256a188e20 [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.dom.runtime.tests.dom.persistence.serializer;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebMethod;
import org.eclipse.jst.ws.jaxws.dom.runtime.persistence.JaxWsWorkspaceResource;
import org.eclipse.jst.ws.jaxws.dom.runtime.persistence.WMAnnotationFeatures;
import org.eclipse.jst.ws.jaxws.dom.runtime.persistence.serializer.MethodSerializerAdapter;
import org.eclipse.jst.ws.jaxws.utils.annotations.AnnotationFactory;
import org.eclipse.jst.ws.jaxws.utils.annotations.IAnnotation;
import org.eclipse.jst.ws.jaxws.utils.annotations.IAnnotationInspector;
import static org.eclipse.jst.ws.jaxws.dom.runtime.persistence.WMAnnotationFeatures.WM_ANNOTATION;
public class MethodSerializerAdapterTest extends SerializerAdapterTestFixture
{
private IWebMethod webMethod1;
private IMethod method1;
public void setUp() throws Exception
{
super.setUp();
resource.startSynchronizing();
method1 = seiType.createMethod("public void test1();", null, true, null);
webMethod1 = sei.getWebMethods().get(0);
}
public void testGetAnnotationDefaultValues() throws Exception
{
MyMethodSerializerAdapter adapter = new MyMethodSerializerAdapter(resource, webMethod1);
IAnnotation<? extends IJavaElement> annotation = adapter.getAnnotation();
assertNotNull(annotation);
assertEquals(0, annotation.getParamValuePairs().size());
assertNull(annotation.getPropertyValue(WMAnnotationFeatures.WM_NAME_ATTRIBUTE));
assertNull(annotation.getPropertyValue(WMAnnotationFeatures.WM_EXCLUDED_ATTRIBUTE));
}
public void testGetAnnotationNonDefaultValues() throws Exception
{
resource.disableSaving();
webMethod1.setName("changed");
webMethod1.setExcluded(true);
MyMethodSerializerAdapter adapter = new MyMethodSerializerAdapter(resource, webMethod1);
IAnnotation<? extends IJavaElement> annotation = adapter.getAnnotation();
assertNotNull(annotation);
assertEquals(2, annotation.getParamValuePairs().size());
assertEquals("changed", annotation.getPropertyValue(WMAnnotationFeatures.WM_NAME_ATTRIBUTE));
assertEquals("true", annotation.getPropertyValue(WMAnnotationFeatures.WM_EXCLUDED_ATTRIBUTE));
}
public void testSaveAnnotation() throws Exception
{
webMethod1.setName("changedOperation");
final IAnnotationInspector inspector = AnnotationFactory.createAnnotationInspector(seiType);
final IAnnotation<IMethod> annotation = inspector.inspectMethod(method1, WM_ANNOTATION);
assertNotNull(annotation);
assertEquals("changedOperation", annotation.getPropertyValue(WMAnnotationFeatures.WM_NAME_ATTRIBUTE));
}
public void testSaveAnnotationEmptyName() throws Exception
{
webMethod1.setName("method1");
webMethod1.setName(null);
final IAnnotationInspector inspector = AnnotationFactory.createAnnotationInspector(seiType);
final IAnnotation<IMethod> annotation = inspector.inspectMethod(method1, WM_ANNOTATION);
assertNotNull(annotation);
assertEquals("method1", annotation.getPropertyValue(WMAnnotationFeatures.WM_NAME_ATTRIBUTE));
}
protected class MyMethodSerializerAdapter extends MethodSerializerAdapter
{
public MyMethodSerializerAdapter(JaxWsWorkspaceResource resource, IWebMethod webMethod) {
super(resource);
setTarget(webMethod);
}
public IAnnotation<? extends IJavaElement> getAnnotation() throws JavaModelException
{
return super.getAnnotation();
}
}
}