com.qualogy.qafe.service.DocumentTest.java Source code

Java tutorial

Introduction

Here is the source code for com.qualogy.qafe.service.DocumentTest.java

Source

/**
 * Copyright 2008-2015 Qualogy Solutions B.V.
 *
 * 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.qualogy.qafe.service;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import junit.framework.TestCase;

import org.apache.commons.io.FileUtils;

import com.qualogy.qafe.service.domain.DocumentOutput;
import com.qualogy.qafe.service.domain.DocumentParameter;

public class DocumentTest extends TestCase {

    DocumentService dus = new DocumentServiceImpl();

    public void testSimpleDocumentXLS() {
        dus.processExcelUpload(getDocumentParameter("files/sample-excel.xls"));
    }

    public void testSimpleDocumentXLSWithoutHeader() {
        DocumentParameter dp = getDocumentParameter("files/sample-excel.xls");
        dp.setFirstFieldHeader(false);
        dus.processExcelUpload(dp);
    }

    public void testSimpleDocumentXLSWithoutHeaderAndPits() {
        DocumentParameter dp = getDocumentParameter("files/sample-excel-pits.xls");
        dp.setFirstFieldHeader(true);
        DocumentOutput docOutput = dus.processExcelUpload(dp);
        String[][] refData = createReferenceData4SampleExcelPits();
        validate(docOutput, refData);
    }

    public void testSimpleDocumentCSV() {
        DocumentParameter dp = getDocumentParameter("files/sample-csv.xls");
        dp.setFirstFieldHeader(false);
        dp.setDelimiter("\t");
        dus.processExcelUpload(dp);
    }

    public void testSimpleDocumentCSV3() {
        DocumentParameter dp = getDocumentParameter("files/sample-csv.xls");
        dp.setFirstFieldHeader(true);
        dp.setDelimiter("\t");
        dus.processExcelUpload(dp);
    }

    public void testSimpleDocumentCSV2() {
        DocumentParameter dp = getDocumentParameter("files/sample-excelplain.csv");
        dp.setFirstFieldHeader(false);
        dp.setDelimiter(";");
        dus.processExcelUpload(dp);
    }

    public void testSimpleDocumentXLS2007() {
        dus.processExcelUpload(getDocumentParameter("files/sample-excel2007.xlsx"));
    }

    public void testSimpleDocumentXLS2007WithoutHeader() {
        DocumentParameter dp = getDocumentParameter("files/sample-excel2007.xlsx");
        dp.setFirstFieldHeader(false);
        dus.processExcelUpload(dp);
    }

    private void validate(DocumentOutput docOutput, String[][] refData) {
        List<Map<String, String>> data = docOutput.getData();
        for (int i = 0; i < data.size(); i++) {
            Map<String, String> row = data.get(i);
            int colIndex = 0;
            Iterator<String> itr = row.keySet().iterator();
            while (itr.hasNext()) {
                String key = itr.next();
                String value = row.get(key);
                String refValue = refData[i][colIndex];
                if (refValue == null) {
                    assertNull(value);
                } else {
                    assertTrue(refValue.equalsIgnoreCase(value));
                }
                colIndex++;
            }
        }
    }

    private String[][] createReferenceData4SampleExcelPits() {
        String[][] refData = new String[6][3];
        refData[0][0] = "beta release begin september";
        refData[0][1] = "target is nu begin december. On going";
        refData[0][2] = "01-dec-2008";

        refData[1][0] = "QAFE Release 2";
        refData[1][1] = null;
        refData[1][2] = "Mei 2009";

        refData[2][0] = "QAFE Release 3";
        refData[2][1] = null;
        refData[2][2] = "Sept-2009";

        refData[3][0] = "QAFE Release 4";
        refData[3][1] = null;
        refData[3][2] = "Dec 2009";

        refData[4][0] = "Dynamic WebService Creation for External parties";
        refData[4][1] = "Analyse moet nog beginnen";
        refData[4][2] = "Sept-2009";

        refData[5][0] = "Geavanceerde tooling";
        refData[5][1] = "Volgende generatie tooling voor QAFE";
        refData[5][2] = "Nov 2009";
        return refData;
    }

    private byte[] readFile(String fileName) {
        File f = new File(fileName);
        try {
            return FileUtils.readFileToByteArray(f);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    DocumentParameter getDocumentParameter(String file) {
        byte[] bytes = readFile(file);
        DocumentParameter dp = new DocumentParameter();
        dp.setData(bytes);
        return dp;
    }
}