From eef7b45172bd26a28c8e7a023e360601a0bb00e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D1=80=D1=88=D0=BE=D0=B2=20=D0=92=D0=BB=D0=B0=D0=B4?= =?UTF-8?q?=D0=B8=D1=81=D0=BB=D0=B0=D0=B2?= Date: Mon, 31 Aug 2026 21:28:16 +0700 Subject: [PATCH] test: add test class DataSourceReaderTest --- .../datasource/DataSourceReaderTest.java | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 app/src/test/java/ru/project/datasource/DataSourceReaderTest.java diff --git a/app/src/test/java/ru/project/datasource/DataSourceReaderTest.java b/app/src/test/java/ru/project/datasource/DataSourceReaderTest.java new file mode 100644 index 0000000..740904c --- /dev/null +++ b/app/src/test/java/ru/project/datasource/DataSourceReaderTest.java @@ -0,0 +1,116 @@ +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(); + }); + } +} \ No newline at end of file