Files
oops/src/test/java/oving2/LineEditorTest.java
Andreas Omholt Olsen c7c4780535 Add oving 2
2026-01-19 11:53:18 +01:00

197 lines
5.3 KiB
Java

package oving2;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class LineEditorTest {
private LineEditor lineEditor;
@BeforeEach
public void setUp() {
lineEditor = new LineEditor();
}
@Test
@DisplayName("Private fields")
public void testPrivateFields() {
TestHelper.checkIfFieldsPrivate(LineEditor.class);
}
@Test
public void testConstructor() {
assertEquals("", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
}
@Test
public void testGetSetText() {
lineEditor.setText("ABC");
assertEquals("ABC", lineEditor.getText());
assertEquals(3, lineEditor.getInsertionIndex());
lineEditor.setText("");
assertEquals("", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
assertThrows(IllegalArgumentException.class, () -> {
lineEditor.setText(null);
}, "Cannot set text to null");
}
@Test
public void testGetSetInsertionIndex() {
lineEditor.setText("ABC");
assertEquals("ABC", lineEditor.getText());
assertEquals(3, lineEditor.getInsertionIndex());
lineEditor.setInsertionIndex(0);
assertEquals("ABC", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
lineEditor.setInsertionIndex(3);
assertEquals("ABC", lineEditor.getText());
assertEquals(3, lineEditor.getInsertionIndex());
assertThrows(IllegalArgumentException.class, () -> {
lineEditor.setInsertionIndex(-1);
});
assertThrows(IllegalArgumentException.class, () -> {
lineEditor.setInsertionIndex(4);
});
}
@Test
public void testLeft() {
lineEditor.setText("Ja");
lineEditor.setInsertionIndex(2);
lineEditor.left();
assertEquals("Ja", lineEditor.getText());
assertEquals(1, lineEditor.getInsertionIndex());
lineEditor.left();
assertEquals("Ja", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
lineEditor.left();
assertEquals("Ja", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
}
@Test
public void testRight() {
lineEditor.setText("Ja");
lineEditor.setInsertionIndex(0);
lineEditor.right();
assertEquals("Ja", lineEditor.getText());
assertEquals(1, lineEditor.getInsertionIndex());
lineEditor.right();
lineEditor.setText("Ja");
assertEquals(2, lineEditor.getInsertionIndex());
lineEditor.right();
lineEditor.setText("Ja");
assertEquals(2, lineEditor.getInsertionIndex());
}
@Test
public void testDeleteLeft() {
lineEditor.setText("Ja");
lineEditor.setInsertionIndex(0);
lineEditor.deleteLeft();
assertEquals("Ja", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
lineEditor.setInsertionIndex(1);
lineEditor.deleteLeft();
assertEquals("a", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
lineEditor.deleteLeft();
assertEquals("a", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
lineEditor.setText("Ja");
lineEditor.setInsertionIndex(2);
lineEditor.deleteLeft();
assertEquals("J", lineEditor.getText());
assertEquals(1, lineEditor.getInsertionIndex());
lineEditor.deleteLeft();
assertEquals("", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
lineEditor.deleteLeft();
assertEquals("", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
}
@Test
public void testDeleteRight() {
lineEditor.setText("Ja");
lineEditor.setInsertionIndex(2);
lineEditor.deleteRight();
assertEquals("Ja", lineEditor.getText());
assertEquals(2, lineEditor.getInsertionIndex());
lineEditor.setInsertionIndex(1);
lineEditor.deleteRight();
assertEquals("J", lineEditor.getText());
assertEquals(1, lineEditor.getInsertionIndex());
lineEditor.deleteRight();
assertEquals("J", lineEditor.getText());
assertEquals(1, lineEditor.getInsertionIndex());
lineEditor.setText("Ja");
lineEditor.setInsertionIndex(0);
lineEditor.deleteRight();
assertEquals("a", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
lineEditor.deleteRight();
assertEquals("", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
lineEditor.deleteRight();
assertEquals("", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
}
@Test
public void testInsertString() {
lineEditor.insertString("");
assertEquals("", lineEditor.getText());
assertEquals(0, lineEditor.getInsertionIndex());
lineEditor.insertString("Java");
assertEquals("Java", lineEditor.getText());
assertEquals(4, lineEditor.getInsertionIndex());
lineEditor.insertString(" er gøy!");
assertEquals("Java er gøy!", lineEditor.getText());
assertEquals(12, lineEditor.getInsertionIndex());
lineEditor.setText("Javagøy!");
lineEditor.setInsertionIndex(4);
lineEditor.insertString(" er ");
assertEquals("Java er gøy!", lineEditor.getText());
assertEquals(8, lineEditor.getInsertionIndex());
lineEditor.setText("er gøy!");
lineEditor.setInsertionIndex(0);
lineEditor.insertString("Java ");
assertEquals("Java er gøy!", lineEditor.getText());
assertEquals(5, lineEditor.getInsertionIndex());
assertThrows(IllegalArgumentException.class, () -> {
lineEditor.insertString(null);
}, "Cannot insert null");
}
}