/**
* Copyright (c) 2014 - 2017 Frank Appel
* 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:
* Frank Appel - initial API and implementation
*/
package com.codeaffine.eclipse.ui.swt.theme;
import static org.assertj.core.api.Assertions.assertThat;
import org.eclipse.e4.ui.css.swt.dom.ControlElement;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Scrollable;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.junit.Rule;
import org.junit.Test;
import com.codeaffine.eclipse.swt.test.util.DisplayHelper;
@SuppressWarnings("restriction")
public class ControlElementsTest {
@Rule
public final DisplayHelper displayHelper = new DisplayHelper();
@Test
public void hasControlElementOfType() {
Shell expected = displayHelper.createShell();
ControlElement controlElement = new ControlElement( expected, null );
boolean actual = ControlElements.hasControlElementOfType( controlElement, Shell.class );
assertThat( actual ).isTrue();
}
@Test
public void hasControlElementOfTypeIfExpectedTypeDoesNotMatch() {
Shell expected = displayHelper.createShell();
ControlElement controlElement = new ControlElement( expected, null );
boolean actual = ControlElements.hasControlElementOfType( controlElement, Tree.class );
assertThat( actual ).isFalse();
}
@Test
public void hasControlElementOfTypeIfElementIsNotAControlElement() {
boolean actual = ControlElements.hasControlElementOfType( new Object(), Tree.class );
assertThat( actual ).isFalse();
}
@Test
public void isControlElement() {
Shell expected = displayHelper.createShell();
ControlElement controlElement = new ControlElement( expected, null );
boolean actual = ControlElements.isControlElement( controlElement );
assertThat( actual ).isTrue();
}
@Test
public void isControlElementWithDifferentType() {
boolean actual = ControlElements.isControlElement( new Object() );
assertThat( actual ).isFalse();
}
@Test
public void extractControl() {
Shell expected = displayHelper.createShell();
ControlElement controlElement = new ControlElement( expected, null );
Control actual = ControlElements.extractControl( controlElement );
assertThat( actual ).isSameAs( expected );
}
@Test
public void extractScrollable() {
Shell expected = displayHelper.createShell();
ControlElement controlElement = new ControlElement( expected, null );
Scrollable actual = ControlElements.extractScrollable( controlElement );
assertThat( actual ).isSameAs( expected );
}
@Test( expected = ClassCastException.class )
public void extractControlWithUnsupportedElementType() {
ControlElements.extractControl( new Object() );
}
@Test( expected = ClassCastException.class )
public void extractScrollableWithUnsupportedElementType() {
ControlElements.extractScrollable( new Object() );
}
}