From 39b0cf3e9e5bb4152c8515f2aaa69a555755b13d Mon Sep 17 00:00:00 2001
From: aichinos <aichinos@jyu.fi>
Date: Mon, 10 Mar 2025 15:14:03 +0200
Subject: [PATCH] =?UTF-8?q?tarvitsen=20v=C3=A4litt=C3=A4=C3=A4=20tietoja?=
 =?UTF-8?q?=20sivujen=20v=C3=A4liin?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../LisaaTapaaminenGUIController.java         | 29 ++++++++++-
 .../fxMMKurssit/MMKurssitGUIController.java   |  2 +-
 mmkurssit/src/fxMMKurssit/MMKurssitMain.java  |  7 ++-
 mmkurssit/src/mmkurssit/Kurssit.java          |  8 ++--
 mmkurssit/src/mmkurssit/MMKurssit.java        |  1 -
 mmkurssit/src/mmkurssit/Tapaamiset.java       |  4 +-
 mmkurssit/src/mmkurssit/test/KurssitTest.java | 48 +++++++++++++++++++
 .../src/mmkurssit/test/MMKurssitTest.java     | 15 ++++++
 .../src/mmkurssit/test/TapaamisetTest.java    | 15 ++++++
 9 files changed, 118 insertions(+), 11 deletions(-)
 create mode 100644 mmkurssit/src/mmkurssit/test/KurssitTest.java
 create mode 100644 mmkurssit/src/mmkurssit/test/MMKurssitTest.java
 create mode 100644 mmkurssit/src/mmkurssit/test/TapaamisetTest.java

diff --git a/mmkurssit/src/fxMMKurssit/LisaaTapaaminenGUIController.java b/mmkurssit/src/fxMMKurssit/LisaaTapaaminenGUIController.java
index d6c6946..35520c0 100644
--- a/mmkurssit/src/fxMMKurssit/LisaaTapaaminenGUIController.java
+++ b/mmkurssit/src/fxMMKurssit/LisaaTapaaminenGUIController.java
@@ -1,4 +1,6 @@
 package fxMMKurssit;
+import fi.jyu.mit.fxgui.CheckBoxChooser;
+import fi.jyu.mit.fxgui.ListChooser;
 import fi.jyu.mit.fxgui.ModalControllerInterface;
 //import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
@@ -9,6 +11,7 @@ import javafx.scene.control.Label;
 import javafx.scene.control.TextArea;
 import javafx.scene.control.TextField;
 import javafx.scene.control.Alert.AlertType;
+import mmkurssit.Kurssi;
 
 /**
  * @author aichi
@@ -58,11 +61,35 @@ public class LisaaTapaaminenGUIController implements ModalControllerInterface<St
 //==========================================================================
     
     
-    @FXML    void addNewMeeting() {
+    @FXML    private void addNewMeeting() {
         Alert alert = new Alert(AlertType.INFORMATION);
         alert.setTitle("Not yet");
         alert.setContentText("Not ready yet.");
         alert.showAndWait();
+        //uusiTapaaminen();
+    }
+
+    
+    /**
+     * Vaihe 5
+     */
+    private void uusiTapaaminen() {
+        
+        //TODO
+        //edellisellä sivulla: CheckBoxChooser<Kurssi> selectedCourse; ja/tai ListChooser<Kurssi> allCourses;
+        //voiko käyttää jommasta kummasta valittu kurssi parametriksi?
+        
+        /*
+         * Vesan koodi tähän:
+         * 
+         * private void uusiHarrastus(){
+         *    Jasen jasenKohdalla = chooserJasenet.getSelectedObject();
+         *    if(jasenKohdalla == null) return;
+         *    Harrastus har = new Harrastus();
+         *    har.rekisteroi();
+         *    har.tayta(jasenKohdalla.getTunnusNro()); //TODO: possauta oikea dialogi
+         *    mmkurssit.lisaa(har);
+         */
     }
 
 
