blob: 7eb0b83c8f2f45bafdb92bf1711d5c3d5f201b13 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012 Ericsson Research Canada
*
* 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
*
* Description:
*
* This class implements a Proxy class used to access/control the UI Rule element
* programatically for test purposes
*
* Contributors:
* Sebastien Dubois - Created for Mylyn Review R4E project
*
******************************************************************************/
package org.eclipse.mylyn.reviews.r4e.ui.tests.proxy;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.eclipse.jface.window.Window;
import org.eclipse.mylyn.reviews.r4e.core.model.drules.R4EDesignRuleClass;
import org.eclipse.mylyn.reviews.r4e.core.model.drules.R4EDesignRuleRank;
import org.eclipse.mylyn.reviews.r4e.ui.internal.dialogs.IRuleInputDialog;
import org.eclipse.mylyn.reviews.r4e.ui.internal.dialogs.R4EUIDialogFactory;
import org.eclipse.mylyn.reviews.r4e.ui.internal.dialogs.RuleInputDialog;
import org.eclipse.mylyn.reviews.r4e.ui.internal.model.R4EUIRule;
import org.eclipse.mylyn.reviews.r4e.ui.internal.model.R4EUIRuleViolation;
@SuppressWarnings("restriction")
public class R4EUITestRule extends R4EUITestElement {
public R4EUITestRule(R4EUITestMain aR4EUITestProxy) {
super(aR4EUITestProxy);
}
/**
* Create a new Rule
*
* @param aRuleViolation
* @param aRuleId
* @param aRuleTitle
* @param aRuleDescription
* @param aRuleClass
* @param aRuleRank
* @return R4EUIRule
*/
public R4EUIRule createRule(R4EUIRuleViolation aRuleViolation, String aRuleId, String aRuleTitle,
String aRuleDescription, R4EDesignRuleClass aRuleClass, R4EDesignRuleRank aRuleRank) {
//Inject mockup dialog for New Rule
IRuleInputDialog mockRuleDialog = mock(RuleInputDialog.class);
R4EUIDialogFactory.getInstance().setRuleInputDialog(mockRuleDialog);
//Here we need to stub the RuleInputDialog get methods to return what we want
when(mockRuleDialog.getIdValue()).thenReturn(aRuleId);
when(mockRuleDialog.getTitleValue()).thenReturn(aRuleTitle);
when(mockRuleDialog.getDescriptionValue()).thenReturn(aRuleDescription);
when(mockRuleDialog.getClassValue()).thenReturn(aRuleClass);
when(mockRuleDialog.getRankValue()).thenReturn(aRuleRank);
when(mockRuleDialog.open()).thenReturn(Window.OK);
return (R4EUIRule) fParentProxy.getCommandProxy().runNewChildElement(aRuleViolation);
}
}