|
1 | 1 | package com.baeldung.extension; |
2 | 2 |
|
| 3 | +import static org.junit.Assert.assertArrayEquals; |
3 | 4 | import static org.junit.Assert.assertEquals; |
| 5 | + |
| 6 | +import java.util.Arrays; |
4 | 7 | import java.util.HashMap; |
| 8 | +import java.util.HashSet; |
| 9 | +import java.util.List; |
5 | 10 | import java.util.Map; |
| 11 | +import java.util.Set; |
6 | 12 |
|
7 | 13 | import org.apache.tika.mime.MimeType; |
8 | 14 | import org.apache.tika.mime.MimeTypeException; |
|
12 | 18 | import com.j256.simplemagic.ContentInfo; |
13 | 19 |
|
14 | 20 | public class ExtensionFromMimeTypeUnitTest { |
15 | | - public static final String PNG_EXT = "image/png"; |
| 21 | + public static final String JPEG_EXT = "image/jpeg"; |
16 | 22 | @Test |
17 | 23 | public void whenUsingTika_thenGetFileExtension() throws MimeTypeException { |
| 24 | + List<String> SUPPORTED_EXTENSIONS = Arrays.asList(".jpg", ".jpeg", ".jpe", ".jif", ".jfif", ".jfi"); |
18 | 25 | MimeTypes allTypes = MimeTypes.getDefaultMimeTypes(); |
19 | | - MimeType type = allTypes.forName(PNG_EXT); |
| 26 | + MimeType type = allTypes.forName(JPEG_EXT); |
20 | 27 | String extension = type.getExtension(); |
21 | | - assertEquals(".png", extension); |
| 28 | + assertEquals(".jpg", extension); |
| 29 | + List<String> supportedExtensions = type.getExtensions(); |
| 30 | + assertEquals(SUPPORTED_EXTENSIONS, supportedExtensions); |
22 | 31 | } |
23 | 32 |
|
24 | 33 | @Test |
25 | 34 | public void whenUsingJodd_thenGetFileExtension() { |
26 | | - String fileExtension = jodd.net.MimeTypes.findExtensionsByMimeTypes(PNG_EXT,false)[0]; |
27 | | - assertEquals("png", fileExtension); |
| 35 | + String[] supportedExtensions = {"jpeg","jpg","jpe"}; |
| 36 | + String[] extensionsByMimeTypes = jodd.net.MimeTypes.findExtensionsByMimeTypes(JPEG_EXT, false); |
| 37 | + assertArrayEquals(supportedExtensions, extensionsByMimeTypes); |
28 | 38 | } |
29 | 39 |
|
30 | 40 | @Test |
31 | 41 | public void whenUsingMimetypesFileTypeMap_thenGetFileExtension() { |
32 | | - ContentInfo contentInfo = new ContentInfo("", PNG_EXT, "", true); |
| 42 | + String[] supportedExtensions = {"jpeg","jpg","jpe"}; |
| 43 | + ContentInfo contentInfo = new ContentInfo("", JPEG_EXT, "", true); |
33 | 44 | String[] fileExtensions = contentInfo.getFileExtensions(); |
34 | | - assertEquals("png", fileExtensions[0]); |
| 45 | + assertArrayEquals(supportedExtensions, fileExtensions); |
35 | 46 | } |
36 | 47 |
|
37 | 48 | @Test |
38 | 49 | public void whenUsingCustomLogic_thenGetFileExtension() { |
39 | | - Map<String, String> mimeToExtensionMap = new HashMap<>(); |
40 | | - mimeToExtensionMap.put("application/pdf", "pdf"); |
41 | | - mimeToExtensionMap.put("image/jpeg", "jpg"); |
42 | | - mimeToExtensionMap.put("image/png", "png"); |
43 | | - String fileExtension = mimeToExtensionMap.get(PNG_EXT); |
44 | | - if (fileExtension!= null) |
45 | | - assertEquals("png", fileExtension); |
| 50 | + Map<String, Set<String>> mimeExtensionsMap = new HashMap<>(); |
| 51 | + Set<String> supportedExtensions = new HashSet<>(Arrays.asList(".jpeg",".jpg",".jpe")); |
| 52 | + addMimeExtensions(mimeExtensionsMap, "image/jpeg", ".jpeg"); |
| 53 | + addMimeExtensions(mimeExtensionsMap, "image/jpeg", ".jpg"); |
| 54 | + addMimeExtensions(mimeExtensionsMap, "image/jpeg", ".jpe"); |
| 55 | + |
| 56 | + String mimeTypeToLookup = "image/jpeg"; |
| 57 | + Set<String> extensions = mimeExtensionsMap.get(mimeTypeToLookup); |
| 58 | + assertEquals(supportedExtensions, extensions); |
| 59 | + } |
| 60 | + |
| 61 | + private void addMimeExtensions(Map<String, Set<String>> map, String mimeType, String extension) { |
| 62 | + map.computeIfAbsent(mimeType, k -> new HashSet<>()).add(extension); |
46 | 63 | } |
47 | 64 | } |
0 commit comments