/******************************************************************************* * 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; import java.util.ArrayList; import java.util.List; import org.eclipse.core.runtime.IStatus; import org.eclipse.wst.sse.sieditor.command.common.AbstractNotificationOperation; import org.eclipse.wst.sse.sieditor.command.common.DeleteSetCommand; import org.eclipse.wst.sse.sieditor.model.api.IModelObject; import org.eclipse.wst.sse.sieditor.model.api.IWsdlModelRoot; import org.eclipse.wst.sse.sieditor.model.validation.IValidationService; import org.eclipse.wst.sse.sieditor.model.validation.IValidationStatus; import org.eclipse.wst.sse.sieditor.model.wsdl.api.IDescription; import org.eclipse.wst.sse.sieditor.model.wsdl.api.IParameter; import org.eclipse.wst.sse.sieditor.model.xsd.api.ISchema; import org.eclipse.wst.sse.sieditor.model.xsd.api.IType; import org.eclipse.wst.sse.sieditor.test.model.commands.AbstractCommandTest; public class ValidationServiceUndoRedoInSITabTest extends AbstractCommandTest { private IDescription modelDescription; private IValidationService validationService; private IParameter inputParameter; @Override public void setUp() throws Exception { super.setUp(); inputParameter = null; } @Override protected AbstractNotificationOperation getOperation(final IWsdlModelRoot modelRoot) throws Exception { modelDescription = modelRoot.getDescription(); validationService = editor.getValidationService(); final ISchema modelsSchema = modelDescription.getSchema("http://www.example.org/")[0]; final IType type = modelsSchema.getType(true, "NewOperation"); final ArrayList<IModelObject> parents = new ArrayList<IModelObject>(2); parents.add(modelsSchema); final ArrayList<IModelObject> toDelete = new ArrayList<IModelObject>(2); toDelete.add(type); inputParameter = modelDescription.getInterface("tst").get(0).getOperation("NewOperation").get(0).getInputParameter( "Parameter").get(0); final List<IValidationStatus> status = validationService.getValidationStatusProvider().getStatus(inputParameter); assertZeroExpectedErrors(status); return new DeleteSetCommand(modelRoot, parents, toDelete); } @Override protected void assertPostRedoState(final IStatus redoStatus, final IWsdlModelRoot modelRoot) { assertTrue(redoStatus.isOK()); inputParameter = modelDescription.getInterface("tst").get(0).getOperation("NewOperation").get(0).getInputParameter( "Parameter").get(0); final List<IValidationStatus> status = validationService.getValidationStatusProvider().getStatus(inputParameter); int numberOfErrors = 0; int expectedNumberOfErrors = 1; for (IValidationStatus currentStatus : status) { if (currentStatus.getSeverity() == IStatus.ERROR) ++numberOfErrors; } assertEquals(expectedNumberOfErrors, numberOfErrors); } @Override protected void assertPostUndoState(final IStatus undoStatus, final IWsdlModelRoot modelRoot) { assertTrue(undoStatus.isOK()); inputParameter = modelDescription.getInterface("tst").get(0).getOperation("NewOperation").get(0).getInputParameter( "Parameter").get(0); final List<IValidationStatus> status = validationService.getValidationStatusProvider().getStatus(inputParameter); assertZeroExpectedErrors(status); } private void assertZeroExpectedErrors(final List<IValidationStatus> status) { int numberOfErrors = 0; int expectedNumberOfErrors = 0; for (IValidationStatus currentStatus : status) { if (currentStatus.getSeverity() == IStatus.ERROR) ++numberOfErrors; } assertEquals(expectedNumberOfErrors, numberOfErrors); } @Override protected String getWsdlFilename() { return "validaitionServiceTest.wsdl"; } @Override protected String getWsdlFoldername() { return "validation/"; } }