diff --git a/src/main/java/Notizbuch.java b/src/main/java/Notizbuch.java index caffb68..7371aae 100644 --- a/src/main/java/Notizbuch.java +++ b/src/main/java/Notizbuch.java @@ -8,7 +8,7 @@ import javax.swing.JFrame; public class Notizbuch extends JFrame implements ActionListener { - private JTextArea textArea; + JTextArea textArea; private JButton saveButton; private JButton loadButton; @@ -18,8 +18,8 @@ public class Notizbuch extends JFrame implements ActionListener { setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(new BorderLayout()); - textArea = new JTextArea(); - add(new JScrollPane(textArea), BorderLayout.CENTER); + setTextArea(new JTextArea()); + add(new JScrollPane(getTextArea()), BorderLayout.CENTER); saveButton = new JButton("Speichern"); saveButton.addActionListener(this); @@ -43,25 +43,40 @@ public class Notizbuch extends JFrame implements ActionListener { } - private void saveNote() { + public void saveNote() { try (PrintWriter writer = new PrintWriter(new FileWriter("notizen.txt"))) { - writer.print(textArea.getText()); + writer.print(getTextArea().getText()); JOptionPane.showMessageDialog(this, "Notiz erfolgreich gespeichert!"); } catch (IOException e) { JOptionPane.showMessageDialog(this, "Fehler beim Speichern der Notiz: " + e.getMessage()); } } - private void loadNote() { + public void loadNote() { try (BufferedReader reader = new BufferedReader(new FileReader("notizen.txt"))) { StringBuilder noteText = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { noteText.append(line).append("\n"); } - textArea.setText(noteText.toString()); + getTextArea().setText(noteText.toString()); } catch (IOException e) { JOptionPane.showMessageDialog(this, "Fehler beim Laden der Notiz: " + e.getMessage()); } } + + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> { + Notizbuch notizbuch = new Notizbuch(); + notizbuch.setVisible(true); + }); + } + + public JTextArea getTextArea() { + return textArea; + } + + public void setTextArea(JTextArea textArea) { + this.textArea = textArea; + } } diff --git a/src/test/java/NotizbuchTest.java b/src/test/java/NotizbuchTest.java new file mode 100644 index 0000000..b3f5db8 --- /dev/null +++ b/src/test/java/NotizbuchTest.java @@ -0,0 +1,119 @@ +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +class NotizbuchTest { + + @Test + public void testSpeichernUndLaden() { + Notizbuch notizbuch = new Notizbuch(); + notizbuch.textArea.setText("Testnotiz"); + + notizbuch.saveNote(); + + notizbuch.loadNote(); + + assertEquals("Testnotiz\n", notizbuch.textArea.getText()); + } + + @Test + public void testSpeichernMitLeererNotiz() { + Notizbuch notizbuch = new Notizbuch(); + notizbuch.textArea.setText(""); + + notizbuch.saveNote(); + + assertEquals("", notizbuch.textArea.getText()); + } + + @Test + public void testLadenVonExistierenderDatei() { + // Vor dem Test sicherstellen, dass eine Datei mit Inhalt existiert + // Hier wird angenommen, dass bereits eine "notizen.txt" Datei vorhanden ist + + Notizbuch notizbuch = new Notizbuch(); + notizbuch.loadNote(); + + assertNotEquals("", notizbuch.textArea.getText()); + } + @Test + public void testSpeichernMitDateiSchreibfehler() { + Notizbuch notizbuch = new Notizbuch(); + notizbuch.textArea.setText("Testnotiz"); + + // Setze die Datei als schreibgeschützt, um einen Schreibfehler zu simulieren + + notizbuch.saveNote(); + + // Erwarte eine Fehlermeldung + // TODO: Implementierung einer Methode zum Einfangen von Fehlermeldungen + } + @Test + public void testSpeichernMitUmlautenUndSonderzeichen() { + Notizbuch notizbuch = new Notizbuch(); + notizbuch.textArea.setText("Äpfel & Birnen €"); + + notizbuch.saveNote(); + + notizbuch.loadNote(); + + assertEquals("Äpfel & Birnen €\n", notizbuch.textArea.getText()); + } + @Test + public void testSpeichernMitLeerzeichen() { + Notizbuch notizbuch = new Notizbuch(); + notizbuch.textArea.setText("Testnotiz mit Leerzeichen"); + + notizbuch.saveNote(); + + notizbuch.loadNote(); + + assertEquals("Testnotiz mit Leerzeichen\n", notizbuch.textArea.getText()); + } + @Test + public void testSpeichernUndLadenMitMehrzeiligerNotiz() { + Notizbuch notizbuch = new Notizbuch(); + notizbuch.textArea.setText("Erste Zeile\nZweite Zeile\nDritte Zeile"); + + notizbuch.saveNote(); + + notizbuch.loadNote(); + + assertEquals("Erste Zeile\nZweite Zeile\nDritte Zeile\n", notizbuch.textArea.getText()); + } + @Test + public void testSpeichernUndLadenMitLeererZeile() { + Notizbuch notizbuch = new Notizbuch(); + notizbuch.textArea.setText("\n"); + + notizbuch.saveNote(); + + notizbuch.loadNote(); + + assertEquals("\n", notizbuch.textArea.getText()); + } + @Test + public void testSpeichernUndLadenMitUTF8() { + Notizbuch notizbuch = new Notizbuch(); + notizbuch.textArea.setText("Äpfel & Birnen €"); + + notizbuch.saveNote(); + notizbuch.textArea.setText(""); // Setze den Textbereich zurück + + notizbuch.loadNote(); + + assertEquals("Äpfel & Birnen €\n", notizbuch.textArea.getText()); + } + @Test + public void testSpeichernUndLadenMitMehrzeiligerNotiz2() { + Notizbuch notizbuch = new Notizbuch(); + notizbuch.textArea.setText("Erste Zeile\nZweite Zeile\nDritte Zeile"); + + notizbuch.saveNote(); + notizbuch.textArea.setText(""); // Setze den Textbereich zurück + + notizbuch.loadNote(); + + assertEquals("Erste Zeile\nZweite Zeile\nDritte Zeile\n", notizbuch.textArea.getText()); + } +}