Merge pull request #4 from bbasaran/pcgen-format-converter

Pcgen format converter
This commit is contained in:
bbasaran
2024-09-11 14:18:13 -04:00
committed by GitHub
4 changed files with 132 additions and 9 deletions
@@ -0,0 +1,54 @@
package org.misoenergy.hackday.kessel_run;
import org.misoenergy.hackday.kessel_run.class_definitions.CharacterClass;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
public class PCGenConverter {
public File convertToPCGen(List<CharacterClass> classes) {
File pcGenOutput = new File("sw5eEquipment.lst");
FileWriter writer = setupFileWriter(pcGenOutput);
classes.stream().forEach((CharacterClass charClass) -> {
try {
writer.write(charClass.getArchetypes());
writer.write(charClass.getName());
writer.write(charClass.getSummary());
} catch (IOException e) {
e.printStackTrace();
}
});
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
PCGenExporter exporter = new PCGenExporter();
exporter.export(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();
}
}
@@ -20,9 +20,9 @@ public class PCGenExporter {
if (file.createNewFile()) { if (file.createNewFile()) {
System.out.println("File created: " + file.getName()); System.out.println("File created: " + file.getName());
} else { } else {
System.out.println("File already exists. Deleting and re-running"); // System.out.println("File already exists. Deleting and re-running");
file.delete(); // file.delete();
createOutputFile(file); // file.createNewFile();
} }
} }
@@ -0,0 +1,58 @@
package org.misoenergy.hackday.kessel_run;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.misoenergy.hackday.kessel_run.class_definitions.CharacterClass;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import static junit.framework.TestCase.assertTrue;
@RunWith(JUnit4.class)
public class PCGenConverterTests {
@Test
void convertToPCGen() {
File pcGenOutput = new File("sw5eEquipment.lst");
List<CharacterClass> classes = new ArrayList<CharacterClass>();
PCGenConverter converter = new PCGenConverter();
File pcgenFile = converter.convertToPCGen(classes);
assertTrue(pcgenFile.isFile());
}
@Test
void converterWritesCharacterClassesToFile() throws IOException {
File pcGenOutput = new File("sw5eEquipment.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);
}
}
@@ -2,6 +2,7 @@ package org.misoenergy.hackday.kessel_run;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner;
import java.io.*; import java.io.*;
@@ -9,7 +10,7 @@ import java.io.*;
import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
@RunWith(MockitoJUnitRunner.class) @RunWith(JUnit4.class)
public class PCGenExporterTest { public class PCGenExporterTest {
@@ -23,8 +24,10 @@ public class PCGenExporterTest {
@Test @Test
void exporterCreatesFileWhenNoneExists() { void exporterCreatesFileWhenNoneExists() {
exporter = new PCGenExporter(); exporter = new PCGenExporter();
File file = new File("sw5eClasses.lst"); File file = new File("sw5eEquipment.lst");
deleteFileIfExists(file); deleteFileIfExists(file);
exporter.export(file); exporter.export(file);
assertTrue(file.isFile()); assertTrue(file.isFile());
} }
@@ -32,7 +35,7 @@ public class PCGenExporterTest {
@Test @Test
void exporterRecreatesFileWhenExists() throws IOException { void exporterRecreatesFileWhenExists() throws IOException {
exporter = new PCGenExporter(); exporter = new PCGenExporter();
File file = new File("sw5eClasses.lst"); File file = new File("sw5eEquipment.lst");
deleteFileIfExists(file); deleteFileIfExists(file);
createFileWithData(file); createFileWithData(file);
@@ -41,12 +44,20 @@ public class PCGenExporterTest {
BufferedReader reader = new BufferedReader(new FileReader(file)); BufferedReader reader = new BufferedReader(new FileReader(file));
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");
} }
} }