/******************************************************************************* | |
* 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.runtime.CoreException; | |
import org.eclipse.jdt.core.IType; | |
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.IParamValuePair; | |
import org.eclipse.jst.ws.jaxws.utils.annotations.IValue; | |
import org.eclipse.jst.ws.jaxws.utils.internal.annotations.impl.ArrayValueImpl; | |
import org.eclipse.jst.ws.jaxws.utils.internal.annotations.impl.StringValueImpl; | |
public class ArrayValueImplTest 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 | |
{ | |
createJavaProject(SRC, PCK); | |
endpoint = createClass("Endpoint.src", "Endpoint"); | |
AnnotationFactory.removeAnnotationsFromJavaElement(endpoint); | |
} | |
public void testHashCode() | |
{ | |
Set<IValue> values1 = new HashSet<IValue>(); | |
values1.clear(); | |
values1.add(new StringValueImpl("val1")); | |
ArrayValueImpl av1 = new ArrayValueImpl(values1); | |
Set<IValue> values2 = new HashSet<IValue>(); | |
values2.clear(); | |
values2.add(new StringValueImpl("val2")); | |
ArrayValueImpl av2 = new ArrayValueImpl(values2); | |
assertTrue(av1.hashCode() != av2.hashCode()); | |
} | |
public void testArrayValueImpl() | |
{ | |
try | |
{ | |
new ArrayValueImpl(null); | |
fail("NullPointerException not thrown"); | |
} catch (NullPointerException e) | |
{ | |
assertTrue(true); | |
} | |
} | |
public void testEqualsObject() | |
{ | |
Set<IValue> values1 = new HashSet<IValue>(); | |
values1.clear(); | |
values1.add(new StringValueImpl("val1")); | |
ArrayValueImpl av1 = new ArrayValueImpl(values1); | |
Set<IValue> values2 = new HashSet<IValue>(); | |
values2.clear(); | |
values2.add(new StringValueImpl("val2")); | |
ArrayValueImpl av2 = new ArrayValueImpl(values2); | |
Set<IValue> values3 = new HashSet<IValue>(); | |
values3.clear(); | |
values3.add(new StringValueImpl("val1")); | |
ArrayValueImpl av3 = new ArrayValueImpl(values3); | |
assertFalse(av1.equals(null)); | |
assertFalse(av1.equals(123)); | |
assertFalse(av1.equals(av2)); | |
assertTrue(av1.equals(av3)); | |
assertTrue(av1.equals(av1)); | |
} | |
public void testArrays() throws Exception | |
{ | |
setUp(); | |
Set<IValue> values = new HashSet<IValue>(); | |
values.clear(); | |
values.add(new StringValueImpl("val1")); | |
values.add(new StringValueImpl("val2")); | |
ArrayValueImpl av = new ArrayValueImpl(values); | |
Set<IParamValuePair> pv = new HashSet<IParamValuePair>(); | |
pv.add(AnnotationFactory.createParamValuePairValue("param", av)); | |
IAnnotation<IType> ann = AnnotationFactory.createAnnotation("org.eclipse.test.MyAnnotation", pv, endpoint); | |
AnnotationWriter.getInstance().setAppliedElement(ann, endpoint); | |
Collection<IAnnotation<IType>> annotattions = AnnotationFactory.createAnnotationInspector(endpoint).inspectType(); | |
assertNotNull(annotattions); | |
assertTrue(annotattions.size() == 1); | |
IAnnotation<IType> readAnnotation = annotattions.iterator().next(); | |
readAnnotation.equals(ann); | |
AnnotationWriter.getInstance().remove(ann); | |
annotattions = AnnotationFactory.createAnnotationInspector(endpoint).inspectType(); | |
assertNotNull(annotattions); | |
assertTrue(annotattions.size() == 0); | |
} | |
} |