package geniusweb.panels; import static org.mockito.Mockito.mock; import java.awt.BorderLayout; import java.util.Arrays; import java.util.Collections; import java.util.Map; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JSeparator; import org.junit.Test; import geniusweb.domaineditor.model.DiscreteValueSetModel; import geniusweb.domaineditor.model.DomainModel; import geniusweb.domaineditor.model.ValueSetModel; import tudelft.utilities.logging.Reporter; import tudelft.utilities.mvc.model.DefaultListModel; import tudelft.utilities.mvc.model.DefaultMapModel; import tudelft.utilities.mvc.model.DefaultSelectionModel; import tudelft.utilities.mvc.model.MapModel; import tudelft.utilities.mvc.model.SelectionModel; import tudelft.utilities.mvc.model.StringModel; import tudelft.utilities.mvc.panels.ComboBox; public class ComboBoxTest { private Reporter log = mock(Reporter.class); @Test public void GuiTest() throws InterruptedException { StringModel a = new StringModel("apples", log); StringModel b = new StringModel("bears", log); StringModel c = new StringModel("carrots", log); JFrame f = new JFrame(); JPanel panel = new JPanel(new BorderLayout()); f.getContentPane().add(panel); DefaultListModel model = new DefaultListModel( Arrays.asList(a, b, c), log) { }; DefaultSelectionModel selectionmodel1 = new DefaultSelectionModel( model); panel.add(new ComboBox(selectionmodel1), BorderLayout.NORTH); panel.add(new JSeparator(), BorderLayout.CENTER); panel.add(new ComboBox(selectionmodel1), BorderLayout.SOUTH); f.pack(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); Thread.sleep(10000); f.setVisible(false); } @Test public void testEqualsDeep() { StringModel redvalue = new StringModel("red", log); StringModel greenvalue = new StringModel("green", log); DiscreteValueSetModel issue1values = new DiscreteValueSetModel( Arrays.asList(redvalue, greenvalue), log); StringModel issue1 = new StringModel("issue", log); SelectionModel issue1valuessel = new DefaultSelectionModel( issue1values); Map a = Collections.singletonMap(issue1, issue1valuessel); DefaultMapModel issuevalues = new DefaultMapModel( a, log) { @Override public String getColumnName(int n) { return n == 0 ? "issue" : "value"; } @Override public SelectionModel create(StringModel key) { throw new UnsupportedOperationException(); } @Override public int getMinimumSize() { return 1; } }; MapModel issuevaluesmodel = new DefaultMapModel( Collections.singletonMap(issue1, issue1values), log) { @Override public String getColumnName(int n) { return n == 0 ? "issue" : "value"; } @Override public int getMinimumSize() { return 1; } @Override public ValueSetModel create(StringModel key) { throw new UnsupportedOperationException(); } }; DomainModel domain = new DomainModel(new StringModel("testdomain", log), issuevaluesmodel, log); // TODO test equals functions in ComboBoxModel } }