Package gov.nasa.arc.mct.fastplot.bridge

Source Code of gov.nasa.arc.mct.fastplot.bridge.TestPlotLineGlobalConfiguration

package gov.nasa.arc.mct.fastplot.bridge;

import gov.nasa.arc.mct.fastplot.bridge.PlotConstants.PlotLineConnectionType;

import java.awt.Font;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

import javax.swing.UIManager;

import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class TestPlotLineGlobalConfiguration {
  private Map<String, Object> originalMappings;
 
  @BeforeMethod
  public void setup() throws Exception {
    originalMappings = new HashMap<String, Object>();
   
    // Uninitialize global configuration
    Field f = PlotLineGlobalConfiguration.class.getDeclaredField("initialized");
    f.setAccessible(true);
    f.setBoolean(null, false);
  }
 
  @AfterMethod
  public void teardown() {
    for (String key : originalMappings.keySet()) {
      UIManager.put(key, originalMappings.get(key));
    }
  }
 
  @Test
  public void testWithoutMappings() {
    Font marker = PlotLineGlobalConfiguration.getMarkerFont();
    Assert.assertNotNull(marker);
    Assert.assertTrue(marker.getSize() >= 8);
  }
 
 
  @DataProvider(name = "knownTypes")
  public Object[][] createKnownTypes() {
    Object[][] params = new Object[PlotLineConnectionType.values().length][];
    int i = 0;
    for (PlotLineConnectionType value : PlotLineConnectionType.values()) {
      params[i++] = new Object[]{ value.name() };
    }
    return params;
  }
 
  @Test (dataProvider = "knownTypes")
  public void testKnownConnectionTypes(String connection) {
    recordMapping("PlotLine.connection", connection);
    PlotLineConnectionType type = PlotLineGlobalConfiguration.getDefaultConnectionType();
    Assert.assertNotNull(type);
    Assert.assertEquals(type.name(), connection);
  }
 
  @Test
  public void testUnkownConnectionType() {
    recordMapping("PlotLine.connection", "NOT_A_CONNECTION_TYPE");
    PlotLineConnectionType type = PlotLineGlobalConfiguration.getDefaultConnectionType();
    Assert.assertNotNull(type);
    Assert.assertNotSame(type.name(), "NOT_A_CONNECTION_TYPE")
  }
 
 
  @DataProvider(name = "fontStyles")
  public Object[][] createFontStyles() {
    return new Object[][] {
        {"PLAIN", Font.PLAIN},
        {"BOLD", Font.BOLD},
        {"ITALIC", Font.ITALIC},
        {"BOLDITALIC", Font.BOLD + Font.ITALIC
    };
  }
 
  @Test (dataProvider = "fontStyles")
  public void testFontStyles(String style, Integer expected) {
    recordMapping("PlotLine.fontStyle", style);
    Font marker = PlotLineGlobalConfiguration.getMarkerFont();
    int actual = marker.getStyle();
    Assert.assertEquals(actual, expected.intValue());
  }
 
 
  @DataProvider(name = "fontSizes")
  public Object[][] createFontSizes() {
    Object[][] params = new Object[16][];
    for (int i = 0; i < 16; i++) {
      params[i] = new Object[]{ Integer.valueOf(4 + i*4) };
    }
    return params;
  }
 
  @Test (dataProvider = "fontSizes")
  public void testFontStyles(Integer size) {
    recordMapping("PlotLine.fontSize", size.toString());
    Font marker = PlotLineGlobalConfiguration.getMarkerFont();
    int actual = marker.getSize();
    Assert.assertEquals(actual, size.intValue());
  }
 
  private void recordMapping(String key, String value) {
    if (!originalMappings.containsKey(key)) {
      originalMappings.put(key, UIManager.get(key));
    }
    UIManager.put(key, value);
  }
}
TOP

Related Classes of gov.nasa.arc.mct.fastplot.bridge.TestPlotLineGlobalConfiguration

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.