Fix failing unit tests. Start Converter Class

This commit is contained in:
Bryden Basaran
2024-09-11 11:23:49 -04:00
parent a720c388c6
commit 1b8cde7674
3 changed files with 70 additions and 5 deletions
@@ -3,15 +3,36 @@ package org.misoenergy.hackday.kessel_run;
import org.misoenergy.hackday.kessel_run.class_definitions.CharacterClass; import org.misoenergy.hackday.kessel_run.class_definitions.CharacterClass;
import java.io.File; import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List; import java.util.List;
public class PCGenConverter { public class PCGenConverter {
public static File convertToPCGen(List<CharacterClass> classes) { public File convertToPCGen(List<CharacterClass> classes) {
File pcGenOutput = new File("sw5eClasses.lst"); File pcGenOutput = new File("sw5eClasses.lst");
FileWriter writer = setupFileWriter(pcGenOutput);
PCGenExporter exporter = new PCGenExporter(); PCGenExporter exporter = new PCGenExporter();
exporter.export(pcGenOutput); exporter.export(pcGenOutput);
return pcGenOutput; return pcGenOutput;
} }
protected FileWriter setupFileWriter(File file) {
FileWriter writer = null;
try {
writer = new FileWriter(file);
} catch (IOException e) {
handleFailedFileWriter(e);
}
return writer;
}
private void handleFailedFileWriter(Exception e) {
System.out.println("Unable to Write to File");
e.printStackTrace();
}
} }
@@ -4,8 +4,9 @@ import org.junit.jupiter.api.Test;
import org.misoenergy.hackday.kessel_run.class_definitions.CharacterClass; import org.misoenergy.hackday.kessel_run.class_definitions.CharacterClass;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import java.io.File; import java.io.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import static junit.framework.TestCase.assertTrue; import static junit.framework.TestCase.assertTrue;
@@ -17,9 +18,41 @@ public class PCGenConverterTests {
void convertToPCGen() { void convertToPCGen() {
File pcGenOutput = new File("sw5eClasses.lst"); File pcGenOutput = new File("sw5eClasses.lst");
List<CharacterClass> classes = new ArrayList<CharacterClass>(); List<CharacterClass> classes = new ArrayList<CharacterClass>();
File pcgenFile = PCGenConverter.convertToPCGen(classes);
PCGenConverter converter = new PCGenConverter();
File pcgenFile = converter.convertToPCGen(classes);
assertTrue(pcgenFile.isFile()); assertTrue(pcgenFile.isFile());
} }
@Test
void converterWritesCharacterClassesToFile() throws IOException {
File pcGenOutput = new File("sw5eClasses.lst");
List<CharacterClass> classes = createTestCharacterClasses();
PCGenConverter converter = new PCGenConverter();
File pcgenFile = converter.convertToPCGen(classes);
BufferedReader reader = new BufferedReader(new FileReader(pcgenFile));
assertTrue(reader.readLine().contains("Test Class"));
reader.close();
}
List<CharacterClass> createTestCharacterClasses() {
List<CharacterClass> characterClasses = new ArrayList<CharacterClass>();
CharacterClass testClass = new CharacterClass();
testClass.setArchetypes("Archetype1");
testClass.setName("Test Class");
testClass.setSummary("This is a test class");
characterClasses.add(testClass);
return characterClasses;
}
FileReader readPCGenFile(File file) throws FileNotFoundException {
return new FileReader(file);
}
} }
@@ -24,7 +24,9 @@ public class PCGenExporterTest {
void exporterCreatesFileWhenNoneExists() { void exporterCreatesFileWhenNoneExists() {
exporter = new PCGenExporter(); exporter = new PCGenExporter();
File file = new File("sw5eClasses.lst"); File file = new File("sw5eClasses.lst");
deleteFileIfExists(file); deleteFileIfExists(file);
exporter.export(file); exporter.export(file);
assertTrue(file.isFile()); assertTrue(file.isFile());
} }
@@ -42,11 +44,20 @@ public class PCGenExporterTest {
assertTrue(reader.readLine() == null); assertTrue(reader.readLine() == null);
reader.close();
} }
void deleteFileIfExists(File file) { void deleteFileIfExists(File file) {
if(!file.exists()) { boolean isDeleted = true;
file.delete();
if(file.exists()) {
isDeleted = file.delete();
}
if (isDeleted) {
System.out.println("File Deleted");
} else {
System.out.println("Unable to Delete File");
} }
} }