diff --git a/mmkurssit/src/fxMMKurssit/MMKurssitGUIController.java b/mmkurssit/src/fxMMKurssit/MMKurssitGUIController.java
index 6940f1a..f705055 100644
--- a/mmkurssit/src/fxMMKurssit/MMKurssitGUIController.java
+++ b/mmkurssit/src/fxMMKurssit/MMKurssitGUIController.java
@@ -126,7 +126,7 @@ public class MMKurssitGUIController {
      * Asetetaan käytettävä mmkurssit
      * @param mmkurssit jota käytetään
      */
-    public void setMMKursset(MMKurssit mmkurssit) {
+    public void setMMKurssit(MMKurssit mmkurssit) {
         this.mmkurssit = mmkurssit;        
     }
         
diff --git a/mmkurssit/src/fxMMKurssit/MMKurssitMain.java b/mmkurssit/src/fxMMKurssit/MMKurssitMain.java
index 3646d42..d303991 100644
--- a/mmkurssit/src/fxMMKurssit/MMKurssitMain.java
+++ b/mmkurssit/src/fxMMKurssit/MMKurssitMain.java
@@ -14,13 +14,16 @@ import javafx.fxml.FXMLLoader;
  * @version 5.2.2025
  *
  *
- *  HUOM!! vaiheen loppuessa laita tag, alussa uusi branch!
+ *  HUOM!! vaiheen loppuessa laita tag, alussa uusi branch! + vaiheen lopussa laita tag
  *  
  *  Puuttuu
  *    - tamaapisen tietojen sivun modify-button jälkeen tuleva näkymä, jossa on sekä save- että delete-button.
  *    - sama kurssin tietojen sivun modify-button jälkeen tuleva näkymä
  *    Onko mahdollista, että ne kaksi napit ovat jo paikoillaan mutta ennen käyttäjä painaa "modify" niin ne ovat invisible?
  *    Eli painamalla modify-nappia, kahden nappien näkövyys asetukset ja texstikentän muokkaaminen avaaminen
+ *    
+ *    TODO:
+ *    Testien kirjoittaminen jokaisen kohtaan, junit suiten luominen (ettei tarvitse ajaa kaikki testit erikseen)
  */
 
 
@@ -37,7 +40,7 @@ public class MMKurssitMain extends Application {
             primaryStage.setTitle("MMKurssit");
             
             MMKurssit mmkurssit = new MMKurssit();
-            mmkurssitCtrl.setMMKursset(mmkurssit);
+            mmkurssitCtrl.setMMKurssit(mmkurssit);
         
             primaryStage.show();
         } catch(Exception e) {
diff --git a/mmkurssit/src/mmkurssit/Kurssit.java b/mmkurssit/src/mmkurssit/Kurssit.java
index 949c98d..cc30c47 100644
--- a/mmkurssit/src/mmkurssit/Kurssit.java
+++ b/mmkurssit/src/mmkurssit/Kurssit.java
@@ -24,7 +24,7 @@ public class Kurssit {
     
     /**
      * Lisataan kurssi kurssit-taulukolle
-     * @param kurssi lisattava uusi kurssi
+     * @param esim lisattava uusi kurssi
      * @throws SailoException jos tietorakenne on jo täynnä
      * @example 
      * <pre name="test">
@@ -49,7 +49,7 @@ public class Kurssit {
      *      kurssit.lisaa(test1); kurssit.getKpl() === 5;
      *      kurssit.lisaa(test1); #THROWS SailoException
      */
-    void lisaa(Kurssi esim) throws SailoException {
+    public void lisaa(Kurssi esim) throws SailoException {
         
         if (kpl >= kurssit.length) throw new SailoException ("Too many courses!");
 
@@ -62,7 +62,7 @@ public class Kurssit {
      * Palauttaa rekisteroityjen kurssien kpl
      * @return kurssien lukuäärä
      */
-    int getKpl() {
+    public int getKpl() {
         return this.kpl;
     }
     
@@ -73,7 +73,7 @@ public class Kurssit {
      * @return viite kurssiin, jonka index on i
      * @throws IndexOutOfBoundsException jos i ei ole tietorakenteen sisällä
      */
-    Kurssi anna(int i) {
+    public Kurssi anna(int i) {
         
         if (i<0 || this.kpl <= i)
             throw new IndexOutOfBoundsException("Not yet index: "+ i);
diff --git a/mmkurssit/src/mmkurssit/MMKurssit.java b/mmkurssit/src/mmkurssit/MMKurssit.java
index b00a0a8..1244f21 100644
--- a/mmkurssit/src/mmkurssit/MMKurssit.java
+++ b/mmkurssit/src/mmkurssit/MMKurssit.java
@@ -112,7 +112,6 @@ public class MMKurssit {
             mmkurssit.lisaa(ohj2_1);
             mmkurssit.lisaa(j4_2);
             
-            
             List<Tapaaminen> j4_tap = mmkurssit.annaTapaamiset(japani4);
             for(Tapaaminen tap : j4_tap) {
                 tap.tulosta(System.out);
diff --git a/mmkurssit/src/mmkurssit/Tapaamiset.java b/mmkurssit/src/mmkurssit/Tapaamiset.java
index 188bc1f..bb35c6a 100644
--- a/mmkurssit/src/mmkurssit/Tapaamiset.java
+++ b/mmkurssit/src/mmkurssit/Tapaamiset.java
@@ -32,14 +32,14 @@ public class Tapaamiset {
     
     
     /**
-     * @param kurssiID
+     * @param kurssiID kyseisen kurssin ID
      * @return Lisa, jossa on tapaamisia, jonka kID on sama kuin parametriksi annettu kurssiID
      * @example
      * <pre name="test">
      *  //TODO: testin kirjoittaminen
      * </pre>
      */
-    List<Tapaaminen> annaTapaamiset(int kurssiID) {
+    public List<Tapaaminen> annaTapaamiset(int kurssiID) {
         
         List<Tapaaminen> loydetyt = new ArrayList<Tapaaminen>();
         for (Tapaaminen tap : alkiot) {
diff --git a/mmkurssit/src/mmkurssit/test/KurssitTest.java b/mmkurssit/src/mmkurssit/test/KurssitTest.java
new file mode 100644
index 0000000..21355f9
--- /dev/null
+++ b/mmkurssit/src/mmkurssit/test/KurssitTest.java
@@ -0,0 +1,48 @@
+package mmkurssit.test;
+// Generated by ComTest BEGIN
+import static org.junit.Assert.*;
+import org.junit.*;
+import mmkurssit.*;
+// Generated by ComTest END
+
+/**
+ * Test class made by ComTest
+ * @version 2025.03.10 14:44:08 // Generated by ComTest
+ *
+ */
+@SuppressWarnings("all")
+public class KurssitTest {
+
+
+
+  // Generated by ComTest BEGIN
+  /** 
+   * testLisaa30 
+   * @throws SailoException when error
+   */
+  @Test
+  public void testLisaa30() throws SailoException {    // Kurssit: 30
+    Kurssit kurssit = new Kurssit(); 
+    Kurssi test1 = new Kurssi(); 
+    Kurssi test2 = new Kurssi(); 
+    assertEquals("From: Kurssit line: 36", 0, kurssit.getKpl()); 
+    kurssit.lisaa(test1); assertEquals("From: Kurssit line: 37", 1, kurssit.getKpl()); 
+    kurssit.lisaa(test2); assertEquals("From: Kurssit line: 38", 2, kurssit.getKpl()); 
+    kurssit.lisaa(test1); assertEquals("From: Kurssit line: 39", 3, kurssit.getKpl()); 
+    assertEquals("From: Kurssit line: 40", test1, kurssit.anna(0)); 
+    assertEquals("From: Kurssit line: 41", test2, kurssit.anna(1)); 
+    assertEquals("From: Kurssit line: 42", test1, kurssit.anna(2)); 
+    assertEquals("From: Kurssit line: 44", false, kurssit.anna(0) == test2); 
+    assertEquals("From: Kurssit line: 45", true, kurssit.anna(0) == test1); 
+    try {
+    assertEquals("From: Kurssit line: 46", test1, kurssit.anna(3)); 
+    fail("Kurssit: 46 Did not throw IndexOutOfBoundsException");
+    } catch(IndexOutOfBoundsException _e_){ _e_.getMessage(); }
+    kurssit.lisaa(test1); assertEquals("From: Kurssit line: 48", 4, kurssit.getKpl()); 
+    kurssit.lisaa(test1); assertEquals("From: Kurssit line: 49", 5, kurssit.getKpl()); 
+    try {
+    kurssit.lisaa(test1); 
+    fail("Kurssit: 50 Did not throw SailoException");
+    } catch(SailoException _e_){ _e_.getMessage(); }
+  } // Generated by ComTest END
+}
\ No newline at end of file
diff --git a/mmkurssit/src/mmkurssit/test/MMKurssitTest.java b/mmkurssit/src/mmkurssit/test/MMKurssitTest.java
new file mode 100644
index 0000000..73f642a
--- /dev/null
+++ b/mmkurssit/src/mmkurssit/test/MMKurssitTest.java
@@ -0,0 +1,15 @@
+package mmkurssit.test;
+// Generated by ComTest BEGIN
+import static org.junit.Assert.*;
+import org.junit.*;
+import mmkurssit.*;
+// Generated by ComTest END
+
+/**
+ * Test class made by ComTest
+ * @version 2025.03.10 14:45:39 // Generated by ComTest
+ *
+ */
+@SuppressWarnings("all")
+public class MMKurssitTest {
+}
\ No newline at end of file
diff --git a/mmkurssit/src/mmkurssit/test/TapaamisetTest.java b/mmkurssit/src/mmkurssit/test/TapaamisetTest.java
new file mode 100644
index 0000000..7e32dbf
--- /dev/null
+++ b/mmkurssit/src/mmkurssit/test/TapaamisetTest.java
@@ -0,0 +1,15 @@
+package mmkurssit.test;
+// Generated by ComTest BEGIN
+import static org.junit.Assert.*;
+import org.junit.*;
+import mmkurssit.*;
+// Generated by ComTest END
+
+/**
+ * Test class made by ComTest
+ * @version 2025.03.10 14:45:17 // Generated by ComTest
+ *
+ */
+@SuppressWarnings("all")
+public class TapaamisetTest {
+}
\ No newline at end of file
-- 
GitLab