From 5961f14f6909cc29132d583075927d3b63256cdc Mon Sep 17 00:00:00 2001
From: Niemi Miikka Matias <miikka.m.niemi@student.jyu.fi>
Date: Mon, 24 Mar 2025 18:01:37 +0200
Subject: [PATCH] testeja niin saakutisti

---
 Ohj2HT/koko                             |   0
 Ohj2HT/lajit                            |   0
 Ohj2HT/src/Luokat/Reissu.java           | 113 ++++++++++++++++++++++--
 Ohj2HT/src/Luokat/Reissut.java          |  48 ++++++++++
 Ohj2HT/src/Luokat/test/ReissuTest.java  |  59 ++++++++++++-
 Ohj2HT/src/Luokat/test/ReissutTest.java |  37 +++++++-
 Ohj2HT/viehe                            |   0
 7 files changed, 247 insertions(+), 10 deletions(-)
 create mode 100644 Ohj2HT/koko
 create mode 100644 Ohj2HT/lajit
 create mode 100644 Ohj2HT/viehe

diff --git a/Ohj2HT/koko b/Ohj2HT/koko
new file mode 100644
index 0000000..e69de29
diff --git a/Ohj2HT/lajit b/Ohj2HT/lajit
new file mode 100644
index 0000000..e69de29
diff --git a/Ohj2HT/src/Luokat/Reissu.java b/Ohj2HT/src/Luokat/Reissu.java
index 9137317..fa6ade3 100644
--- a/Ohj2HT/src/Luokat/Reissu.java
+++ b/Ohj2HT/src/Luokat/Reissu.java
@@ -8,8 +8,8 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
- * Luokka yhden reissun esittämistä varten osaa muodostaa reissun joko suoraan tiedoston tiedoista tai attribuuteista
- * osaa myös muuttaa reissun tiedot tallennus muotoon
+ * Luokka yhden reissun esittämistä varten osaa muodostaa reissun joko suoraan tiedoston 
+ * tiedoista tai attribuuteista, sekä osaa myös muuttaa reissun tiedot tallennus muotoon.
  */
 public class Reissu {
 private LocalDate Pvm;
@@ -20,6 +20,9 @@ private String keli;
 private List<Saalis> saaliit;
 private boolean poistetaanko;
 
+/**
+ * Konstruktori reissun luomiseen annetuilla tiedoilla.
+ */
 	public Reissu(LocalDate Pvm, String sijainti, String keli, List<Saalis> saaliit, boolean poistetaanko) {
 		this.Pvm = Pvm;
 		this.reissunTag = SeuraavanReissunTag;
@@ -29,8 +32,33 @@ private boolean poistetaanko;
 		this.saaliit = saaliit;
 		this.poistetaanko = false;
 	}
+	 /**
+     * get metodit palauttavat halutun asian halutussa muodossa
+     * 
+     * testit gettereille
+    /**@example
+    * <pre name="test">
+    *  #import Luokat.*;
+    *  #import java.time.LocalDate;
+	*	#import java.util.ArrayList;
+	* 	#import java.util.List;
+
+	* 	#import org.junit.*;
 
-	
+		#import Luokat.Reissu;
+		#import Luokat.Saalis;
+    
+    * LocalDate pvm = LocalDate.of(2024, 4, 21);
+    * List<Saalis> saaliit = new ArrayList<>();
+    * Reissu r = new Reissu(pvm, "Helsinki", "aurinkoinen", saaliit, false);
+    * 
+    * r.getPaivamaara() === pvm;
+    * r.getSijainti() === "Helsinki";
+    * r.getpoistetaanko() === false;
+    * r.getSaaliit() === saaliit;
+    * </pre>
+    */
+    
     public int getTag() {
         return reissunTag;
     }
@@ -54,15 +82,40 @@ private boolean poistetaanko;
     public boolean getpoistetaanko() {
         return poistetaanko;
     }
+    
+    
+    /**
+     * asettaa reissun poistetaanko arvoksi true, jolloin sitä ei enään tarvita.
+     */
     public void poistetaan() {
     	poistetaanko = true;
     	
     }
 
     
+    /**
+     * Muuntaa päivämäärän merkkijonosta LocalDate-muotoon. 
+     * Tukee useita välimerkkejä ja yksinumeroisia päiviä/kuukausia.
+     * @param pvm: päivämäärä, joka halutaan muuttaa.
+     * @return LocalDate tai null, riippuen siitä oliko päivämäärä validi.
+     * 
+     * testi
+     /**@example
+     * <pre name="test">
+     * sToDate("12.43 Ã…() 2004") === null;
+     * sToDate("12.4.2004") === LocalDate.of(2004,4,12);
+     * sToDate(" 12    3,2004") === null;
+     * sToDate("12/4 2004") === LocalDate.of(2004,4,12);
+     * sToDate("12 4,2004") === LocalDate.of(2004,4,12);
+     * </pre>
+  
+     */
+    
     public static LocalDate sToDate(String pvm) {
     	DateTimeFormatter paivamaara = DateTimeFormatter.ofPattern("dd-MM-yyyy");
-    	pvm = pvm.replace('.', '-').replace(' ', '-').replace(',', '-');
+    	
+    	pvm = pvm.replace('.', '-').replace('/', '-').replace(',', '-').replace(' ', '-');
+    	pvm = pvm.trim().replaceAll("\\s+", "");
     	
     	String[] osat = pvm.split("-");
     	if (osat.length == 3) {
@@ -81,6 +134,15 @@ private boolean poistetaanko;
         }
     }
 
+    
+    /**
+     * Tarkistaa, onko annettu päivämäärä merkkijonona oikeassa muodossa.
+     * @param dateStr Tarkistettava päivämäärä
+     * @param formatter Käytettävä formatteri
+     * @return true jos validi, muuten false
+     */
+    
+   
     public static boolean onkoValid(String dateStr, DateTimeFormatter formatter) {
         try {
             LocalDate.parse(dateStr, formatter);
@@ -90,6 +152,22 @@ private boolean poistetaanko;
         }
     }
     
+    /**
+     * Konstruktori reissun luomiseen tiedostorivistä.
+     * @param tiedosto Yksi reissurivi tiedostosta
+     * 
+     * testit
+     /**@example
+     * <pre name="test">
+     * Reissu r = new Reissu("5|02.03.2024|Rovaniemi|kylmä");
+     * r.getTag() === 5;
+     * r.getPaivamaara() ===LocalDate.of(2024, 3, 2);
+     * r.getSijainti() === "Rovaniemi";
+     * r.getKeli() === "kylmä";
+     * r.getpoistetaanko() === false;
+     * </pre>
+     */
+    
     public Reissu (String tiedosto) {
     	String[] t = tiedosto.split("\\|"); 
     	this.Pvm = sToDate(t[1]);
@@ -100,18 +178,41 @@ private boolean poistetaanko;
         SeuraavanReissunTag = tagi+1;
         this.poistetaanko = false;
     }
+    
+    
+    /**
+     * Asettaa reissun saalislistan.
+     * @param saaliit Lista saaliista
+     */
+    
     public void setSaaliit(List<Saalis> saaliit) {
     	this.saaliit = saaliit;
     }
     
+    
+    /**
+     * Muuntaa reissun tiedot tallennusmuotoon (merkkijonoksi).
+     * @return tallennusmuotoinen merkkijono
+     /**@example
+     * <pre name="test">
+     * LocalDate pvm = LocalDate.of(2023, 5, 10);
+     * Reissu r = new Reissu(pvm, "Oulu", "selkeä", new ArrayList<>(), false);
+     * String tallennus = r.toString();
+     * tallennus.matches("\\d+\\|10\\.05\\.2023\\|Oulu\\|selkeä") === true;
+     *  
+     * </pre>
+     */
+    
+    
     public String toString() {
     	String tag = Integer.toString(reissunTag);
         String pvm = Pvm.format(DateTimeFormatter.ofPattern("dd-MM-yyyy")).replace('-', '.');
     	 return  tag + "|" + pvm + "|" + sijainti + "|" + keli;
     }
-   
     
-    //helppo testi
+
+    
+    //nopea testi mainilla
     public static void main(String[] args) {
     	
     	Reissu testi = new Reissu( sToDate("01.12.2025"), "Jyväskylä", "lumisade", new ArrayList<>(), false);
diff --git a/Ohj2HT/src/Luokat/Reissut.java b/Ohj2HT/src/Luokat/Reissut.java
index 6535b5b..309704b 100644
--- a/Ohj2HT/src/Luokat/Reissut.java
+++ b/Ohj2HT/src/Luokat/Reissut.java
@@ -91,6 +91,12 @@ public class Reissut {
 	}
 	
 	
+	/**
+	 * käy reissut läpi ja katsoo onko missään yksittäisessä reissussa poistetaanko 
+	 * arvo = true. Tällöin reissu poistetaan
+	 */
+	
+	
 	public void removeReissu() {
 		   Iterator<Reissu> iterator = reissut.iterator();
 		    while (iterator.hasNext()) {
@@ -101,7 +107,44 @@ public class Reissut {
 		        }
 		    }
 	}
+	
+	/* testit
+	/**@example
+	* <pre name="test">
+	* 	#import java.time.LocalDate;
+		#import java.util.ArrayList;
+		#import java.util.List;
+
+		#import org.junit.Before;
+		#import org.junit.Test;
 
+		#import Luokat.Reissu;
+		#import Luokat.Reissut;
+		#import Luokat.Tulkki;
+		
+	* 
+	* 		Tulkki lajit = new Tulkki(System.getProperty("user.dir") + "/../lajit.dat");
+			Tulkki viehe = new Tulkki(System.getProperty("user.dir") + "/../vieheTyypit.dat");
+			Tulkki koko = new Tulkki(System.getProperty("user.dir") + "/../koot.dat");
+			
+	*    Reissut test = new Reissut(lajit, koko, viehe); 
+	*    test.getReissut().clear();
+	*    
+	*    Reissu t0 = new Reissu(Reissu.sToDate("1.12.2323"), "ka", "pilvi", new ArrayList<>(), false); 
+	*    Reissu t1 = new Reissu(Reissu.sToDate("12.12.2023"), "jk", "sade", new ArrayList<>(), false); 
+	*    Reissu t2 = new Reissu(Reissu.sToDate("12.12.1223"), "sk", "aurinko", new ArrayList<>(), false); 
+	*    Reissu t3 = new Reissu(Reissu.sToDate("15.11.2024"), "ka", "pilvi", new ArrayList<>(), false); 
+	*    test.lisaaListaan(t1); 
+	*    test.lisaaListaan(t2); 
+	*    test.lisaaListaan(t3); 
+	*    test.lisaaListaan(t0);
+	*    test.getReissut().size() === 4;
+	*    t1.poistetaan();
+	*    
+	*    test.removeReissu();
+	*     test.getReissut().size() === 3;
+	* </pre>
+	*/
 	    // Testi
 	    public static void main(String[] args) {
 			Tulkki lajit = new Tulkki(System.getProperty("user.dir") + "/../lajit.dat");
@@ -116,6 +159,7 @@ public class Reissut {
 
 	        reissut.lisaaListaan(t1); reissut.lisaaListaan(t2); reissut.lisaaListaan(t3); reissut.lisaaListaan(t0);
 	        
+	        
 	        for (Reissu t: reissut.getReissut()) {
         		System.out.println("ennen " + t.getPvmString());
         	}
@@ -148,4 +192,8 @@ public class Reissut {
 	}
 //todo:
 // tallenna()
+	
+	
 }
+
+
diff --git a/Ohj2HT/src/Luokat/test/ReissuTest.java b/Ohj2HT/src/Luokat/test/ReissuTest.java
index 75775ba..130842b 100644
--- a/Ohj2HT/src/Luokat/test/ReissuTest.java
+++ b/Ohj2HT/src/Luokat/test/ReissuTest.java
@@ -1,17 +1,72 @@
 package Luokat.test;
 // Generated by ComTest BEGIN
-import static org.junit.Assert.*;
+import java.util.ArrayList;
+import java.util.List;
 import org.junit.*;
+import Luokat.Reissu;
+import Luokat.Saalis;
+import static org.junit.Assert.*;
 import Luokat.*;
+import java.time.LocalDate;
+import static Luokat.Reissu.*;
 // Generated by ComTest END
 
 /**
  * Test class made by ComTest
- * @version 2025.03.19 08:54:17 // Generated by ComTest
+ * @version 2025.03.24 17:03:45 // Generated by ComTest
  *
  */
 @SuppressWarnings({ "all" })
 public class ReissuTest {
 
 
+
+  // Generated by ComTest BEGIN
+  /** testGetTag40 */
+  @Test
+  public void testGetTag40() {    // Reissu: 40
+    LocalDate pvm = LocalDate.of(2024, 4, 21); 
+    List<Saalis> saaliit = new ArrayList<>(); 
+    Reissu r = new Reissu(pvm, "Helsinki", "aurinkoinen", saaliit, false); 
+    assertEquals("From: Reissu line: 55", pvm, r.getPaivamaara()); 
+    assertEquals("From: Reissu line: 56", "Helsinki", r.getSijainti()); 
+    assertEquals("From: Reissu line: 57", false, r.getpoistetaanko()); 
+    assertEquals("From: Reissu line: 58", saaliit, r.getSaaliit()); 
+  } // Generated by ComTest END
+
+
+  // Generated by ComTest BEGIN
+  /** testSToDate104 */
+  @Test
+  public void testSToDate104() {    // Reissu: 104
+    assertEquals("From: Reissu line: 105", null, sToDate("12.43 Ã…() 2004")); 
+    assertEquals("From: Reissu line: 106", LocalDate.of(2004,4,12), sToDate("12.4.2004")); 
+    assertEquals("From: Reissu line: 107", null, sToDate(" 12    3,2004")); 
+    assertEquals("From: Reissu line: 108", LocalDate.of(2004,4,12), sToDate("12/4 2004")); 
+    assertEquals("From: Reissu line: 109", LocalDate.of(2004,4,12), sToDate("12 4,2004")); 
+  } // Generated by ComTest END
+
+
+  // Generated by ComTest BEGIN
+  /** testReissu161 */
+  @Test
+  public void testReissu161() {    // Reissu: 161
+    Reissu r = new Reissu("5|02.03.2024|Rovaniemi|kylmä"); 
+    assertEquals("From: Reissu line: 163", 5, r.getTag()); 
+    assertEquals("From: Reissu line: 164", LocalDate.of(2024, 3, 2), r.getPaivamaara()); 
+    assertEquals("From: Reissu line: 165", "Rovaniemi", r.getSijainti()); 
+    assertEquals("From: Reissu line: 166", "kylmä", r.getKeli()); 
+    assertEquals("From: Reissu line: 167", false, r.getpoistetaanko()); 
+  } // Generated by ComTest END
+
+
+  // Generated by ComTest BEGIN
+  /** testToString197 */
+  @Test
+  public void testToString197() {    // Reissu: 197
+    LocalDate pvm = LocalDate.of(2023, 5, 10); 
+    Reissu r = new Reissu(pvm, "Oulu", "selkeä", new ArrayList<>(), false); 
+    String tallennus = r.toString(); 
+    assertEquals("From: Reissu line: 201", true, tallennus.matches("\\d+\\|10\\.05\\.2023\\|Oulu\\|selkeä")); 
+  } // Generated by ComTest END
 }
\ No newline at end of file
diff --git a/Ohj2HT/src/Luokat/test/ReissutTest.java b/Ohj2HT/src/Luokat/test/ReissutTest.java
index 6485584..5bc320d 100644
--- a/Ohj2HT/src/Luokat/test/ReissutTest.java
+++ b/Ohj2HT/src/Luokat/test/ReissutTest.java
@@ -1,15 +1,48 @@
 package Luokat.test;
 // Generated by ComTest BEGIN
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Before;
+import org.junit.Test;
+import Luokat.Reissu;
+import Luokat.Reissut;
+import Luokat.Tulkki;
 import static org.junit.Assert.*;
 import org.junit.*;
-import Luokat.*;
+import static Luokat.Reissut.*;
 // Generated by ComTest END
 
 /**
  * Test class made by ComTest
- * @version 2025.02.24 13:03:17 // Generated by ComTest
+ * @version 2025.03.24 18:01:11 // Generated by ComTest
  *
  */
 @SuppressWarnings({ "all" })
 public class ReissutTest {
+
+
+
+  // Generated by ComTest BEGIN
+  /** testMain113 */
+  @Test
+  public void testMain113() {    // Reissut: 113
+    Tulkki lajit = new Tulkki(System.getProperty("user.dir") + "/../lajit.dat"); 
+    Tulkki viehe = new Tulkki(System.getProperty("user.dir") + "/../vieheTyypit.dat"); 
+    Tulkki koko = new Tulkki(System.getProperty("user.dir") + "/../koot.dat"); 
+    Reissut test = new Reissut(lajit, koko, viehe); 
+    test.getReissut().clear(); 
+    Reissu t0 = new Reissu(Reissu.sToDate("1.12.2323"), "ka", "pilvi", new ArrayList<>(), false); 
+    Reissu t1 = new Reissu(Reissu.sToDate("12.12.2023"), "jk", "sade", new ArrayList<>(), false); 
+    Reissu t2 = new Reissu(Reissu.sToDate("12.12.1223"), "sk", "aurinko", new ArrayList<>(), false); 
+    Reissu t3 = new Reissu(Reissu.sToDate("15.11.2024"), "ka", "pilvi", new ArrayList<>(), false); 
+    test.lisaaListaan(t1); 
+    test.lisaaListaan(t2); 
+    test.lisaaListaan(t3); 
+    test.lisaaListaan(t0); 
+    assertEquals("From: Reissut line: 141", 4, test.getReissut().size()); 
+    t1.poistetaan(); 
+    test.removeReissu(); 
+    assertEquals("From: Reissut line: 145", 3, test.getReissut().size()); 
+  } // Generated by ComTest END
 }
\ No newline at end of file
diff --git a/Ohj2HT/viehe b/Ohj2HT/viehe
new file mode 100644
index 0000000..e69de29
-- 
GitLab