blob: a6f2e31032a5fe84fa78b8b94681cf8636233aad [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 Ketan Padegaonkar and others.
* 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:
* Ketan Padegaonkar - initial API and implementation
*******************************************************************************/
package org.eclipse.swtbot.swt.finder;
import static org.eclipse.swtbot.swt.finder.ReferenceBy.ID_KEY_VALUE;
import static org.eclipse.swtbot.swt.finder.ReferenceBy.ID_VALUE;
import static org.eclipse.swtbot.swt.finder.ReferenceBy.IN_GROUP;
import static org.eclipse.swtbot.swt.finder.ReferenceBy.LABEL;
import static org.eclipse.swtbot.swt.finder.ReferenceBy.MESSAGE;
import static org.eclipse.swtbot.swt.finder.ReferenceBy.MNEMONIC;
import static org.eclipse.swtbot.swt.finder.ReferenceBy.NONE;
import static org.eclipse.swtbot.swt.finder.ReferenceBy.TEXT;
import static org.eclipse.swtbot.swt.finder.ReferenceBy.TOOLTIP;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
/**
* @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com>
* @version $Id$
*/
public class ReferenceByTest {
@Test
public void methodArguments() throws Exception {
assertThat(IN_GROUP.methodArgument(), equalTo("String inGroup"));
assertThat(LABEL.methodArgument(), equalTo("String label"));
assertThat(NONE.methodArgument(), equalTo(""));
assertThat(TEXT.methodArgument(), equalTo("String text"));
assertThat(TOOLTIP.methodArgument(), equalTo("String tooltip"));
assertThat(ID_KEY_VALUE.methodArgument(), equalTo("String key, String value"));
}
@Test
public void methodNameSuffix() throws Exception {
assertThat(IN_GROUP.methodNameSuffix(), equalTo("InGroup"));
assertThat(LABEL.methodNameSuffix(), equalTo("WithLabel"));
assertThat(NONE.methodNameSuffix(), equalTo(""));
assertThat(TEXT.methodNameSuffix(), equalTo(""));
assertThat(MNEMONIC.methodNameSuffix(), equalTo(""));
assertThat(TOOLTIP.methodNameSuffix(), equalTo("WithTooltip"));
assertThat(ID_KEY_VALUE.methodNameSuffix(), equalTo("WithId"));
}
@Test
public void matcherMethod() throws Exception {
assertThat(IN_GROUP.matcherMethod(), equalTo("inGroup(inGroup)"));
assertThat(LABEL.matcherMethod(), equalTo("withLabel(label)"));
assertThat(NONE.matcherMethod(), equalTo(""));
assertThat(TEXT.matcherMethod(), equalTo("withText(text)"));
assertThat(TOOLTIP.matcherMethod(), equalTo("withTooltip(tooltip)"));
assertThat(MNEMONIC.matcherMethod(), equalTo("withMnemonic(mnemonicText)"));
assertThat(ID_KEY_VALUE.matcherMethod(), equalTo("withId(key, value)"));
}
@Test
public void compatibilityWithOtherReferences() throws Exception {
assertFalse(TEXT.isCompatibleWith(LABEL));
assertFalse(TEXT.isCompatibleWith(TOOLTIP));
assertFalse(TEXT.isCompatibleWith(MNEMONIC));
assertTrue(TEXT.isCompatibleWith(ID_KEY_VALUE));
assertTrue(TEXT.isCompatibleWith(IN_GROUP));
assertTrue(TEXT.isCompatibleWith(NONE));
assertTrue(TEXT.isCompatibleWith(TEXT));
assertFalse(LABEL.isCompatibleWith(TEXT));
assertFalse(LABEL.isCompatibleWith(TOOLTIP));
assertFalse(LABEL.isCompatibleWith(MNEMONIC));
assertTrue(LABEL.isCompatibleWith(ID_KEY_VALUE));
assertTrue(LABEL.isCompatibleWith(IN_GROUP));
assertTrue(LABEL.isCompatibleWith(NONE));
assertTrue(LABEL.isCompatibleWith(LABEL));
assertFalse(MNEMONIC.isCompatibleWith(TEXT));
assertFalse(MNEMONIC.isCompatibleWith(TOOLTIP));
assertFalse(MNEMONIC.isCompatibleWith(LABEL));
assertTrue(MNEMONIC.isCompatibleWith(ID_KEY_VALUE));
assertTrue(MNEMONIC.isCompatibleWith(IN_GROUP));
assertTrue(MNEMONIC.isCompatibleWith(NONE));
assertTrue(MNEMONIC.isCompatibleWith(MNEMONIC));
assertTrue(IN_GROUP.isCompatibleWith(null));
assertFalse(ID_KEY_VALUE.isCompatibleWith(null));
assertFalse(NONE.isCompatibleWith(null));
}
@Test
public void generatesCombinations() throws Exception {
List<List<ReferenceBy>> combinations = ReferenceBy.getCombinations(ReferenceBy.values());
assertEquals(13, combinations.size());
assertTrue(combinations.contains(Arrays.asList(TEXT)));
assertTrue(combinations.contains(Arrays.asList(LABEL)));
assertTrue(combinations.contains(Arrays.asList(TOOLTIP)));
assertTrue(combinations.contains(Arrays.asList(MESSAGE)));
assertTrue(combinations.contains(Arrays.asList(IN_GROUP)));
assertTrue(combinations.contains(Arrays.asList(MNEMONIC)));
assertTrue(combinations.contains(Arrays.asList(NONE)));
assertTrue(combinations.contains(Arrays.asList(ID_KEY_VALUE)));
assertTrue(combinations.contains(Arrays.asList(ID_VALUE)));
assertTrue(combinations.contains(Arrays.asList(TEXT, IN_GROUP)));
assertTrue(combinations.contains(Arrays.asList(MNEMONIC, IN_GROUP)));
assertTrue(combinations.contains(Arrays.asList(TOOLTIP, IN_GROUP)));
assertTrue(combinations.contains(Arrays.asList(LABEL, IN_GROUP)));
}
}