Package com.asakusafw.testdata.generator.excel

Source Code of com.asakusafw.testdata.generator.excel.MainTest

/**
* Copyright 2011-2014 Asakusa Framework Team.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.asakusafw.testdata.generator.excel;

import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.apache.poi.ss.usermodel.Workbook;
import org.junit.Test;

/**
* Test for {@link Main}.
*/
public class MainTest extends ExcelTesterRoot {

    /**
     * simple.
     * @throws Exception if occur
     */
    @Test
    public void simple() throws Exception {
        File output = folder.newFolder("output");
        File source = folder.newFolder("source");
        deploy("simple.dmdl", source);
        List<String> args = new ArrayList<String>();
        Collections.addAll(args, "-output", output.getAbsolutePath());
        Collections.addAll(args, "-source", source.getAbsolutePath());
        Collections.addAll(args, "-format", WorkbookFormat.DATA.name());
        int exit = Main.start(args.toArray(new String[args.size()]));
        assertThat(exit, is(0));

        Workbook book = open(output, "simple");
        assertThat(cell(book.getSheetAt(0), 0, 0), is("value"));
    }

    /**
     * using xlsx.
     * @throws Exception if occur
     */
    @Test
    public void xssf() throws Exception {
        File output = folder.newFolder("output");
        File source = folder.newFolder("source");
        deploy("simple.dmdl", source);
        List<String> args = new ArrayList<String>();
        Collections.addAll(args, "-output", output.getAbsolutePath());
        Collections.addAll(args, "-source", source.getAbsolutePath());
        Collections.addAll(args, "-format", WorkbookFormat.DATAX.name());
        int exit = Main.start(args.toArray(new String[args.size()]));
        assertThat(exit, is(0));

        Workbook book = open(output, "simple");
        assertThat(cell(book.getSheetAt(0), 0, 0), is("value"));
    }

    /**
     * less options.
     */
    @Test
    public void less() {
        List<String> args = new ArrayList<String>();
        Collections.addAll(args);
        int exit = Main.start(args.toArray(new String[args.size()]));
        assertThat(exit, not(0));
    }

    /**
     * invalid DMDL.
     * @throws Exception if occur
     */
    @Test
    public void invalid_dmdl() throws Exception {
        File output = folder.newFolder("output");
        File source = folder.newFolder("source");
        deploy("invalid.dmdl", source);
        List<String> args = new ArrayList<String>();
        Collections.addAll(args, "-output", output.getAbsolutePath());
        Collections.addAll(args, "-source", source.getAbsolutePath());
        Collections.addAll(args, "-format", WorkbookFormat.DATA.name());
        int exit = Main.start(args.toArray(new String[args.size()]));
        assertThat(exit, is(1));
    }

    /**
     * invalid output.
     * @throws Exception if occur
     */
    @Test
    public void invalid_output() throws Exception {
        File output = folder.newFile("output");
        File source = folder.newFolder("source");
        deploy("simple.dmdl", source);
        List<String> args = new ArrayList<String>();
        Collections.addAll(args, "-output", output.getAbsolutePath());
        Collections.addAll(args, "-source", source.getAbsolutePath());
        Collections.addAll(args, "-format", WorkbookFormat.DATA.name());
        int exit = Main.start(args.toArray(new String[args.size()]));
        assertThat(exit, is(1));
    }

    /**
     * invalid_source.
     * @throws Exception if occur
     */
    @Test
    public void invalid_source() throws Exception {
        File output = folder.newFolder("output");
        List<String> args = new ArrayList<String>();
        Collections.addAll(args, "-output", output.getAbsolutePath());
        Collections.addAll(args, "-source", "INVALID_SOURCE_PATH");
        Collections.addAll(args, "-format", WorkbookFormat.DATA.name());
        int exit = Main.start(args.toArray(new String[args.size()]));
        assertThat(exit, is(1));
    }

    /**
     * invalid format.
     * @throws Exception if occur
     */
    @Test
    public void invalid_format() throws Exception {
        File output = folder.newFolder("output");
        File source = folder.newFolder("source");
        deploy("simple.dmdl", source);
        List<String> args = new ArrayList<String>();
        Collections.addAll(args, "-output", output.getAbsolutePath());
        Collections.addAll(args, "-source", source.getAbsolutePath());
        Collections.addAll(args, "-format", "INVALID_FORMAT");
        int exit = Main.start(args.toArray(new String[args.size()]));
        assertThat(exit, is(1));
    }

    private void deploy(String name, File target) throws IOException {
        InputStream in = getClass().getResourceAsStream(name);
        assertThat(name, in, not(nullValue()));
        try {
            OutputStream out = new FileOutputStream(new File(target, name));
            try {
                byte[] buf = new byte[1024];
                while (true) {
                    int read = in.read(buf);
                    if (read < 0) {
                        break;
                    }
                    out.write(buf, 0, read);
                }
            } finally {
                out.close();
            }
        } finally {
            in.close();
        }
    }

    private Workbook open(File dir, String prefix) throws IOException {
        File file = null;
        for (File f : dir.listFiles()) {
            if (f.isFile() && f.getName().startsWith(prefix)) {
                file = f;
                break;
            }
        }
        assertThat(prefix, file, not(nullValue()));
        return openWorkbook(file);
    }
}
TOP

Related Classes of com.asakusafw.testdata.generator.excel.MainTest

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.