Article/bael 5516 how to convert input stream to base64 string (#12219)
* java-shallow-deep tutorial * BAEL-5516 How to Convert InputStream to base64 String - Junit test demonstrating the code * BAEL-5516 - How-to-Convert-InputStream-to-base64-String Cleaned up files * BAEL-5516 - How-to-Convert-InputStream-to-base64-String - updated per Jira comments * BAEL-5516 - How-to-Convert-InputStream-to-base64-String - rename and formatting to match Baeldung standards
This commit is contained in:
parent
31732540b4
commit
103a374ba1
|
@ -0,0 +1,49 @@
|
|||
package com.baeldung.inputstreamtobase64;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.Base64;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.junit.Test;
|
||||
/**
|
||||
* Test the Stream to base64 conversion
|
||||
*/
|
||||
public class InputStreamToBase64UnitTest {
|
||||
|
||||
/**
|
||||
* Test stream to base64 conversion
|
||||
* @throws Exception
|
||||
*/
|
||||
@Test
|
||||
public void givenABinaryInputStream_whenItIsConvertedToBase64_thenItCanBeDecoded() throws Exception {
|
||||
// given a binary input stream
|
||||
InputStream sourceStream = getClass().getClassLoader().getResourceAsStream("logo.png");
|
||||
byte[] sourceBytes = IOUtils.toByteArray(sourceStream);
|
||||
|
||||
// when it is converted to base64
|
||||
String encodedString = Base64.getEncoder().encodeToString(sourceBytes);
|
||||
assertNotNull(encodedString);
|
||||
|
||||
// then it can be decoded
|
||||
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
|
||||
assertNotNull(decodedBytes);
|
||||
assertTrue(decodedBytes.length == sourceBytes.length);
|
||||
assertTrue(calculateChecksum(decodedBytes) == calculateChecksum(sourceBytes));
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate a checksum
|
||||
* @param bytes array of bytes to check
|
||||
* @return the total sum of all bytes
|
||||
*/
|
||||
private int calculateChecksum(byte[] bytes) {
|
||||
int checksum = 0;
|
||||
for(int index=0; index < bytes.length; index++) {
|
||||
checksum+=bytes[index];
|
||||
}
|
||||
return checksum;
|
||||
}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
Loading…
Reference in New Issue