From a720c388c6d3bba99d85ba0ef8f1d005677e2b31 Mon Sep 17 00:00:00 2001 From: Bryden Basaran Date: Tue, 10 Sep 2024 23:26:05 -0400 Subject: [PATCH 1/3] Start of a layout for a format converter --- .../hackday/kessel_run/PCGenConverter.java | 17 +++++++++++++ .../kessel_run/PCGenConverterTests.java | 25 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/PCGenConverter.java create mode 100644 src/test/java/org/misoenergy/hackday/kessel_run/PCGenConverterTests.java diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/PCGenConverter.java b/src/main/java/org/misoenergy/hackday/kessel_run/PCGenConverter.java new file mode 100644 index 0000000..afff696 --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/PCGenConverter.java @@ -0,0 +1,17 @@ +package org.misoenergy.hackday.kessel_run; + +import org.misoenergy.hackday.kessel_run.class_definitions.CharacterClass; + +import java.io.File; +import java.util.List; + +public class PCGenConverter { + + public static File convertToPCGen(List classes) { + File pcGenOutput = new File("sw5eClasses.lst"); + PCGenExporter exporter = new PCGenExporter(); + exporter.export(pcGenOutput); + return pcGenOutput; + } + +} diff --git a/src/test/java/org/misoenergy/hackday/kessel_run/PCGenConverterTests.java b/src/test/java/org/misoenergy/hackday/kessel_run/PCGenConverterTests.java new file mode 100644 index 0000000..8838b95 --- /dev/null +++ b/src/test/java/org/misoenergy/hackday/kessel_run/PCGenConverterTests.java @@ -0,0 +1,25 @@ +package org.misoenergy.hackday.kessel_run; + +import org.junit.jupiter.api.Test; +import org.misoenergy.hackday.kessel_run.class_definitions.CharacterClass; +import org.springframework.boot.test.context.SpringBootTest; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import static junit.framework.TestCase.assertTrue; + +@SpringBootTest +public class PCGenConverterTests { + + @Test + void convertToPCGen() { + File pcGenOutput = new File("sw5eClasses.lst"); + List classes = new ArrayList(); + File pcgenFile = PCGenConverter.convertToPCGen(classes); + + assertTrue(pcgenFile.isFile()); + } + +} From 1b8cde7674e8ea7978772062f5834215d6c3356d Mon Sep 17 00:00:00 2001 From: Bryden Basaran Date: Wed, 11 Sep 2024 11:23:49 -0400 Subject: [PATCH 2/3] Fix failing unit tests. Start Converter Class --- .../hackday/kessel_run/PCGenConverter.java | 23 +++++++++++- .../kessel_run/PCGenConverterTests.java | 37 ++++++++++++++++++- .../hackday/kessel_run/PCGenExporterTest.java | 15 +++++++- 3 files changed, 70 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/PCGenConverter.java b/src/main/java/org/misoenergy/hackday/kessel_run/PCGenConverter.java index afff696..709b2d7 100644 --- a/src/main/java/org/misoenergy/hackday/kessel_run/PCGenConverter.java +++ b/src/main/java/org/misoenergy/hackday/kessel_run/PCGenConverter.java @@ -3,15 +3,36 @@ 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 static File convertToPCGen(List classes) { + public File convertToPCGen(List classes) { File pcGenOutput = new File("sw5eClasses.lst"); + FileWriter writer = setupFileWriter(pcGenOutput); + 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(); + } + } diff --git a/src/test/java/org/misoenergy/hackday/kessel_run/PCGenConverterTests.java b/src/test/java/org/misoenergy/hackday/kessel_run/PCGenConverterTests.java index 8838b95..90a45aa 100644 --- a/src/test/java/org/misoenergy/hackday/kessel_run/PCGenConverterTests.java +++ b/src/test/java/org/misoenergy/hackday/kessel_run/PCGenConverterTests.java @@ -4,8 +4,9 @@ import org.junit.jupiter.api.Test; import org.misoenergy.hackday.kessel_run.class_definitions.CharacterClass; import org.springframework.boot.test.context.SpringBootTest; -import java.io.File; +import java.io.*; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static junit.framework.TestCase.assertTrue; @@ -17,9 +18,41 @@ public class PCGenConverterTests { void convertToPCGen() { File pcGenOutput = new File("sw5eClasses.lst"); List classes = new ArrayList(); - File pcgenFile = PCGenConverter.convertToPCGen(classes); + + PCGenConverter converter = new PCGenConverter(); + File pcgenFile = converter.convertToPCGen(classes); assertTrue(pcgenFile.isFile()); } + @Test + void converterWritesCharacterClassesToFile() throws IOException { + File pcGenOutput = new File("sw5eClasses.lst"); + List 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 createTestCharacterClasses() { + List characterClasses = new ArrayList(); + + 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); + } + } diff --git a/src/test/java/org/misoenergy/hackday/kessel_run/PCGenExporterTest.java b/src/test/java/org/misoenergy/hackday/kessel_run/PCGenExporterTest.java index 770ca62..6a6a25c 100644 --- a/src/test/java/org/misoenergy/hackday/kessel_run/PCGenExporterTest.java +++ b/src/test/java/org/misoenergy/hackday/kessel_run/PCGenExporterTest.java @@ -24,7 +24,9 @@ public class PCGenExporterTest { void exporterCreatesFileWhenNoneExists() { exporter = new PCGenExporter(); File file = new File("sw5eClasses.lst"); + deleteFileIfExists(file); + exporter.export(file); assertTrue(file.isFile()); } @@ -42,11 +44,20 @@ public class PCGenExporterTest { 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"); } } From 2b4f8762ffe4faff1462cd27d1880a2c055bbeee Mon Sep 17 00:00:00 2001 From: Bryden Basaran Date: Wed, 11 Sep 2024 14:13:51 -0400 Subject: [PATCH 3/3] Add Basic Converter --- .../hackday/kessel_run/PCGenConverter.java | 18 +++++++++++++++++- .../hackday/kessel_run/PCGenExporter.java | 6 +++--- .../kessel_run/PCGenConverterTests.java | 10 +++++----- .../hackday/kessel_run/PCGenExporterTest.java | 8 ++++---- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/PCGenConverter.java b/src/main/java/org/misoenergy/hackday/kessel_run/PCGenConverter.java index 709b2d7..e9cf05b 100644 --- a/src/main/java/org/misoenergy/hackday/kessel_run/PCGenConverter.java +++ b/src/main/java/org/misoenergy/hackday/kessel_run/PCGenConverter.java @@ -10,9 +10,25 @@ import java.util.List; public class PCGenConverter { public File convertToPCGen(List classes) { - File pcGenOutput = new File("sw5eClasses.lst"); + 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; diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/PCGenExporter.java b/src/main/java/org/misoenergy/hackday/kessel_run/PCGenExporter.java index 2058b62..8882e1b 100644 --- a/src/main/java/org/misoenergy/hackday/kessel_run/PCGenExporter.java +++ b/src/main/java/org/misoenergy/hackday/kessel_run/PCGenExporter.java @@ -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(); } } diff --git a/src/test/java/org/misoenergy/hackday/kessel_run/PCGenConverterTests.java b/src/test/java/org/misoenergy/hackday/kessel_run/PCGenConverterTests.java index 90a45aa..12f6ad3 100644 --- a/src/test/java/org/misoenergy/hackday/kessel_run/PCGenConverterTests.java +++ b/src/test/java/org/misoenergy/hackday/kessel_run/PCGenConverterTests.java @@ -1,22 +1,22 @@ 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 org.springframework.boot.test.context.SpringBootTest; import java.io.*; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import static junit.framework.TestCase.assertTrue; -@SpringBootTest +@RunWith(JUnit4.class) public class PCGenConverterTests { @Test void convertToPCGen() { - File pcGenOutput = new File("sw5eClasses.lst"); + File pcGenOutput = new File("sw5eEquipment.lst"); List classes = new ArrayList(); PCGenConverter converter = new PCGenConverter(); @@ -27,7 +27,7 @@ public class PCGenConverterTests { @Test void converterWritesCharacterClassesToFile() throws IOException { - File pcGenOutput = new File("sw5eClasses.lst"); + File pcGenOutput = new File("sw5eEquipment.lst"); List classes = createTestCharacterClasses(); PCGenConverter converter = new PCGenConverter(); diff --git a/src/test/java/org/misoenergy/hackday/kessel_run/PCGenExporterTest.java b/src/test/java/org/misoenergy/hackday/kessel_run/PCGenExporterTest.java index 6a6a25c..a6214c2 100644 --- a/src/test/java/org/misoenergy/hackday/kessel_run/PCGenExporterTest.java +++ b/src/test/java/org/misoenergy/hackday/kessel_run/PCGenExporterTest.java @@ -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,7 +24,7 @@ public class PCGenExporterTest { @Test void exporterCreatesFileWhenNoneExists() { exporter = new PCGenExporter(); - File file = new File("sw5eClasses.lst"); + File file = new File("sw5eEquipment.lst"); deleteFileIfExists(file); @@ -34,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); @@ -43,7 +44,6 @@ public class PCGenExporterTest { BufferedReader reader = new BufferedReader(new FileReader(file)); assertTrue(reader.readLine() == null); - reader.close(); }