Add getting Extension from MIME type of a file

This commit is contained in:
rajatgarg 2023-09-03 03:59:20 +05:30
parent 29c9c5dba9
commit f1c7b8b2b0
2 changed files with 58 additions and 0 deletions

View File

@ -43,6 +43,17 @@
<version>${angus-activation.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jodd</groupId>
<artifactId>jodd-util</artifactId>
<version>6.2.1</version>
</dependency>
<dependency>
<groupId>com.j256.simplemagic</groupId>
<artifactId>simplemagic</artifactId>
<version>1.17</version>
</dependency>
</dependencies>
<build>

View File

@ -0,0 +1,47 @@
package com.baeldung.extension;
import static org.junit.Assert.assertEquals;
import java.util.HashMap;
import java.util.Map;
import org.apache.tika.mime.MimeType;
import org.apache.tika.mime.MimeTypeException;
import org.apache.tika.mime.MimeTypes;
import org.junit.Test;
import com.j256.simplemagic.ContentInfo;
public class ExtensionFromMimeTypeUnitTest {
public static final String PNG_EXT = "image/png";
@Test
public void whenUsingTika_thenGetFileExtension() throws MimeTypeException {
MimeTypes allTypes = MimeTypes.getDefaultMimeTypes();
MimeType type = allTypes.forName(PNG_EXT);
String extension = type.getExtension();
assertEquals(".png", extension);
}
@Test
public void whenUsingJodd_thenGetFileExtension() {
String fileExtension = jodd.net.MimeTypes.findExtensionsByMimeTypes(PNG_EXT,false)[0];
assertEquals("png", fileExtension);
}
@Test
public void whenUsingMimetypesFileTypeMap_thenGetFileExtension() {
ContentInfo contentInfo = new ContentInfo("", PNG_EXT, "", true);
String[] fileExtensions = contentInfo.getFileExtensions();
assertEquals("png", fileExtensions[0]);
}
@Test
public void whenUsingCustomLogic_thenGetFileExtension() {
Map<String, String> mimeToExtensionMap = new HashMap<>();
mimeToExtensionMap.put("application/pdf", "pdf");
mimeToExtensionMap.put("image/jpeg", "jpg");
mimeToExtensionMap.put("image/png", "png");
String fileExtension = mimeToExtensionMap.get(PNG_EXT);
if (fileExtension!= null)
assertEquals("png", fileExtension);
}
}