mirror of
https://github.com/bbasaran/kessel-run.git
synced 2024-09-25 21:35:21 -04:00
Merge pull request #4 from bbasaran/pcgen-format-converter
Pcgen format converter
This commit is contained in:
@@ -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()) {
|
||||
System.out.println("File created: " + file.getName());
|
||||
} else {
|
||||
System.out.println("File already exists. Deleting and re-running");
|
||||
file.delete();
|
||||
createOutputFile(file);
|
||||
// System.out.println("File already exists. Deleting and re-running");
|
||||
// file.delete();
|
||||
// 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.runner.RunWith;
|
||||
import org.junit.runners.JUnit4;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import java.io.*;
|
||||
@@ -9,7 +10,7 @@ import java.io.*;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
@RunWith(JUnit4.class)
|
||||
public class PCGenExporterTest {
|
||||
|
||||
|
||||
@@ -23,8 +24,10 @@ public class PCGenExporterTest {
|
||||
@Test
|
||||
void exporterCreatesFileWhenNoneExists() {
|
||||
exporter = new PCGenExporter();
|
||||
File file = new File("sw5eClasses.lst");
|
||||
File file = new File("sw5eEquipment.lst");
|
||||
|
||||
deleteFileIfExists(file);
|
||||
|
||||
exporter.export(file);
|
||||
assertTrue(file.isFile());
|
||||
}
|
||||
@@ -32,7 +35,7 @@ public class PCGenExporterTest {
|
||||
@Test
|
||||
void exporterRecreatesFileWhenExists() throws IOException {
|
||||
exporter = new PCGenExporter();
|
||||
File file = new File("sw5eClasses.lst");
|
||||
File file = new File("sw5eEquipment.lst");
|
||||
|
||||
deleteFileIfExists(file);
|
||||
createFileWithData(file);
|
||||
@@ -41,12 +44,20 @@ public class PCGenExporterTest {
|
||||
BufferedReader reader = new BufferedReader(new FileReader(file));
|
||||
|
||||
assertTrue(reader.readLine() == null);
|
||||
|
||||
reader.close();
|
||||
}
|
||||
|
||||
void deleteFileIfExists(File file) {
|
||||
if(!file.exists()) {
|
||||
file.delete();
|
||||
boolean isDeleted = true;
|
||||
|
||||
if(file.exists()) {
|
||||
isDeleted = file.delete();
|
||||
}
|
||||
|
||||
if (isDeleted) {
|
||||
System.out.println("File Deleted");
|
||||
} else {
|
||||
System.out.println("Unable to Delete File");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user