Package com.bhle.access.convert

Source Code of com.bhle.access.convert.ConvertorTest

package com.bhle.access.convert;

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

import org.im4java.core.Info;
import org.im4java.core.InfoException;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.context.ResourceLoaderAware;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.bhle.access.domain.DatastreamWrapper;
import com.bhle.access.domain.Derivative;
import com.bhle.access.domain.DigitalObjectWrapper;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class ConvertorTest implements ResourceLoaderAware {

  private ResourceLoader resourceLoader;

  public void setResourceLoader(ResourceLoader resourceLoader) {
    this.resourceLoader = resourceLoader;

  }

  private DatastreamWrapper tiffDatastreamWrapper = new DatastreamWrapper(
      "TIFF");
  private DigitalObjectWrapper pageObjectWrapper = new DigitalObjectWrapper(
      "test:PAGEOBJECTID");

  private DatastreamWrapper olefDatastreamWrapper = new DatastreamWrapper(
      "OLEF");
  private DigitalObjectWrapper bookObjectWrapper = new DigitalObjectWrapper(
      "test:BOOKOBJECTID");

  @Before
  public void init() {
    initialBookObject();
    initialPageObject();
  }

  private void initialBookObject() {
    List<String> contentModels = new ArrayList<String>();
    contentModels.add("info:fedora/bhle-cmodel:monographCModel");
    bookObjectWrapper.setConternModels(contentModels);

    olefDatastreamWrapper.setMimeType("text/xml");
    olefDatastreamWrapper.setDigitalObject(bookObjectWrapper);
    Resource olef = resourceLoader
        .getResource("classpath:com/bhle/access/sample/OLEF.xml");
    try {
      olefDatastreamWrapper.setInputStream(olef.getInputStream());
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  private void initialPageObject() {
    List<String> contentModels = new ArrayList<String>();
    contentModels.add("info:fedora/bhle-cmodel:pageCModel");
    pageObjectWrapper.setConternModels(contentModels);

    tiffDatastreamWrapper.setMimeType("image/tiff");
    tiffDatastreamWrapper.setDigitalObject(pageObjectWrapper);
    try {
      tiffDatastreamWrapper.setInputStream(resourceLoader.getResource(
          "classpath:com/bhle/access/sample/sample.TIF")
          .getInputStream());
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  @Ignore
  @Test
  public void testTiff2JpegConvertor() {
    Tiff2JpegConverter tiffConvertor = new Tiff2JpegConverter();
    List<DatastreamConverter> convertors = new ArrayList<DatastreamConverter>();
    convertors.add(tiffConvertor);

    ConverterManager.converters = convertors;

    Derivative[] derivatives = ConverterManager
        .derive(tiffDatastreamWrapper);
    Assert.assertEquals(1, derivatives.length);

    File jp2 = null;
    try {
      jp2 = File.createTempFile("TEST", null);
      jp2.deleteOnExit();
      FileOutputStream fout = new FileOutputStream(jp2);
      InputStream in = derivatives[0].getInputStream();
      byte[] buffer = new byte[1024];
      while (in.read(buffer) != -1) {
        fout.write(buffer);
      }
    } catch (IOException e) {
      e.printStackTrace();
    }

    try {
      Info info = new Info(jp2.getAbsolutePath(), true);
      Assert.assertEquals("JP2", info.getImageFormat());
    } catch (InfoException e) {
      e.printStackTrace();
    }
  }

  @Ignore
  @Test
  public void testOlefConvertors() {
    Olef2DcConverter olef2DcConvertor = new Olef2DcConverter();
    Olef2Marc21Converter olef2Marc21Convertor = new Olef2Marc21Converter();
    Olef2ModsConverter olef2ModsConvertor = new Olef2ModsConverter();
    Olef2OlefConverter olef2OlefConvertor = new Olef2OlefConverter();

    List<DatastreamConverter> convertors = new ArrayList<DatastreamConverter>();
    convertors.add(olef2DcConvertor);
    convertors.add(olef2Marc21Convertor);
    convertors.add(olef2ModsConvertor);
    convertors.add(olef2OlefConvertor);

    ConverterManager.converters = convertors;

    Derivative[] derivatives = ConverterManager
        .derive(olefDatastreamWrapper);

    Assert.assertEquals(4, derivatives.length);
  }
}
TOP

Related Classes of com.bhle.access.convert.ConvertorTest

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.