Package org.projectforge.export

Source Code of org.projectforge.export.ExportWorkbookTest

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2014 Kai Reinhard (k.reinhard@micromata.de)
//
// ProjectForge is dual-licensed.
//
// This community edition is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as published
// by the Free Software Foundation; version 3 of the License.
//
// This community edition is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
// Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, see http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.export;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Locale;

import org.junit.BeforeClass;
import org.junit.Test;
import org.projectforge.calendar.DayHolder;
import org.projectforge.common.DateHelper;
import org.projectforge.common.DateHolder;
import org.projectforge.common.DatePrecision;
import org.projectforge.core.ConfigXmlTest;
import org.projectforge.excel.ContentProvider;
import org.projectforge.excel.ExportConfig;
import org.projectforge.excel.ExportSheet;
import org.projectforge.excel.ExportWorkbook;
import org.projectforge.test.TestConfiguration;
import org.projectforge.user.PFUserContext;
import org.projectforge.user.PFUserDO;

public class ExportWorkbookTest
{
  private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(ExportWorkbookTest.class);

  @BeforeClass
  public static void setUp()
  {
    // Needed if this tests runs before the ConfigurationTest.
    ConfigXmlTest.createTestConfiguration();
    TestConfiguration.initAsTestConfiguration();
  }

  @Test
  public void exportGermanExcel() throws IOException
  {
    writeExcel("TestExcel_de.xls", Locale.GERMAN, "DD.MM.YYYY");
  }

  @Test
  public void exportExcel() throws IOException
  {
    writeExcel("TestExcel_en.xls", Locale.ENGLISH, "DD/MM/YYYY");
  }

  private void writeExcel(final String filename, final Locale locale, final String excelDateFormat) throws IOException
  {
    final PFUserDO user = new PFUserDO();
    user.setLocale(locale);
    user.setExcelDateFormat(excelDateFormat);
    try {
      PFUserContext.setUser(user);

      ExportConfig.setInstance(new ExportConfig() {
        @Override
        protected ContentProvider createNewContentProvider(final ExportWorkbook workbook)
        {
          return new MyXlsContentProvider(workbook);
        }
      }.setDefaultExportContext(new MyXlsExportContext()));
      final ExportWorkbook workbook = new ExportWorkbook();
      final ExportSheet sheet = workbook.addSheet("Test");
      sheet.getContentProvider().setColWidths(20, 20, 20);
      sheet.addRow().setValues("Type", "Precision", "result");
      sheet.addRow().setValues("Java output", ".", "Tue Sep 28 00:27:10 UTC 2010");
      sheet.addRow().setValues("DateHolder", "DAY", getDateHolder().setPrecision(DatePrecision.DAY));
      sheet.addRow().setValues("DateHolder", "HOUR_OF_DAY", getDateHolder().setPrecision(DatePrecision.HOUR_OF_DAY));
      sheet.addRow().setValues("DateHolder", "MINUTE_15", getDateHolder().setPrecision(DatePrecision.MINUTE_15));
      sheet.addRow().setValues("DateHolder", "MINUTE", getDateHolder().setPrecision(DatePrecision.MINUTE));
      sheet.addRow().setValues("DateHolder", "SECOND", getDateHolder().setPrecision(DatePrecision.SECOND));
      sheet.addRow().setValues("DateHolder", "MILLISECOND", getDateHolder().setPrecision(DatePrecision.MILLISECOND));
      sheet.addRow().setValues("DateHolder", "-", getDateHolder());
      sheet.addRow().setValues("DayHolder", "-", new DayHolder(getDate()));
      sheet.addRow().setValues("java.util.Date", "-", getDate());
      sheet.addRow().setValues("java.sql.Timestamp", "-", new Timestamp(getDate().getTime()));
      sheet.addRow().setValues("int", "-", 1234);
      sheet.addRow().setValues("BigDecimal", "-", new BigDecimal("123123123.123123123123"));
      final File file = TestConfiguration.getWorkFile(filename);
      log.info("Writing Excel test sheet to work directory: " + file.getAbsolutePath());
      workbook.write(new FileOutputStream(file));
    } finally {
      PFUserContext.setUser(null);
    }
  }

  private DateHolder getDateHolder()
  {
    return new DateHolder(getDate(), DateHelper.UTC);
  }

  private Date getDate()
  {
    return new Date(1285633630868L);
  }
}
TOP

Related Classes of org.projectforge.export.ExportWorkbookTest

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.