Skip to content

Commit f23320e

Browse files
BAEL-4394: Line at a given number tests
1 parent ae81119 commit f23320e

2 files changed

Lines changed: 93 additions & 0 deletions

File tree

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package com.baeldung.linenumber;
2+
3+
import org.apache.commons.io.FileUtils;
4+
import org.apache.commons.io.IOUtils;
5+
import org.junit.Test;
6+
7+
import java.io.BufferedReader;
8+
import java.io.File;
9+
import java.io.FileInputStream;
10+
import java.io.IOException;
11+
import java.nio.charset.StandardCharsets;
12+
import java.nio.file.Files;
13+
import java.nio.file.Paths;
14+
import java.util.List;
15+
import java.util.Scanner;
16+
import java.util.stream.Stream;
17+
18+
import static org.junit.Assert.assertEquals;
19+
20+
public class LineAtGivenNumberTest {
21+
22+
private static final String FILE_PATH = "src/test/resources/linesInput.txt";
23+
24+
@Test
25+
public void givenFile_whenUsingBufferedReader_thenExtractedLineIsCorrect() throws IOException {
26+
try (BufferedReader br = Files.newBufferedReader(Paths.get(FILE_PATH))) {
27+
for (int i = 0; i < 3; i++) {
28+
br.readLine();
29+
}
30+
31+
String extractedLine = br.readLine();
32+
String expectedLine = "Line 4";
33+
assertEquals(expectedLine, extractedLine);
34+
}
35+
}
36+
37+
@Test
38+
public void givenFile_whenUsingScanner_thenExtractedLineIsCorrect() throws IOException {
39+
try (Scanner scanner = new Scanner(new File(FILE_PATH))) {
40+
for (int i = 0; i < 3; i++) {
41+
scanner.nextLine();
42+
}
43+
44+
String extractedLine = scanner.nextLine();
45+
String expectedLine = "Line 4";
46+
assertEquals(expectedLine, extractedLine);
47+
}
48+
}
49+
50+
@Test
51+
public void givenSmallFile_whenUsingFilesAPI_thenExtractedLineIsCorrect() throws IOException {
52+
String extractedLine = Files.readAllLines(Paths.get(FILE_PATH)).get(4);
53+
String expectedLine = "Line 5";
54+
55+
assertEquals(expectedLine, extractedLine);
56+
}
57+
58+
@Test
59+
public void givenLargeFile_whenUsingFilesAPI_thenExtractedLineIsCorrect() throws IOException {
60+
try (Stream<String> lines = Files.lines(Paths.get(FILE_PATH))) {
61+
String extractedLine = lines.skip(4).findFirst().get();
62+
String expectedLine = "Line 5";
63+
64+
assertEquals(expectedLine, extractedLine);
65+
}
66+
}
67+
68+
@Test
69+
public void givenFile_whenUsingFIleUtils_thenExtractedLineIsCorrect() throws IOException {
70+
ClassLoader classLoader = getClass().getClassLoader();
71+
File file = new File(classLoader.getResource("linesInput.txt").getFile());
72+
73+
List<String> lines = FileUtils.readLines(file, "UTF-8");
74+
75+
String extractedLine = lines.get(0);
76+
String expectedLine = "Line 1";
77+
assertEquals(expectedLine, extractedLine);
78+
}
79+
80+
@Test
81+
public void givenFile_whenUsingIOUtils_thenExtractedLineIsCorrect() throws IOException {
82+
String fileContent = IOUtils.toString(new FileInputStream(FILE_PATH), StandardCharsets.UTF_8);
83+
84+
String extractedLine = fileContent.split(System.lineSeparator())[0];
85+
String expectedLine = "Line 1";
86+
assertEquals(expectedLine, extractedLine);
87+
}
88+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Line 1
2+
Line 2
3+
Line 3
4+
Line 4
5+
Line 5

0 commit comments

Comments
 (0)