diff --git a/projects-parent/originals-parent/phonebill/src/it/java/edu/pdx/cs/joy/phonebill/PhoneBillDAOIT.java b/projects-parent/originals-parent/phonebill/src/it/java/edu/pdx/cs/joy/phonebill/PhoneBillDAOIT.java new file mode 100644 index 000000000..cd65b4c2f --- /dev/null +++ b/projects-parent/originals-parent/phonebill/src/it/java/edu/pdx/cs/joy/phonebill/PhoneBillDAOIT.java @@ -0,0 +1,39 @@ +package edu.pdx.cs.joy.phonebill; + +import edu.pdx.cs.joy.InvokeMainTestCase; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import java.nio.file.Path; + +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.MatcherAssert.assertThat; + +/** + * Integration tests for {@link PhoneBillDAO#main(String[])}. + */ +class PhoneBillDAOIT extends InvokeMainTestCase { + + private MainMethodResult invokeMain(String... args) { + return invokeMain(PhoneBillDAO.class, args); + } + + @Test + void testNoCommandLineArguments() { + MainMethodResult result = invokeMain(); + + assertThat(result.getTextWrittenToStandardError(), + containsString("Usage: java PhoneBillDAO ")); + } + + @Test + void testCreatesAndRetrievesPhoneBill(@TempDir Path tempDirectory) { + String databaseFile = tempDirectory.resolve("phonebill").toString(); + String customerName = "Test Customer"; + + MainMethodResult result = invokeMain(databaseFile, customerName); + + assertThat(result.getTextWrittenToStandardOut(), + containsString("Retrieved PhoneBill for customer: " + customerName)); + } +}