Open Source Repository

Home /web/java2html | Repository Home



de/java2html/properties/test/ConversionOptionsPropertiesPersistenceTest.java
package de.java2html.properties.test;

import de.java2html.javasource.JavaSourceType;
import de.java2html.options.HorizontalAlignment;
import de.java2html.options.JavaSourceConversionOptions;
import de.java2html.options.JavaSourceStyleEntry;
import de.java2html.options.JavaSourceStyleTable;
import de.java2html.properties.ConversionOptionsPropertiesReader;
import de.java2html.properties.ConversionOptionsPropertiesWriter;
import de.java2html.properties.IllegalPropertyValueException;
import de.java2html.util.RGB;
import junit.framework.TestCase;

/**
 @author Markus
 */
public class ConversionOptionsPropertiesPersistenceTest extends TestCase {
  private JavaSourceConversionOptions options;
  
  protected void setUp() throws Exception {
    options = JavaSourceConversionOptions.getDefault();
  }
  
  public void testPersistDefaultOptions() throws IllegalPropertyValueException {
    assertEquals(options, writeAndRead(options));
  }
  
  public void testPersistDefaultStyleTableName() throws IllegalPropertyValueException {
    JavaSourceStyleTable styleTable = JavaSourceStyleTable.getDefaultKawaStyleTable();
    options.setStyleTable(styleTable);
    assertEquals(styleTable.getName(), writeAndRead(options).getStyleTable().getName());
  }

  public void testPersistTabSize() throws IllegalPropertyValueException {
    options.setTabSize(11);
    assertEquals(11, writeAndRead(options).getTabSize());
  }

  public void testPersistShowLineNumbers() throws IllegalPropertyValueException {
    options.setShowLineNumbers(!options.isShowLineNumbers());
    assertEquals(options.isShowLineNumbers(), writeAndRead(options).isShowLineNumbers());
  }
  
  public void testPersistShowJava2HtmlLink() throws IllegalPropertyValueException {
    options.setShowJava2HtmlLink(!options.isShowJava2HtmlLink());
    assertEquals(options.isShowJava2HtmlLink(), writeAndRead(options).isShowJava2HtmlLink());
  }
  
  public void testPersistShowFileName() throws IllegalPropertyValueException {
    options.setShowFileName(!options.isShowFileName());
    assertEquals(options.isShowFileName(), writeAndRead(options).isShowFileName());
  }
  
  public void testPersistShowTableBorder() throws IllegalPropertyValueException {
    options.setShowTableBorder(!options.isShowTableBorder());
    assertEquals(options.isShowTableBorder(), writeAndRead(options).isShowTableBorder());
  }
  
  public void testPersistHorizontalAlignment() throws IllegalPropertyValueException {
    options.setHorizontalAlignment(HorizontalAlignment.RIGHT);
    assertEquals(options.getHorizontalAlignment(), writeAndRead(options).getHorizontalAlignment());
  }
  
  public void testPersistStyleEntry1() throws IllegalPropertyValueException {
    JavaSourceStyleEntry entry = new JavaSourceStyleEntry(RGB.MAGENTA, true, false);
    options.getStyleTable().put(JavaSourceType.COMMENT_LINE, entry);
    assertEquals(entry, writeAndRead(options).getStyleTable().get(JavaSourceType.COMMENT_LINE));
  }

  public void testPersistStyleEntry2() throws IllegalPropertyValueException {
    JavaSourceStyleEntry entry = new JavaSourceStyleEntry(RGB.GREEN, false, true);
    options.getStyleTable().put(JavaSourceType.COMMENT_LINE, entry);
    assertEquals(entry, writeAndRead(options).getStyleTable().get(JavaSourceType.COMMENT_LINE));
  }
  
  private JavaSourceConversionOptions writeAndRead(JavaSourceConversionOptions optionsthrows IllegalPropertyValueException {
    return new ConversionOptionsPropertiesReader().read(new ConversionOptionsPropertiesWriter().write(options));
  }
}