java_json_xml_projekt1/src/test/java/company/DataSaverTests.java
2020-04-19 17:09:32 +02:00

74 lines
2.3 KiB
Java

package company;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import java.io.*;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class DataSaverTests {
private DataSaver dataSaver;
private String testFileName = "test.txt";
@BeforeEach
public void initTests() throws IOException {
dataSaver = new DataSaver(testFileName);
addToTestFileInitialValues();
}
@Test
public void savePersonalDataToFile_ShouldSaveData() throws IOException {
var city = "Warszawa";
var personalData = "Jan Nowak 11223300456";
dataSaver.savePersonalDataToFile(city, personalData);
var textToFind = city + ", " + personalData;
assertTrue(checkFileContainsText(textToFind));
}
@Test
public void deleteRowIfPeselExists_ShouldDeleteRowWithPesel() throws IOException {
assertTrue(checkFileContainsText("Szczecin, Robert Kowalski 11223344567"));
dataSaver.deleteRowIfPeselExists("11223344567");
assertFalse(checkFileContainsText("Szczecin, Robert Kowalski 11223344567"));
}
private void addToTestFileInitialValues() throws IOException {
File file = new File(testFileName);
FileWriter fileWriter = new FileWriter(file, true);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write("Szczecin, Robert Kowalski 11223344567\n");
bufferedWriter.write("Sopot, Witold Barman 99887766543\n");
bufferedWriter.close();
fileWriter.close();
}
private boolean checkFileContainsText(String textToCheck) throws IOException {
File file = new File(testFileName);
if (!file.exists())
return false;
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while (true) {
String line = bufferedReader.readLine();
if (line == null)
return false;
if (line.contains(textToCheck))
return true;
}
}
}