⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paneltest.java

📁 基于Junit的 功能和单元测试的的测试工具。只支持Swing.
💻 JAVA
字号:
package org.uispec4j;

import org.uispec4j.utils.UIComponentFactory;
import org.uispec4j.xml.XmlAssert;
import org.uispec4j.finder.ComponentMatcher;

import javax.swing.*;
import java.awt.Component;

public class PanelTest extends UIComponentTestCase {

  public void testGetComponentTypeName() throws Exception {
    assertEquals("panel", UIComponentFactory.createUIComponent(new JPanel()).getDescriptionTypeName());
  }

  public void testGetDescription() throws Exception {
    JTabbedPane tabbedPane = new JTabbedPane();
    tabbedPane.setName("myTabbedPane");

    JPanel jPanel = new JPanel();
    jPanel.setName("myPanel");
    jPanel.add(tabbedPane);

    JTextField textField = new JTextField();
    textField.setName("myText");
    tabbedPane.addTab("1", textField);
    tabbedPane.addTab("2", new JButton("myButton"));

    Panel panel = new Panel(jPanel);
    XmlAssert.assertEquivalent("<panel name='myPanel'>" +
                               "  <tabGroup name='myTabbedPane'>" +
                               "     <textBox name='myText'/>" +
                               "  </tabGroup>" +
                               "</panel>", panel.getDescription());
  }

  public void testFactory() throws Exception {
    checkFactory(new JPanel(), Panel.class);
  }

  protected UIComponent createComponent() {
    return new Panel(new JPanel());
  }

  public void testContainsLabel() throws Exception {
    JPanel jPanel = new JPanel();
    jPanel.add(new JLabel("Some text"));
    Panel panel = new Panel(jPanel);
    assertTrue(panel.containsLabel("Some text"));
    assertTrue(panel.containsLabel("text"));
    assertFalse(panel.containsLabel("unknown"));
  }

  public void testGetSpinnerThroughModel() throws Exception {
    checkGetSpinnerByModel(new SpinnerDateModel(), new Getter() {
      public UIComponent get(Panel panel) {
        return panel.getDateSpinner();
      }
    });
    checkGetSpinnerByModel(new SpinnerListModel(), new Getter() {
      public UIComponent get(Panel panel) {
        return panel.getListSpinner();
      }
    });
    checkGetSpinnerByModel(new SpinnerNumberModel(), new Getter() {
      public UIComponent get(Panel panel) {
        return panel.getNumberSpinner();
      }
    });
  }

  public void testGetSpinnerThroughModelAndComponentName() throws Exception {
    checkGetSpinnerByModel(new SpinnerDateModel(), new Getter() {
      public UIComponent get(Panel panel) {
        return panel.getDateSpinner("spinner1");
      }
    });
    checkGetSpinnerByModel(new SpinnerListModel(), new Getter() {
      public UIComponent get(Panel panel) {
        return panel.getListSpinner("spinner1");
      }
    });
    checkGetSpinnerByModel(new SpinnerNumberModel(), new Getter() {
      public UIComponent get(Panel panel) {
        return panel.getNumberSpinner("spinner1");
      }
    });
  }

  public void testGetSpinnerThroughModelAndMatcher() throws Exception {
    final ComponentMatcher myMatcher = new ComponentMatcher() {
      public boolean matches(Component component) {
        return true;
      }
    };
    checkGetSpinnerByModel(new SpinnerDateModel(), new Getter() {
      public UIComponent get(Panel panel) {
        return panel.getDateSpinner(myMatcher);
      }
    });
    checkGetSpinnerByModel(new SpinnerListModel(), new Getter() {
      public UIComponent get(Panel panel) {
        return panel.getListSpinner(myMatcher);
      }
    });
    checkGetSpinnerByModel(new SpinnerNumberModel(), new Getter() {
      public UIComponent get(Panel panel) {
        return panel.getNumberSpinner(myMatcher);
      }
    });
  }

  private void checkGetSpinnerByModel(SpinnerModel model, Getter getter) {
    JPanel jPanel = new JPanel();
    jPanel.add(new JSpinner(new MySpinnerModel()));

    Panel panel = new Panel(jPanel);
    try {
      getter.get(panel);
      fail();
    }
    catch (ItemNotFoundException e) {
      assertEquals("No component found", e.getMessage());
    }

    JSpinner jSpinner = new JSpinner(model);
    jSpinner.setName("spinner1");
    jPanel.add(jSpinner);
    assertSame(jSpinner, getter.get(panel).getAwtComponent());
  }

  private interface Getter {
    UIComponent get(Panel panel);
  }

  private static class MySpinnerModel extends AbstractSpinnerModel {
    public Object getNextValue() {
      return null;
    }

    public Object getPreviousValue() {
      return null;
    }

    public Object getValue() {
      return null;
    }

    public void setValue(Object value) {
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -