/* * Beanfabrics Framework Copyright (C) by Michael Karneim, beanfabrics.org * Use is subject to license terms. See license.txt. */ package org.beanfabrics.swt; import static org.junit.Assert.assertEquals; import org.beanfabrics.ModelProvider; import org.beanfabrics.Path; import org.beanfabrics.model.AbstractPM; import org.beanfabrics.model.OperationPM; import org.beanfabrics.model.PMManager; import org.beanfabrics.support.Operation; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Shell; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The {@link BnPushButtonDecoratorTest} is a unit test for the * {@link BnPushButtonDecorator}. * * @author Michael Karneim */ public class BnPushButtonDecoratorTest { private Button button; private BnPushButtonDecorator decorator; private ModelProvider modelProvider; private SamplePM samplePM; private class SamplePM extends AbstractPM { OperationPM doSomething = new OperationPM(); int counter = 0; public SamplePM() { PMManager.setup(this); } @Operation public void doSomething() { counter++; } } @Before public void setUp() throws Exception { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); button = new Button(shell, SWT.PUSH); decorator = new BnPushButtonDecorator(button); samplePM = new SamplePM(); modelProvider = new ModelProvider(); modelProvider.setPresentationModel(samplePM); } @After public void tearDown() throws Exception { } @Test public void notifyListeners() { decorator.setModelProvider(modelProvider); decorator.setPath(new Path("doSomething")); button.notifyListeners(SWT.Selection, new Event()); assertEquals("samplePM.counter", 1, samplePM.counter); } }