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}