package eu.europeana.cloud.service.mcs.rest.storage.selector;
import com.google.common.io.Resources;
import junitparams.JUnitParamsRunner;
import junitparams.Parameters;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;
import static eu.europeana.cloud.service.mcs.rest.storage.selector.ContentStreamDetector.detectMediaType;
import static eu.europeana.cloud.service.mcs.rest.Helper.readFully;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
/**
* @author krystian.
*/
@RunWith(JUnitParamsRunner.class)
public class ContentStreamDetectorTest {
@Test
@Parameters({
"example_metadata.xml, application/xml",
"example_jpg2000.jp2, image/jp2"
})
public void shouldProperlyGuessMimeType_Xml(String fileName, String expectedMimeType) throws
IOException {
//given
URL resource = Resources.getResource(fileName);
byte[] expected = Resources.toByteArray(resource);
BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(
resource.getFile()));
//when
String mimeType = detectMediaType(inputStream).toString();
//then
assertThat(mimeType,is(expectedMimeType));
byte[] actual = readFully(inputStream, expected.length);
assertThat(actual,is(expected));
}
}