From 1b8cde7674e8ea7978772062f5834215d6c3356d Mon Sep 17 00:00:00 2001 From: Bryden Basaran Date: Wed, 11 Sep 2024 11:23:49 -0400 Subject: [PATCH] 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"); } }