001package edu.pdx.cs.joy.di;
002
003import jakarta.xml.bind.JAXBException;
004import org.junit.jupiter.api.Test;
005
006import java.io.File;
007import java.io.IOException;
008
009import static org.hamcrest.MatcherAssert.assertThat;
010import static org.hamcrest.core.IsEqual.equalTo;
011
012public class CreditCardDatabaseTest {
013
014  final File testDirectory = new File(System.getProperty("java.io.tmpdir"));
015
016  @Test
017  public void setBalanceWritesToFile() throws IOException, JAXBException {
018    String fileName = "setBalanceWriteToFile" + System.currentTimeMillis() + ".xml";
019    double balance = 100.00;
020
021    CreditCardDatabase db = new CreditCardDatabase(testDirectory, fileName);
022    CreditCard card = new CreditCard("12345");
023    db.setBalance(card, balance);
024
025    db = new CreditCardDatabase(testDirectory, fileName);
026    assertThat(db.getBalances().get(card), equalTo(balance));
027    db.getDatabaseFile().deleteOnExit();
028  }
029
030}