mirror of
https://github.com/bbasaran/kessel-run.git
synced 2026-10-15 10:59:19 -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()) {
|
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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user