/*******************************************************************************
* Copyright (c) 2011 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.cdi.text.ext.test;
import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.swt.widgets.Display;
import org.jboss.tools.cdi.core.IBean;
import org.jboss.tools.cdi.core.IInjectionPointField;
import org.jboss.tools.cdi.core.test.tck.TCKTest;
import org.jboss.tools.cdi.text.ext.hyperlink.AssignableBeanFilters;
import org.jboss.tools.cdi.text.ext.hyperlink.AssignableBeansDialog;
/**
*
* @author Viacheslav Kabanovich
*
*/
public class AssignableBeansDialogTest extends TCKTest {
public AssignableBeansDialogTest() {}
public void testAssignableBeansDialog() {
String path = "JavaSource/org/jboss/jsr299/tck/tests/jbt/lookup/ObjectInjection.java";
IFile file = tckProject.getFile(path);
assertTrue(file.exists());
IInjectionPointField injectionPoint = getInjectionPointField(path, "object");
Display display = Display.getCurrent();
if(display == null) {
display = Display.getDefault();
}
AssignableBeansDialog dialog = new AssignableBeansDialog(display.getActiveShell());
dialog.setBlockOnOpen(false);
dialog.setInjectionPoint(injectionPoint);
dialog.open();
List<IBean> bs = dialog.getDisplayedBeans();
int allBeans = bs.size();
for (int i = 0; i < dialog.getOptions().size(); i++) {
dialog.setFilterEnabled(i, true);
}
for (int i = 0; i < dialog.getOptions().size(); i++) {
boolean b = dialog.isFilterEnabled(i);
dialog.setFilterEnabled(i, !b);
bs = dialog.getDisplayedBeans();
assertTrue(bs.size() < allBeans);
dialog.setFilterEnabled(i, b);
}
}
}