/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.content;
import java.io.FileInputStream;
import java.io.File;
import org.dspace.AbstractUnitTest;
import org.apache.log4j.Logger;
import org.junit.*;
import static org.junit.Assert.* ;
import static org.hamcrest.CoreMatchers.*;
/**
* Unit Tests for class FormatIdentifier
* @author pvillega
*/
public class FormatIdentifierTest extends AbstractUnitTest
{
/** log4j category */
private static final Logger log = Logger.getLogger(FormatIdentifierTest.class);
/**
* This method will be run before every test as per @Before. It will
* initialize resources required for the tests.
*
* Other methods can be annotated with @Before here or in subclasses
* but no execution order is guaranteed
*/
@Before
@Override
public void init()
{
super.init();
}
/**
* This method will be run after every test as per @After. It will
* clean resources initialized by the @Before methods.
*
* Other methods can be annotated with @After here or in subclasses
* but no execution order is guaranteed
*/
@After
@Override
public void destroy()
{
super.destroy();
}
/**
* Test of guessFormat method, of class FormatIdentifier.
*/
@Test
public void testGuessFormat() throws Exception
{
File f = new File(testProps.get("test.bitstream").toString());
Bitstream bs = null;
BitstreamFormat result = null;
BitstreamFormat pdf = BitstreamFormat.findByShortDescription(context, "Adobe PDF");
//test null filename
//TODO: the check if filename is null is wrong, as it checks after using a toLowerCase
//which can trigger the NPE
bs = Bitstream.create(context, new FileInputStream(f));
context.commit();
bs.setName(null);
result = FormatIdentifier.guessFormat(context, bs);
assertThat("testGuessFormat 0",result, nullValue());
//test unknown format
bs = Bitstream.create(context, new FileInputStream(f));
bs.setName("file_without_extension.");
context.commit();
result = FormatIdentifier.guessFormat(context, bs);
assertThat("testGuessFormat 1",result, nullValue());
//test known format
bs = Bitstream.create(context, new FileInputStream(f));
bs.setName(testProps.get("test.bitstream").toString());
context.commit();
result = FormatIdentifier.guessFormat(context, bs);
assertThat("testGuessFormat 2",result.getID(), equalTo(pdf.getID()));
assertThat("testGuessFormat 3",result.getMIMEType(), equalTo(pdf.getMIMEType()));
assertThat("testGuessFormat 4",result.getExtensions(), equalTo(pdf.getExtensions()));
}
}