/******************************************************************************* | |
* Copyright (c) 2010 SAP AG. | |
* 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: | |
* Emil Simeonov - initial API and implementation. | |
* Dimitar Donchev - initial API and implementation. | |
* Dimitar Tenev - initial API and implementation. | |
* Nevena Manova - initial API and implementation. | |
* Georgi Konstantinov - initial API and implementation. | |
*******************************************************************************/ | |
package org.eclipse.wst.sse.sieditor.test.model.validation.constraints; | |
import org.easymock.EasyMock; | |
import org.eclipse.core.runtime.IStatus; | |
import org.eclipse.emf.common.util.EList; | |
import org.eclipse.emf.validation.IValidationContext; | |
import org.eclipse.wst.sse.sieditor.model.validation.constraints.PortAddress; | |
import org.eclipse.wst.sse.sieditor.test.util.EasyMockUtils; | |
import org.eclipse.wst.sse.sieditor.test.util.SimpleEList; | |
import org.eclipse.wst.wsdl.ExtensibilityElement; | |
import org.eclipse.wst.wsdl.Port; | |
import org.eclipse.wst.wsdl.binding.http.HTTPAddress; | |
import org.eclipse.wst.wsdl.binding.soap.SOAPAddress; | |
import org.junit.Assert; | |
import org.junit.Test; | |
public class TestPortAddress extends BasicConstraintTest{ | |
@Test | |
public void testIsAddress() { | |
HTTPAddress httpAddress = EasyMockUtils.createNiceMock(HTTPAddress.class); | |
SOAPAddress soapAddress = EasyMockUtils.createNiceMock(SOAPAddress.class); | |
ExtensibilityElement extensibilityElement = EasyMockUtils.createNiceMock(ExtensibilityElement.class); | |
EasyMockUtils.replay(); | |
PortAddress constraint = new PortAddress(); | |
Assert.assertEquals(true, constraint.isAddress(httpAddress)); | |
Assert.assertEquals(true, constraint.isAddress(soapAddress)); | |
Assert.assertFalse(constraint.isAddress(extensibilityElement)); | |
} | |
@Test | |
public void testSOAPAddressOK() throws Exception{ | |
SOAPAddress soapAddress = EasyMockUtils.createNiceMock(SOAPAddress.class); | |
testAddressOK(soapAddress); | |
} | |
@Test | |
public void testHTTPAddressOK() throws Exception{ | |
HTTPAddress httpAddress = EasyMockUtils.createNiceMock(HTTPAddress.class); | |
testAddressOK(httpAddress); | |
} | |
@Test | |
public void testNoExtensibilityElements() throws Exception{ | |
Port port = EasyMockUtils.createNiceMock(Port.class); | |
EList<ExtensibilityElement> extensibilityElements = new SimpleEList<ExtensibilityElement>(); | |
EasyMock.expect(port.getEExtensibilityElements()).andStubReturn(extensibilityElements); | |
IValidationContext validationContext = createValidationContext(true, port); | |
PortAddress constraint = new PortAddress(); | |
IStatus status = constraint.validate(validationContext); | |
Assert.assertEquals(true, status.getSeverity() == IStatus.ERROR); | |
} | |
@Test | |
public void testNoAddressElements() throws Exception{ | |
Port port = EasyMockUtils.createNiceMock(Port.class); | |
EList<ExtensibilityElement> extensibilityElements = new SimpleEList<ExtensibilityElement>(); | |
for (int i = 0; i < 3; i++) { | |
extensibilityElements.add(EasyMockUtils.createNiceMock(ExtensibilityElement.class)); | |
} | |
EasyMock.expect(port.getEExtensibilityElements()).andStubReturn(extensibilityElements); | |
IValidationContext validationContext = createValidationContext(true, port); | |
PortAddress constraint = new PortAddress(); | |
IStatus status = constraint.validate(validationContext); | |
Assert.assertEquals(true, status.getSeverity() == IStatus.ERROR); | |
} | |
@Test | |
public void testMultipleAddressElements() throws Exception{ | |
Port port = EasyMockUtils.createNiceMock(Port.class); | |
EList<ExtensibilityElement> extensibilityElements = new SimpleEList<ExtensibilityElement>(); | |
extensibilityElements.add(EasyMockUtils.createNiceMock(ExtensibilityElement.class)); | |
extensibilityElements.add(EasyMockUtils.createNiceMock(HTTPAddress.class)); | |
extensibilityElements.add(EasyMockUtils.createNiceMock(SOAPAddress.class)); | |
EasyMock.expect(port.getEExtensibilityElements()).andStubReturn(extensibilityElements); | |
IValidationContext validationContext = createValidationContext(true, port); | |
PortAddress constraint = new PortAddress(); | |
IStatus status = constraint.validate(validationContext); | |
Assert.assertEquals(true, status.getSeverity() == IStatus.ERROR); | |
} | |
private void testAddressOK(ExtensibilityElement address) throws Exception { | |
Port port = EasyMockUtils.createNiceMock(Port.class); | |
EList<ExtensibilityElement> extensibilityElements = new SimpleEList<ExtensibilityElement>(); | |
extensibilityElements.add(address); | |
EasyMock.expect(port.getEExtensibilityElements()).andStubReturn(extensibilityElements); | |
IValidationContext validationContext = createValidationContext(true, port); | |
PortAddress constraint = new PortAddress(); | |
IStatus status = constraint.validate(validationContext); | |
Assert.assertEquals(true, status.isOK()); | |
} | |
} |