/**
* 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.swt.test.util;
import static com.codeaffine.eclipse.swt.test.util.SWTEventHelper.trigger;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Touch;
import org.eclipse.swt.widgets.Widget;
import org.junit.Rule;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
public class SWTEventHelperTest {
@Rule
public final DisplayHelper displayHelper = new DisplayHelper();
@Test
public void eventCreation() {
Event actual = SWTEventHelper.trigger( SWT.Selection ).event;
assertThat( actual.type ).isEqualTo( SWT.Selection );
}
@Test
public void atX() {
int expectedX = 8;
Event actual = trigger( SWT.Selection ).atX( expectedX ).event;
assertThat( actual.x ).isEqualTo( expectedX );
}
@Test
public void atY() {
int expectedY = 8;
Event actual = trigger( SWT.Selection ).atY( expectedY ).event;
assertThat( actual.y ).isEqualTo( expectedY );
}
@Test
public void at() {
int expectedX = 4;
int expectedY = 8;
Event actual = trigger( SWT.Selection ).at( expectedX, expectedY ).event;
assertThat( actual.x ).isEqualTo( expectedX );
assertThat( actual.y ).isEqualTo( expectedY );
}
@Test
public void withCount() {
int expectedCount = 8;
Event actual = trigger( SWT.Selection ).withCount( expectedCount ).event;
assertThat( actual.count ).isEqualTo( expectedCount );
}
@Test
public void withStateMask() {
int expectedStateMask = 8;
Event actual = trigger( SWT.Selection ).withStateMask( expectedStateMask ).event;
assertThat( actual.stateMask ).isEqualTo( expectedStateMask );
}
@Test
public void withButton() {
int expectedButton = 1;
Event actual = trigger( SWT.Selection ).withButton( expectedButton ).event;
assertThat( actual.button ).isEqualTo( expectedButton );
}
@Test
public void withCharacter() {
char expectedCharacter = 'c';
Event actual = trigger( SWT.Selection ).withCharacter( expectedCharacter ).event;
assertThat( actual.character ).isEqualTo( expectedCharacter );
}
@Test
public void withData() {
Object expectedData = new Object();
Event actual = trigger( SWT.Selection ).withData( expectedData ).event;
assertThat( actual.data ).isEqualTo( expectedData );
}
@Test
public void withDetail() {
int expectedDetail = 4;
Event actual = trigger( SWT.Selection ).withDetail( expectedDetail ).event;
assertThat( actual.detail ).isEqualTo( expectedDetail );
}
@Test
public void withEnd() {
int expectedEnd = 4;
Event actual = trigger( SWT.Selection ).withEnd( expectedEnd ).event;
assertThat( actual.end ).isEqualTo( expectedEnd );
}
@Test
public void withStart() {
int expectedStart = 4;
Event actual = trigger( SWT.Selection ).withStart( expectedStart ).event;
assertThat( actual.start ).isEqualTo( expectedStart );
}
@Test
public void withRange() {
int expectedStart = 4;
int expectedEnd = 6;
Event actual = trigger( SWT.Selection ).withRange( expectedStart, expectedEnd ).event;
assertThat( actual.start ).isEqualTo( expectedStart );
assertThat( actual.end ).isEqualTo( expectedEnd );
}
@Test
public void withGC() {
GC expectedGc = new GC( displayHelper.createShell() );
Event actual = trigger( SWT.Selection ).withGC( expectedGc ).event;
assertThat( actual.gc ).isEqualTo( expectedGc );
}
@Test
public void withWidth() {
int expectedWidth = 100;
Event actual = trigger( SWT.Selection ).withWidth( expectedWidth ).event;
assertThat( actual.width ).isEqualTo( expectedWidth );
}
@Test
public void withHeight() {
int expectedHeight = 100;
Event actual = trigger( SWT.Selection ).withHeight( expectedHeight ).event;
assertThat( actual.height ).isEqualTo( expectedHeight );
}
@Test
public void withSize() {
int expectedWidth = 200;
int expectedHeight = 100;
Event actual = trigger( SWT.Selection ).withSize( expectedWidth, expectedHeight ).event;
assertThat( actual.width).isEqualTo( expectedWidth );
assertThat( actual.height ).isEqualTo( expectedHeight );
}
@Test
public void withIndex() {
int expectedIndex = 100;
Event actual = trigger( SWT.Selection ).withIndex( expectedIndex ).event;
assertThat( actual.index ).isEqualTo( expectedIndex );
}
@Test
public void withItem() {
Item expectedItem = mock( Item.class );
Event actual = trigger( SWT.Selection ).withItem( expectedItem ).event;
assertThat( actual.item ).isEqualTo( expectedItem );
}
@Test
public void withKeyCode() {
int expectedKeyCode = 2;
Event actual = trigger( SWT.Selection ).withKeyCode( expectedKeyCode ).event;
assertThat( actual.keyCode ).isEqualTo( expectedKeyCode );
}
@Test
public void withKeyLocation() {
int expectedKeyLocation = 2;
Event actual = trigger( SWT.Selection ).withKeyLocation( expectedKeyLocation ).event;
assertThat( actual.keyLocation ).isEqualTo( expectedKeyLocation );
}
@Test
public void withMagnification() {
double expectedMagnification = 2;
Event actual = trigger( SWT.Selection ).withMagnification( expectedMagnification ).event;
assertThat( actual.magnification ).isEqualTo( expectedMagnification );
}
@Test
public void withRotation() {
double expectedRotation = 2;
Event actual = trigger( SWT.Selection ).withRotation( expectedRotation ).event;
assertThat( actual.rotation ).isEqualTo( expectedRotation );
}
@Test
public void withText() {
String expectedText = "text";
Event actual = trigger( SWT.Selection ).withText( expectedText ).event;
assertThat( actual.text ).isEqualTo( expectedText );
}
@Test
public void withTime() {
int expectedTime = 23;
Event actual = trigger( SWT.Selection ).withTime( expectedTime ).event;
assertThat( actual.time ).isEqualTo( expectedTime );
}
@Test
public void withTouches() {
Touch[] expectedTouches = new Touch[ 0 ];
Event actual = trigger( SWT.Selection ).withTouches( expectedTouches ).event;
assertThat( actual.touches ).isEqualTo( expectedTouches );
}
@Test
public void withXDirection() {
int expectedXDirection = 3;
Event actual = trigger( SWT.Selection ).withXDirection( expectedXDirection ).event;
assertThat( actual.xDirection ).isEqualTo( expectedXDirection );
}
@Test
public void withYDirection() {
int expectedYDirection = 3;
Event actual = trigger( SWT.Selection ).withYDirection( expectedYDirection ).event;
assertThat( actual.yDirection ).isEqualTo( expectedYDirection );
}
@Test
public void eventNotification() {
Widget widget = mock( Widget.class );
SWTEventHelper.trigger( SWT.Selection ).on( widget );
ArgumentCaptor<Event> captor = ArgumentCaptor.forClass( Event.class );
verify( widget ).notifyListeners( eq( SWT.Selection ), captor.capture() );
assertThat( captor.getValue().type ).isEqualTo( SWT.Selection );
}
}