refactor(test): replace DataSourceReader tests with StudentCsvReader tests

This commit is contained in:
2026-08-31 23:13:45 +04:00
parent fa75549c84
commit 217f9594bd
2 changed files with 127 additions and 116 deletions
@@ -1,116 +0,0 @@
package ru.project.datasource;
import java.io.UncheckedIOException;
import java.util.NoSuchElementException;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNotSame;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.BeforeEach;
import ru.project.collection.MyList;
import ru.project.collection.MyLinkedList;
import ru.project.student.Student;
import ru.project.student.StudentBuilder;
class DataSourceReaderTest{
private StudentCsvReader valideReader;
//Testing StudentCsvReader
@BeforeEach
void setUp(){
valideReader = new StudentCsvReader("C:\\Users\\Dexp\\TestData\\sample.csv");
}
@Test
void readerTestRejectRelativePath(){
assertThrows(IllegalArgumentException.class, () -> new StudentCsvReader("/Users/Dexp/TestData/sample.csv"));
}
@Test
void readerRejectPathIsDir(){
assertThrows(UncheckedIOException.class, () -> new StudentCsvReader("C:\\Users\\Dexp\\TestData"));
}
@Test
void readerTestFileNotExist(){
assertThrows(UncheckedIOException.class, () -> new StudentCsvReader("C:\\Users\\Dexp\\TestData\\sss.csv"));
}
@Test
void testSkipsHeader(){
Student student = valideReader.next();
assertTrue(!(student.getGroupNumber()=="groupNumber"));
}
@Test
void testCreationStudentOnValidData(){
Student student = valideReader.next();
assertEquals(student.getGroupNumber(), "A21");
assertEquals(student.getAverageGrade(), 5.0);
assertEquals(student.getRecordBookNumber(), 331);
}
@Test
void testNotSkippingFirstStudent(){
boolean hn = valideReader.hasNext();
hn = valideReader.hasNext();
Student student = valideReader.next();
assertEquals(student.getGroupNumber(), "A21");
assertEquals(student.getAverageGrade(), 5.0);
assertEquals(student.getRecordBookNumber(), 331);
}
@Test
void testValidEndsOfFile(){
Student student = valideReader.next();
student = valideReader.next();
assertTrue(!valideReader.hasNext());
}
@Test
void testOutOfIndex(){
assertThrows(NoSuchElementException.class, () -> {
Student student = valideReader.next();
student = valideReader.next();
student = valideReader.next();
});
}
@Test
void readerTestRejectFewParametres(){
assertThrows(IllegalArgumentException.class, () -> {
StudentCsvReader reader = new StudentCsvReader("C:\\Users\\Dexp\\TestData\\fewparameters.csv");
Student student = reader.next();
});
}
@Test
void readerTestRejectInvalidGroupNumber(){
assertThrows(IllegalArgumentException.class, () -> {
StudentCsvReader reader = new StudentCsvReader("C:\\Users\\Dexp\\TestData\\invalid_groupnumber.csv");
Student student = reader.next();
});
}
@Test
void readerTestRejectInvalidAverageGrade(){
assertThrows(IllegalArgumentException.class, () -> {
StudentCsvReader reader = new StudentCsvReader("C:\\Users\\Dexp\\TestData\\invalid_averagegrade.csv");
Student student = reader.next();
});
}
@Test
void readerTestRejectInvalidRecordBookNumber(){
assertThrows(IllegalArgumentException.class, () -> {
StudentCsvReader reader = new StudentCsvReader("C:\\Users\\Dexp\\TestData\\invalid_recordbooknumber.csv");
Student student = reader.next();
});
}
}
@@ -0,0 +1,127 @@
package ru.project.io;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.UncheckedIOException;
import java.util.NoSuchElementException;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import ru.project.student.Student;
class StudentCsvReaderTest {
private StudentCsvReader valideReader;
// Testing StudentCsvReader
@BeforeEach
void setUp() {
valideReader = new StudentCsvReader("C:\\Users\\Dexp\\TestData\\sample.csv");
}
@Test
void readerTestRejectRelativePath() {
assertThrows(
IllegalArgumentException.class,
() -> new StudentCsvReader("/Users/Dexp/TestData/sample.csv"));
}
@Test
void readerRejectPathIsDir() {
assertThrows(
UncheckedIOException.class, () -> new StudentCsvReader("C:\\Users\\Dexp\\TestData"));
}
@Test
void readerTestFileNotExist() {
assertThrows(
UncheckedIOException.class,
() -> new StudentCsvReader("C:\\Users\\Dexp\\TestData\\sss.csv"));
}
@Test
void testSkipsHeader() {
Student student = valideReader.next();
assertTrue(!(student.getGroupNumber() == "groupNumber"));
}
@Test
void testCreationStudentOnValidData() {
Student student = valideReader.next();
assertEquals(student.getGroupNumber(), "A21");
assertEquals(student.getAverageGrade(), 5.0);
assertEquals(student.getRecordBookNumber(), 331);
}
@Test
void testNotSkippingFirstStudent() {
boolean hn = valideReader.hasNext();
hn = valideReader.hasNext();
Student student = valideReader.next();
assertEquals(student.getGroupNumber(), "A21");
assertEquals(student.getAverageGrade(), 5.0);
assertEquals(student.getRecordBookNumber(), 331);
}
@Test
void testValidEndsOfFile() {
Student student = valideReader.next();
student = valideReader.next();
assertTrue(!valideReader.hasNext());
}
@Test
void testOutOfIndex() {
assertThrows(
NoSuchElementException.class,
() -> {
Student student = valideReader.next();
student = valideReader.next();
student = valideReader.next();
});
}
@Test
void readerTestRejectFewParametres() {
assertThrows(
IllegalArgumentException.class,
() -> {
StudentCsvReader reader =
new StudentCsvReader("C:\\Users\\Dexp\\TestData\\fewparameters.csv");
Student student = reader.next();
});
}
@Test
void readerTestRejectInvalidGroupNumber() {
assertThrows(
IllegalArgumentException.class,
() -> {
StudentCsvReader reader =
new StudentCsvReader("C:\\Users\\Dexp\\TestData\\invalid_groupnumber.csv");
Student student = reader.next();
});
}
@Test
void readerTestRejectInvalidAverageGrade() {
assertThrows(
IllegalArgumentException.class,
() -> {
StudentCsvReader reader =
new StudentCsvReader("C:\\Users\\Dexp\\TestData\\invalid_averagegrade.csv");
Student student = reader.next();
});
}
@Test
void readerTestRejectInvalidRecordBookNumber() {
assertThrows(
IllegalArgumentException.class,
() -> {
StudentCsvReader reader =
new StudentCsvReader("C:\\Users\\Dexp\\TestData\\invalid_recordbooknumber.csv");
Student student = reader.next();
});
}
}