74 lines
2.3 KiB
Java
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;
|
|
}
|
|
}
|
|
}
|