Skip to content

Commit 41eb7d9

Browse files
committed
add unit tests
1 parent 77275e1 commit 41eb7d9

File tree

2 files changed

+77
-3
lines changed
  • document-readers/pdf-reader/src

2 files changed

+77
-3
lines changed

document-readers/pdf-reader/src/main/java/org/springframework/ai/reader/pdf/layout/TextLine.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ class TextLine {
2222

2323
private static final char SPACE_CHARACTER = ' ';
2424

25-
private int lineLength;
26-
private char[] line;
25+
private final int lineLength;
26+
private final char[] line;
2727
private int lastIndex;
2828

2929
TextLine(int lineLength) {
Lines changed: 75 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,91 @@
11
package org.springframework.ai.reader.pdf.layout;
22

33
import org.junit.jupiter.api.Test;
4+
import org.junit.jupiter.params.ParameterizedTest;
5+
import org.junit.jupiter.params.provider.Arguments;
6+
import org.junit.jupiter.params.provider.MethodSource;
7+
8+
import java.util.stream.Stream;
49

510
import static org.junit.jupiter.api.Assertions.assertEquals;
611

712

813
class TextLineTest {
914

15+
public static Stream<Arguments> testWriteCharacterAtIndexValidIndex() {
16+
return Stream.of(
17+
Arguments.of(new Character('A', 0, false, false, false, false)),
18+
Arguments.of(new Character('A', 10, true, false, false, false)),
19+
Arguments.of(new Character('A', 0, false, true, false, false))
20+
);
21+
}
22+
23+
@ParameterizedTest
24+
@MethodSource
25+
void testWriteCharacterAtIndexValidIndex(Character character) {
26+
TextLine textLine = new TextLine(100);
27+
textLine.writeCharacterAtIndex(character);
28+
assertEquals(" A" + " ".repeat(23), textLine.getLine());
29+
}
30+
31+
@Test
32+
void testWriteCharacterAtIndex_PartOfPreviousWord() {
33+
TextLine textLine = new TextLine(100);
34+
Character character = new Character('A', 10, true, false, false, false);
35+
textLine.writeCharacterAtIndex(character);
36+
assertEquals(" A" + " ".repeat(23), textLine.getLine());
37+
}
38+
1039
@Test
1140
void testWriteCharacterAtIndex_BeginningOfNewLine() {
1241
TextLine textLine = new TextLine(100);
1342
Character character = new Character('A', 0, false, true, false, false);
1443
textLine.writeCharacterAtIndex(character);
15-
assertEquals("A" + " ".repeat(99), textLine.getLine());
44+
assertEquals(" A" + " ".repeat(23), textLine.getLine());
45+
}
46+
47+
@Test
48+
void testWriteCharacterAtIndex_InvalidIndex() {
49+
TextLine textLine = new TextLine(100);
50+
Character character = new Character('A', 150, false, false, false, false);
51+
textLine.writeCharacterAtIndex(character);
52+
assertEquals(" ".repeat(25), textLine.getLine());
53+
}
54+
55+
@Test
56+
void testWriteCharacterAtIndex_NegativeIndex() {
57+
TextLine textLine = new TextLine(100);
58+
Character character = new Character('A', -1, false, false, false, false);
59+
textLine.writeCharacterAtIndex(character);
60+
assertEquals(" ".repeat(25), textLine.getLine());
61+
}
62+
63+
@Test
64+
void testWriteCharacterAtIndex_SpaceCharacter() {
65+
TextLine textLine = new TextLine(100);
66+
Character character = new Character('A', 10, false, false, false, false);
67+
textLine.writeCharacterAtIndex(character);
68+
assertEquals(" ".repeat(11) + "A" + " ".repeat(13), textLine.getLine());
69+
}
70+
71+
72+
@Test
73+
void testWriteCharacterAtIndex_CloseToPreviousWord() {
74+
TextLine textLine = new TextLine(100);
75+
Character character = new Character('A', 10, false, false, true, false);
76+
textLine.writeCharacterAtIndex(character);
77+
assertEquals(" ".repeat(11) + "A" + " ".repeat(13), textLine.getLine());
78+
}
79+
80+
@Test
81+
void testGetLineLength() {
82+
TextLine textLine = new TextLine(100);
83+
assertEquals(100 / ForkPDFLayoutTextStripper.OUTPUT_SPACE_CHARACTER_WIDTH_IN_PT, textLine.getLineLength());
84+
}
85+
86+
@Test
87+
void testGetLine() {
88+
TextLine textLine = new TextLine(100);
89+
assertEquals(" ".repeat(100 / ForkPDFLayoutTextStripper.OUTPUT_SPACE_CHARACTER_WIDTH_IN_PT), textLine.getLine());
1690
}
1791
}

0 commit comments

Comments
 (0)