Move from using main method to Junit test

This commit is contained in:
Hai Nguyen 2018-07-03 17:33:01 +08:00
parent ace948a705
commit 7de2556d6b
2 changed files with 53 additions and 32 deletions

View File

@ -1,32 +0,0 @@
package com.baeldung.fileToBase64StringConversion;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Base64;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
public class FileToBase64StringConversion {
public static void main(String[] args) throws FileNotFoundException, IOException {
//read file path from first argument
String filePath = args[0];
byte[] fileContent = FileUtils.readFileToByteArray(new File(filePath));
String encodedString = Base64.getEncoder().encodeToString(fileContent);
//print encoded base64 String
System.out.println(encodedString);
//construct output file name
String extension = FilenameUtils.getExtension(filePath);
String baseFileName = FilenameUtils.getBaseName(filePath);
String directory = new File(filePath).getParentFile().getAbsolutePath();
String outputFileName = directory+File.separator+baseFileName+"_copy."+extension;
//decode the string and write to file
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
FileUtils.writeByteArrayToFile(new File(outputFileName), decodedBytes);
}
}

View File

@ -0,0 +1,53 @@
package com.baeldung.fileToBase64StringConversion;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Base64;
import java.util.Collection;
import org.apache.commons.io.FileUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@RunWith(Parameterized.class)
public class FileToBase64StringConversionTest {
private String inputFilePath;
private String outputFilePath;
public FileToBase64StringConversionTest(String inputFilePath, String outputFilePath) {
this.inputFilePath = inputFilePath;
this.outputFilePath = outputFilePath;
}
@Parameterized.Parameters
public static Collection<String[]> parameters() {
return Arrays.asList(new String[][] { { "", "" } });
}
@Test
public void fileToBase64StringConversion() throws FileNotFoundException, IOException {
File outputFile = new File(outputFilePath);
File inputFile = new File(inputFilePath);
if (!inputFile.exists())
return;
byte[] fileContent = FileUtils.readFileToByteArray(inputFile);
String encodedString = Base64.getEncoder().encodeToString(fileContent);
// print encoded base64 String
System.out.println(encodedString);
// decode the string and write to file
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
FileUtils.writeByteArrayToFile(outputFile, decodedBytes);
assertTrue(outputFile.length() == fileContent.length);
}
}