|
| 1 | +package com.javadiscord.jdi.internal.api.utils; |
| 2 | + |
| 3 | +import static org.junit.jupiter.api.Assertions.*; |
| 4 | + |
| 5 | +import com.javadiscord.jdi.core.api.utils.DiscordImageUtil; |
| 6 | + |
| 7 | +import org.junit.jupiter.api.Test; |
| 8 | + |
| 9 | +import java.net.URL; |
| 10 | +import java.nio.file.Path; |
| 11 | +import java.nio.file.Paths; |
| 12 | + |
| 13 | +class DiscordImageUtilTest { |
| 14 | + private static final String IMAGE_JPG_BASE64 = |
| 15 | + "/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAP//////////////////////////////////////////////////////////////////////////////////////2wBDAf//////////////////////////////////////////////////////////////////////////////////////wAARCADqATkDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECA//EACQQAQEBAAIBBAMBAQEBAAAAAAABESExQQISUXFhgZGxocHw/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/xAAWEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAMAwEAAhEDEQA/AMriLyCKgg1gQwCgs4FTMOdutepjQak+FzMSVqgxZdRdPPIIvH5WzzGdBriphtTeAXg2ZjKA1pqKDUGZca3foBek8gFv8Ie3fKdA1qb8s7hoL6eLVt51FsAnql3Ut1M7AWbflLMDkEMX/F6/YjK/pADFQAUNA6alYagKk72m/j9p4Bq2fDDSYKLNXPNLoHE/NT6RYC31cJxZ3yWVM+aBYi/S2ZgiAsnYJx5D21vPmqrm3PTfpQQwyAC8JZvSKDni41ZrMuUVVl+Uz9w9v/1QWrZsZ5nFPHYH+JZyureQSF5M+fJ0CAfwRAVRBQA1DAWVUayoJUWoDpsxntPsueBV4+VxhdyAtv8AjOLGpIDMLbeGvbF4iozJfr/WukAVABAXAQXEAAASzVAZdO2WNordm+emFl7XcQSNZiFtv0C9w90nhJf4mA1u+GcJFwIyAqL/AOovwgGNfSRqdIrNa29M0gKCAojU9PAMjWXpckEJFNFEAAXEUBABYz6rZ0ureQc9vyt9XxDF2QAXtABcQAs0AZywkvluJbyipifas52DcyxjlZweAO0xri/hc+wZOEKIu6nSyeToVZyWXwvCg53gW81QQ7aTNAn5dGZJPs1UXURQAUEMCXQLZE93PRZ5hPTgNMrbIzKCm52LZwCs+2M8w2g3sjPuZAXb4IsMAUACzVUGM4/K+md6vEXUUyM5PDR0IxYe6ramih0VNBrS4xoqN8Q1BFQk3yqyAsioioAAKgDSJL4/jQIn5igLrPqtOuf6oOaxbMoAltUAhhIoJiiggrPu+AaOIxtAX3JbaAIaLwi4t9X4T3fg2AFtqcrUUarP20zUDAmqoE0WRBZPNVUVEAAAAVAC8kvih2DSKxOdBqs7Z0l0gI0mKAC4AuHE7ZtBriM+744QAAAAABAFsveIttBICyaikvy1+r/Cen5rWQHIBQa4rIDRqSl5qDWqziqgAAAATA7BpGdqXb2C2+J/UgAtRQBSQtkBWb6vhLbQAAAAAEBRAAAAAUbm+GZNdPxAP+ql2Tjwx7/wIgZ8iKvBk+CJoCXii9gaqZ/qqihAAAEVABGkBFUwBftNkZ3QW34QAAABFAQAVAAAAAARVkl8gs/43sk1jL45LvHArepk+E9XTG35oLqsmIKmLAEygKg0y1AFQBUXwgAAAoBC34S3UAAABAVAAAAAABAUQAVABdRQa1PcYyit2z58M8C4ouM2NXpOEGeWtNZUatiAIoAKIoCoAoG4C9MW6dgIoAIAAAAAAACKWAgL0CAAAALiANCKioNLgM1CrLihmTafkt1EF3SZ5ZVUW4mnIKvAi5fhEURVDWVQBRAAAAAAAAQFRVyAyulgAqCKlF8IqLsEgC9mGoC+IusqCrv5ZEUVOk1RuJfwSLOOkGFi4XPCoYYrNiKauosBGi9ICstM1UAAAAAAFQ0VcTBAXUGgIqGoKhKAzRRUQUAwxoSrGRpkQA/qiosOL9oJptMRRVZa0VUqSiChE6BqMgCwqKqIogAIAqKCKgKoogg0lBFuIKgAAAKNRlf2gqsftsEtZWoAAqAACKoMqAAeSoqp39kL2AqLOlE8rEBFQARYALhigrNC9gGmooLp4TweEQFFBFAECgIoAu0ifIAqAAA//9k="; |
| 16 | + |
| 17 | + private Path getPathFromString(String path) throws Exception { |
| 18 | + URL url = DiscordImageUtilTest.class.getResource(path); |
| 19 | + if (url != null) { |
| 20 | + return Paths.get(url.toURI()); |
| 21 | + } |
| 22 | + return null; |
| 23 | + } |
| 24 | + |
| 25 | + @Test |
| 26 | + void testBase64EncodePng() throws Exception { |
| 27 | + assertEquals( |
| 28 | + IMAGE_JPG_BASE64, DiscordImageUtil.base64Encode(getPathFromString("/image.jpg"))); |
| 29 | + } |
| 30 | + |
| 31 | + @Test |
| 32 | + void testNullImage() { |
| 33 | + assertThrows(NullPointerException.class, () -> DiscordImageUtil.base64Encode(null)); |
| 34 | + } |
| 35 | + |
| 36 | + @Test |
| 37 | + void testToDiscordString() throws Exception { |
| 38 | + String expected = String.format("data:image/jpg;base64,%s", IMAGE_JPG_BASE64); |
| 39 | + assertEquals(expected, DiscordImageUtil.toDiscordString(getPathFromString("/image.jpg"))); |
| 40 | + } |
| 41 | + |
| 42 | + @Test |
| 43 | + void testIsNotImage() throws Exception { |
| 44 | + Path txt = getPathFromString("/file.txt"); |
| 45 | + Path jpg = getPathFromString("/image.jpg"); |
| 46 | + Path png = getPathFromString("/image.png"); |
| 47 | + |
| 48 | + assertTrue(DiscordImageUtil.isNotImage(txt)); |
| 49 | + assertFalse(DiscordImageUtil.isNotImage(jpg)); |
| 50 | + assertFalse(DiscordImageUtil.isNotImage(png)); |
| 51 | + } |
| 52 | +} |
0 commit comments