001package edu.pdx.cs.joy.airline; 002 003import edu.pdx.cs.joy.ParserException; 004import org.junit.jupiter.api.Test; 005import org.junit.jupiter.api.io.TempDir; 006 007import java.io.*; 008 009import static org.hamcrest.MatcherAssert.assertThat; 010import static org.hamcrest.Matchers.containsString; 011import static org.hamcrest.Matchers.equalTo; 012 013public class TextDumperTest { 014 015 @Test 016 void airlineNameIsDumpedInTextFormat() { 017 String airlineName = "Test Airline"; 018 Airline airline = new Airline(airlineName); 019 020 StringWriter sw = new StringWriter(); 021 TextDumper dumper = new TextDumper(sw); 022 dumper.dump(airline); 023 024 String text = sw.toString(); 025 assertThat(text, containsString(airlineName)); 026 } 027 028 @Test 029 void canParseTextWrittenByTextDumper(@TempDir File tempDir) throws IOException, ParserException { 030 String airlineName = "Test Airline"; 031 Airline airline = new Airline(airlineName); 032 033 File textFile = new File(tempDir, "airline.txt"); 034 TextDumper dumper = new TextDumper(new FileWriter(textFile)); 035 dumper.dump(airline); 036 037 TextParser parser = new TextParser(new FileReader(textFile)); 038 Airline read = parser.parse(); 039 assertThat(read.getName(), equalTo(airlineName)); 040 } 041}