/******************************************************************************* * Copyright (c) 2012 VMware, Inc. * 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: * VMware, Inc. - initial API and implementation *******************************************************************************/ package org.springframework.ide.eclipse.quickfix.validator.tests; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.wst.sse.ui.internal.reconcile.validator.IncrementalReporter; import org.eclipse.wst.validation.internal.provisional.core.IMessage; import org.springframework.ide.eclipse.beans.core.internal.model.BeansModelUtils; import org.springframework.ide.eclipse.beans.core.model.IBeansConfig; import org.springframework.ide.eclipse.core.model.IResourceModelElement; import org.springframework.ide.eclipse.quickfix.BeansEditorValidator; import org.springframework.ide.eclipse.quickfix.tests.AbstractQuickfixTestCase; /** * @author Terry Denney * @author Leo Dos Santos * @author Christian Dupuis * @since 2.0 */ @SuppressWarnings("restriction") public abstract class AbstractBeanValidationTestCase extends AbstractQuickfixTestCase { protected static final Set<IResourceModelElement> getContextElements(IBeansConfig config) { Set<IResourceModelElement> contextElements = new LinkedHashSet<IResourceModelElement>(); contextElements.addAll(BeansModelUtils.getConfigSets(config)); if (contextElements.isEmpty()) { contextElements.add(config); } return contextElements; } protected BeansEditorValidator validator; protected IncrementalReporter reporter; protected final String QUICK_ASSIST_PROCESSOR = "org.eclipse.jface.text.quickassist.IQuickAssistProcessor"; // protected boolean checkMessageTexts(List<IMessage> messages, String... // expectedTexts) { // Set<String> result = new HashSet<String>(); // for (IMessage message : messages) { // String text = message.getText(); // if (text != null && text.length() > 0) { // result.add(text); // } // } // // Set<String> expectedResult = new HashSet<String>(); // for (String expectedText : expectedTexts) { // expectedResult.add(expectedText); // } // // return result.equals(expectedResult); // } protected void createBeansEditorValidator(String name) throws Exception { copyProjectCreateDocument(name); validator = new BeansEditorValidator(); validator.connect(document); reporter = createReporter(); } private IncrementalReporter createReporter() { return new IncrementalReporter(new NullProgressMonitor()); } protected IMessage getErrorMessage(List<IMessage> messages) { for (IMessage message : messages) { if (message.getSeverity() == IMessage.HIGH_SEVERITY) { return message; } } return null; } protected Object getProcessor(List<IMessage> messages, Class<?> clazz) { for (IMessage message : messages) { Object processor = message.getAttribute(QUICK_ASSIST_PROCESSOR); if (processor != null && processor.getClass().equals(clazz)) { return processor; } } return null; } protected List<String> getVisibleMessages(List<IMessage> messages) { List<String> result = new ArrayList<String>(); for (IMessage message : messages) { String text = message.getText(); if (text != null && text.length() > 0 && !result.contains(text)) { result.add(text); } } Collections.sort(result); return result; } protected IMessage getWarningMessage(List<IMessage> messages) { for (IMessage message : messages) { if (message.getSeverity() == IMessage.NORMAL_SEVERITY) { return message; } } return null; } @Override protected void tearDown() throws Exception { reporter.removeAllMessages(validator); super.tearDown(); } }