/*******************************************************************************
* Copyright (c) 2016 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.arquillian.ui.bot.test.preferences;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.jboss.reddeer.junit.runner.RedDeerSuite;
import org.jboss.reddeer.swt.exception.SWTLayerException;
import org.jboss.reddeer.workbench.ui.dialogs.WorkbenchPreferenceDialog;
import org.jboss.tools.arquillian.ui.bot.reddeer.preferences.ArquillianValidatorPreferencePage;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* Test for class that represents Arquillian preference page
*
* @author Vlado Pakan, Len DiMaggio
*
*/
@RunWith(RedDeerSuite.class)
public class ArquillianValidatorPreferencePageTest {
private WorkbenchPreferenceDialog preferencesDialog = new WorkbenchPreferenceDialog();
private ArquillianValidatorPreferencePage arquillianValidatorPreferencePage = new ArquillianValidatorPreferencePage();
private final String ERROR = "Error";
private final String WARNING = "Warning";
private final String IGNORE = "Ignore";
private final String SEVERITY_FILTER_STRING = "test filter string";
@Test
public void checkAllPreferences() {
preferencesDialog.open();
preferencesDialog.select(arquillianValidatorPreferencePage);
arquillianValidatorPreferencePage.setEnableValidation(true);
arquillianValidatorPreferencePage.setTestArquillianContainer(true);
/* Note: Default setting is WARNING, change it here for the test */
arquillianValidatorPreferencePage.setDeploymentMethod(ERROR);
arquillianValidatorPreferencePage.setMissingTestMethod(ERROR);
arquillianValidatorPreferencePage.setTypeNotIncluded(ERROR);
arquillianValidatorPreferencePage.setImportNotIncluded(ERROR);
arquillianValidatorPreferencePage.setDeployArchiveNotIncluded(ERROR);
arquillianValidatorPreferencePage.setInvalidArchiveName(ERROR);
arquillianValidatorPreferencePage.setDeployMethodPublicStatic(ERROR);
arquillianValidatorPreferencePage.setInvalidArchiveFileLocation(ERROR);
assertTrue(arquillianValidatorPreferencePage.isTestEnableValidationChecked());
assertTrue(arquillianValidatorPreferencePage.isTestArquillianContainerChecked());
assertTrue(arquillianValidatorPreferencePage.getDeploymentMethod().equals(ERROR));
assertTrue(arquillianValidatorPreferencePage.getMissingTestMethod().equals(ERROR));
assertTrue(arquillianValidatorPreferencePage.getTypeNotIncluded().equals(ERROR));
assertTrue(arquillianValidatorPreferencePage.getImportNotIncluded().equals(ERROR));
assertTrue(arquillianValidatorPreferencePage.getDeployArchiveNotIncluded().equals(ERROR));
assertTrue(arquillianValidatorPreferencePage.getInvalidArchiveName().equals(ERROR));
assertTrue(arquillianValidatorPreferencePage.getDeployMethodPublicStatic().equals(ERROR));
assertTrue(arquillianValidatorPreferencePage.getInvalidArchiveFileLocation().equals(ERROR));
arquillianValidatorPreferencePage.setSelectedSeverity(SEVERITY_FILTER_STRING);
assertTrue(arquillianValidatorPreferencePage.getSelectedSeverity().equals(SEVERITY_FILTER_STRING));
preferencesDialog.cancel();
}
@Test
public void uncheckAllPreferences() {
preferencesDialog.open();
preferencesDialog.select(arquillianValidatorPreferencePage);
arquillianValidatorPreferencePage.setEnableValidation(false);
arquillianValidatorPreferencePage.setTestArquillianContainer(false);
assertFalse(arquillianValidatorPreferencePage.isTestEnableValidationChecked());
assertFalse(arquillianValidatorPreferencePage.isTestArquillianContainerChecked());
preferencesDialog.cancel();
}
@After
public void tearDown(){
// try to close preference dialog in case it stayed open
try{
preferencesDialog.cancel();
} catch (SWTLayerException swtle){
// do nothing
}
}
}