From 47ddd172239744e4c2b038777762afa11db1adbc Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 5 Apr 2022 12:00:40 +0200 Subject: [PATCH] 1.4.22 CSV export/import --- src/model/Angestellter.java | 18 +- src/model/Arzt.java | 17 +- src/model/Freelancer.java | 36 ++- src/model/Mitarbeiter.java | 375 +++++++++++++++++----------- src/model/Personalbuero.java | 58 ++++- src/test/TestExport.java | 43 ++++ src/test/TestImport.java | 64 +++++ src/test/TestPersonalbueroMain.java | 27 -- 8 files changed, 458 insertions(+), 180 deletions(-) create mode 100644 src/test/TestExport.java create mode 100644 src/test/TestImport.java diff --git a/src/model/Angestellter.java b/src/model/Angestellter.java index 7f0fef0..fb0ec83 100644 --- a/src/model/Angestellter.java +++ b/src/model/Angestellter.java @@ -5,10 +5,13 @@ import java.time.Year; * Klasse Angestellter * * @author (WES) - * @version (2022-03-18) + * @version (2022-04-01) * * umgestellt auf Exception-Handling + * mit Angestellter(String[]); */ + +// mit auskommentierter toStringCsv() public class Angestellter extends Mitarbeiter implements GehaltBerechenbar { @@ -24,6 +27,11 @@ public class Angestellter extends Mitarbeiter implements GehaltBerechenbar super(name, gesch, gebJahr, eintrJahr); } + public Angestellter(String[] zeilenTeile) throws PersonalException + { + super(zeilenTeile); + } + @Override // auf Deutsch "ueberschreiben" der Methode toString() aus der Superklasse Mitarbeiter public String toString() { @@ -36,5 +44,13 @@ public class Angestellter extends Mitarbeiter implements GehaltBerechenbar { return 1500f + 50f*berechneDienstalter(); } + + // -------------------------- toString ------------------------ + +// public String toStringCsv() +// { +// return super.toStringCsv(); +// // es gibt keine weiteren Attribute +// } } diff --git a/src/model/Arzt.java b/src/model/Arzt.java index 1f123ff..8b71f1e 100644 --- a/src/model/Arzt.java +++ b/src/model/Arzt.java @@ -5,9 +5,11 @@ import java.time.Year; * Klasse Arzt * * @author (WES) - * @version (2022-03-18) + * @version (2022-03-31) * * umgestellt auf Exception-Handling + * mit freiwilliger Uebung toStringCsv() + * mit freiwilliger Uebung public Arzt (String[] zeilenTeile) */ public class Arzt extends Mitarbeiter implements GehaltBerechenbar { @@ -15,6 +17,9 @@ public class Arzt extends Mitarbeiter implements GehaltBerechenbar private int wochenStunden; private float fixum; + // FUE + // public Arzt (String[] zeilenTeile) // TODO + public Arzt(String name, char gesch, Year gebJahr, Year eintrJahr, int wochenStunden, float fixum) throws PersonalException { super(name, gesch, gebJahr, eintrJahr); @@ -56,6 +61,8 @@ public class Arzt extends Mitarbeiter implements GehaltBerechenbar return fixum; } + // -------------------------- print / toString / toStringCsv ------------ + // public void printInfo() // zum Testen // { // System.out.println(this); @@ -69,4 +76,12 @@ public class Arzt extends Mitarbeiter implements GehaltBerechenbar ", Fixum: " + fixum; } + public String toStringCsv() + { + String sep = ";"; + // Arzt;Wolfgang;m;1964;2022 ; 40 ; 1200.0 + return super.toStringCsv() +sep+wochenStunden+sep+fixum; + + } + } diff --git a/src/model/Freelancer.java b/src/model/Freelancer.java index 3b9ee71..0129a36 100644 --- a/src/model/Freelancer.java +++ b/src/model/Freelancer.java @@ -1,8 +1,9 @@ package model; -// 2022-03-22 4BAIF +// 2022-04-01 4BAIF // umgestellt auf Exception-Handling // mit serialVersionUID fuer Serialisierung +// mit toStringCsv() import java.time.Year; public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, GehaltBerechenbar @@ -28,6 +29,30 @@ public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, Gehal setStundenSatz(stundenSatz); setStunden(stunden); } + + public Freelancer (String[] zeilenTeile) throws PersonalException + { + super(zeilenTeile); + // Freelancer;Anna;w;1976;2002;"10";"100.0" + // [5] [6] im String-Array zeilenTeile + // Achtung: ArrayIndexOutOfBoundsException + // beim Parsen: NumberFormatException + try + { + setStunden( Integer.parseInt(zeilenTeile[5].trim()) ); // int + setStundenSatz( Float.parseFloat(zeilenTeile[6].trim()) ); // float + } + catch(ArrayIndexOutOfBoundsException e) + { + throw new PersonalException("Array-Fehler bei Freelancer(zeilenTeile): " + + e.getMessage()); + } + catch(NumberFormatException e) + { + throw new PersonalException("Zahlenumwandlungs-Fehler (gebJahr oder eintrJahr) bei Freelancer(zeilenTeile): " + + e.getMessage()); + } + } public int getStunden() { @@ -99,6 +124,15 @@ public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, Gehal return "Fuer 15 Jahre Mitarbeit bei einem Personalbuero erhaelt der Freelancer ein \"Gehalt\", fuer 20 Jahre zwei \"Gehaelter\"\" als Praemie."; } + // ---------------------------- toString / print ---------------------------- + + public String toStringCsv() + { + char sep = ';'; + + return super.toStringCsv()+sep+stunden+sep+stundenSatz; + } + public String toString() { return new StringBuffer().append("Freelancer "). diff --git a/src/model/Mitarbeiter.java b/src/model/Mitarbeiter.java index 2925ca6..5af6b84 100644 --- a/src/model/Mitarbeiter.java +++ b/src/model/Mitarbeiter.java @@ -1,167 +1,230 @@ package model; import java.io.Serializable; - -// 2022-03-21 4BAIF -// Klasse abstract -// Methode berechneGehalt() abstract -// 2022-01-26: Debugging toString() - mit ?-Operator gefixt -// Interface Comparable - -// Umstellung auf EH - import java.time.Year; import java.util.Comparator; -public abstract class Mitarbeiter implements Comparable, Serializable +//2022-03-31 4BAIF +//Klasse abstract +//Methode berechneGehalt() abstract +//2022-01-26: Debugging toString() - mit ?-Operator gefixt +//Interface Comparable + +//Umstellung auf EH + +// neuer Konstruktor fuer importMitarbeiter +// Entwicklungsstand + +public abstract class Mitarbeiter implements Comparable , Serializable //public class Mitarbeiter implements Comparable // zum Testen { private static final long serialVersionUID = 2022_03_22__13_15L; private String name; - private Year gebJahr, eintrJahr; - private char gesch; + private Year gebJahr, eintrJahr; + private char gesch; - public Mitarbeiter() throws PersonalException // zum Testen - { - setName("Anna"); - setGesch('w'); - setGebJahr(Year.of(2001)); - setEintrJahr(Year.now()); - } + public Mitarbeiter() throws PersonalException // zum Testen + { + setName("Anna"); + setGesch('w'); + setGebJahr(Year.of(2001)); + setEintrJahr(Year.now()); + } - public Mitarbeiter(String name, char gesch, Year gebJahr, Year eintrJahr) throws PersonalException { - setName(name); - setGesch(gesch); - setGebJahr(gebJahr); - setEintrJahr(eintrJahr); - } + public Mitarbeiter(String name, char gesch, Year gebJahr, Year eintrJahr) throws PersonalException + { + setName(name); + setGesch(gesch); + setGebJahr(gebJahr); + setEintrJahr(eintrJahr); + } + + public Mitarbeiter(String[] zeilenTeile) throws PersonalException + { + if (zeilenTeile != null) + { +// setName(); +// setGesch(); +// setEintrJahr(); +// setGebJahr(); + + setAllFields(zeilenTeile); + } + else + throw new PersonalException("Fehler bei Mitarbeiter(String[]): null-Referenz erhalten"); + } - // ------------------------------------ getter ------------------------ - public String getName() { - return name; - } + //------------------------------------ getter ------------------------ + public String getName() + { + return name; + } - public char getGesch() { - return gesch; - } + public char getGesch() + { + return gesch; + } - public Year getGebJahr() { - return gebJahr; - } + public Year getGebJahr() + { + return gebJahr; + } - public Year getEintrJahr() { - return eintrJahr; - } + public Year getEintrJahr() + { + return eintrJahr; + } + //------------------------------------ setter ------------------------ + + public void setName(String name) throws PersonalException + { + if (name != null) + if (name.length() >= 2) + this.name = name; + else + throw new PersonalException("Falscher Parameterwert fuer setName("+name+") !!!"); + else + throw new PersonalException("null-Referenz fuer setName(String name) !!!"); + } - // ------------------------------------ setter ------------------------ - public void setName(String name) throws PersonalException { - if (name != null) - if (name.length() >= 2) - this.name = name; - else - throw new PersonalException("Falscher Parameterwert fuer setName(" + name + ") !!!"); - else - throw new PersonalException("null-Referenz fuer setName(String name) !!!"); - } + public void setGesch(char gesch) throws PersonalException + { + if (gesch == 'm' || gesch == 'M' || gesch == 'w' || gesch == 'W' || gesch == 'x' || gesch == 'X' ) + this.gesch = Character.toLowerCase(gesch); // Character ist "Wrapper"-Klasse von char + else + throw new PersonalException("Falscher Parameterwert fuer setGesch(" + gesch + ") !!!"); + } - public void setGesch(char gesch) throws PersonalException { - if (gesch == 'm' || gesch == 'M' || gesch == 'w' || gesch == 'W' || gesch == 'x' || gesch == 'X') - this.gesch = Character.toLowerCase(gesch); // Character ist "Wrapper"-Klasse von char - else - throw new PersonalException("Falscher Parameterwert fuer setGesch(" + gesch + ") !!!"); - } + public void setGebJahr(Year gebJahr) throws PersonalException + { + //int aktJahr = Year.now().getValue(); + Year aktYear = Year.now(); + if (gebJahr != null) + // if (gebJahr.getValue() >= aktJahr-100 && gebJahr.getValue() <= aktJahr ) + if ( !gebJahr.isBefore(aktYear.minusYears(100)) && !gebJahr.isAfter(aktYear) ) + this.gebJahr = gebJahr; + else + throw new PersonalException("Falscher Parameterwert fuer setGebJahr("+gebJahr+") !!!"); + else + throw new PersonalException("null-Referenz fuer setGebJahr(Year gebJahr) !!!"); + } - public void setGebJahr(Year gebJahr) throws PersonalException { - // int aktJahr = Year.now().getValue(); - Year aktYear = Year.now(); - if (gebJahr != null) - // if (gebJahr.getValue() >= aktJahr-100 && gebJahr.getValue() <= aktJahr ) - if (!gebJahr.isBefore(aktYear.minusYears(100)) && !gebJahr.isAfter(aktYear)) - this.gebJahr = gebJahr; - else - throw new PersonalException("Falscher Parameterwert fuer setGebJahr(" + gebJahr + ") !!!"); - else - throw new PersonalException("null-Referenz fuer setGebJahr(Year gebJahr) !!!"); - } + public void setEintrJahr(Year eintrJahr) throws PersonalException + { + if (eintrJahr != null) + if (gebJahr != null) + { + int aktJahr = Year.now().getValue(); + if (eintrJahr.getValue() >= gebJahr.getValue()+15) + if (eintrJahr.getValue() <= aktJahr ) + this.eintrJahr = eintrJahr; + else + throw new PersonalException("Falscher Parameterwert fuer setEintrJahr("+eintrJahr+") !!!"); + else + throw new PersonalException("Fehler bei setEintrJahr("+eintrJahr+") -> Person ist zu jung ("+berechneAlter()+")!!!"); + } + else + throw new PersonalException("null-Referenz bei gebJahr -> eintrJahr kann nicht geprueft werden !!!"); + else + throw new PersonalException("null-Referenz fuer setEintrJahr(Year eintrJahr) !!!"); + } + + // Entwicklungsstand TODO + private void setAllFields(String[] zeilenTeile) throws PersonalException { + + // beim Arbeiten mit Array kann es eine + // ArrayIndexOutOfBoundsException geben + try { + //Angestellter;Alfred; m; 1977; 2022 + // [0] [1] [2] [3] [4] im Array zeilenTeile + setName(zeilenTeile[1].trim()); // trim(): whitespaces "vorne und hinten" entfernen + setGesch(zeilenTeile[2].trim().charAt(0)); // z.B. "m" -> 'm' + // Integer.parseInt(String) + // throws NumberFormatException bei Integer.parseInt + setGebJahr( Year.of(Integer.parseInt(zeilenTeile[3].trim())) ); // "1977" + // throws NumberFormatException bei Integer.parseInt + setEintrJahr(Year.of(Integer.parseInt(zeilenTeile[4].trim()))); // 2022 + } + catch(ArrayIndexOutOfBoundsException e) + { + throw new PersonalException("Array-Fehler bei setAllFields(): " + + e.getMessage()); + } + catch (StringIndexOutOfBoundsException e) + { + throw new PersonalException("Zeichenumwandlungsfehler-Fehler (gesch) bei setAllFields(): " + + e.getMessage()); + } + catch(NumberFormatException e) + { + throw new PersonalException("Zahlenumwandlungs-Fehler (gebJahr oder eintrJahr) bei setAllFields(): " + + e.getMessage()); + } + } + //-------------------------------------- weitere ----------------------- + public int berechneAlter() + { + // return 2021 - gebJahr; // ganz schlecht... - public void setEintrJahr(Year eintrJahr) throws PersonalException { - if (eintrJahr != null) - if (gebJahr != null) { - int aktJahr = Year.now().getValue(); - if (eintrJahr.getValue() >= gebJahr.getValue() + 15) - if (eintrJahr.getValue() <= aktJahr) - this.eintrJahr = eintrJahr; - else - throw new PersonalException("Falscher Parameterwert fuer setEintrJahr(" + eintrJahr + ") !!!"); - else - throw new PersonalException("Fehler bei setEintrJahr(" + eintrJahr + ") -> Person ist zu jung (" - + berechneAlter() + ")!!!"); - } else - throw new PersonalException("null-Referenz bei gebJahr -> eintrJahr kann nicht geprueft werden !!!"); - else - throw new PersonalException("null-Referenz fuer setEintrJahr(Year eintrJahr) !!!"); - } + // Bessere Loesung in Einzelschritten: + // Year datum = Year.now(); + // int aktJahr = datum.getValue(); + // int alter = aktJahr - gebJahr; + // return alter; - // -------------------------------------- weitere ----------------------- - public int berechneAlter() { - // return 2021 - gebJahr; // ganz schlecht... + // Bessere Loesung in einem Schritt: + return (gebJahr != null?Year.now().getValue() - gebJahr.getValue():-99); // Fehlercode + } - // Bessere Loesung in Einzelschritten: - // Year datum = Year.now(); - // int aktJahr = datum.getValue(); - // int alter = aktJahr - gebJahr; - // return alter; + public int berechneDienstalter() + { + return (eintrJahr != null?Year.now().getValue() - eintrJahr.getValue():-99); // Fehlercode + } - // Bessere Loesung in einem Schritt: - return (gebJahr != null ? Year.now().getValue() - gebJahr.getValue() : -99); // Fehlercode - } - - public int berechneDienstalter() { - return (eintrJahr != null ? Year.now().getValue() - eintrJahr.getValue() : -99); // Fehlercode - } - - // public float berechneGehalt() - // { - // return 1500f + 50f*berechneDienstalter(); - // } + // public float berechneGehalt() + // { + // return 1500f + 50f*berechneDienstalter(); + // } // public float berechneGehalt() // zum UMSTELLEN und TESTEN // { // return 0f; // } - - public abstract float berechneGehalt(); // alle Subklassen - // MUESSEN diese Methode implementieren - // Ausnahme: diese Subklasse ist auch abstrakt - - // public abstract int berechneUrlaubsanspruch() // Beispiel fuer einen - // Anwendungsfall einer abstrakten Methode - // ; - - // --------------------------------- compareTo ----------------------------- + + public abstract float berechneGehalt(); // alle Subklassen + // MUESSEN diese Methode implementieren + // Ausnahme: diese Subklasse ist auch abstrakt + + // public abstract int berechneUrlaubsanspruch() // Beispiel fuer einen + // Anwendungsfall einer abstrakten Methode + // ; + + // --------------------------------- compareTo ----------------------------- @Override public int compareTo(Mitarbeiter o) { // "natuerliche" Reihenfolge von Gehalt - if (o != null) { + if (o != null) + { if (berechneGehalt() > o.berechneGehalt()) return 1; - else if (berechneGehalt() < o.berechneGehalt()) - return -1; else - return 0; - } else // Annahme bis zum ExceptionHandling, dann NullPointerException + if (berechneGehalt() < o.berechneGehalt()) + return -1; + else + return 0; + } + else // Annahme bis zum ExceptionHandling, dann NullPointerException return 1; } - - // ----------------------------------- innere Klasse - // -------------------------------- - + + // ----------------------------------- innere Klasse -------------------------------- + public static class AlterComparator implements Comparator { @Override public int compare(Mitarbeiter o1, Mitarbeiter o2) { - + if (o1 != null && o2 != null) if (o1.berechneAlter() > o2.berechneAlter()) return 1; @@ -172,23 +235,53 @@ public abstract class Mitarbeiter implements Comparable, Serializab else // o1 == null || o2 == null return 1; } - } + } + + // ------------------------------------ toString() / print -------------------------------------- + public String toString() + { + String geschlecht; + switch(gesch) + { + case 'm': + case 'M': geschlecht = "maennlich"; break; + case 'w': + case 'W': geschlecht = "weiblich"; break; + case 'x': + case 'X': geschlecht = "divers"; break; + default : geschlecht = "unbekannt"; - public void print() { - System.out.println(this); // System.out.println(toString()) - } - - public String toStringCsv() { - char sep = ';'; // Delimiter - - StringBuilder sb = new StringBuilder(); - - sb.append(getClass().getSimpleName()).append(sep); - sb.append(name).append(sep); - sb.append(gesch).append(sep); - sb.append(gebJahr).append(sep); - sb.append(eintrJahr).append(sep); - - return sb.toString(); - } + } + return "Name: " + name+ + ", Gesch.: " + geschlecht+ + ", Geb.Jahr: " + (gebJahr != null?gebJahr.getValue():"keines vorhanden")+ + ", Alter: " + berechneAlter()+ + ", Eintr.Jahr: " + (eintrJahr != null?eintrJahr.getValue():"keines vorhanden")+ + ", Dienstalter: "+ berechneDienstalter() + + ", Gehalt: " + berechneGehalt(); + } + + public void print() + { + System.out.println(this); //System.out.println(toString()) + } + + public String toStringCsv() + { + char sep = ';'; // "Trennzeichen" zwischen den Attribut-Werten + + StringBuilder sb = new StringBuilder(); + + sb.append(getClass().getSimpleName()).append(sep); // Typ bzw. Klassenbezeichnung + sb.append(name).append(sep); // name + sb.append(gesch).append(sep); // gesch + sb.append(gebJahr).append(sep); // gebJahr + sb.append(eintrJahr); // .append(sep); // eintrJahr + + return (sb.toString()); + } } + + + + diff --git a/src/model/Personalbuero.java b/src/model/Personalbuero.java index 9b6b444..cded53e 100644 --- a/src/model/Personalbuero.java +++ b/src/model/Personalbuero.java @@ -1,15 +1,21 @@ package model; +import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; -// 2022-03-25 4BAIF +// 2022-04-01 4BAIF // Umgestellt auf ArrayList // mit public float berechneDurchnittsalter() @@ -43,10 +49,9 @@ import java.io.ObjectOutputStream; // Textfile Speichern: // exportMitarbeiter -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; +// 2022-03-29 exportMitarbeiterCsv + +// 2022-04-01 importMitarbeiterCsc Vorbereitung public class Personalbuero { private ArrayList mitarbeiter; // eine ArrayList ist "getypt" @@ -400,12 +405,47 @@ public class Personalbuero { try (BufferedWriter bw = new BufferedWriter(new FileWriter(strPfadName))) { StringBuilder sb = new StringBuilder(100000); - for (Mitarbeiter mit : mitarbeiter) { - sb.append(mit.toStringCsv()).append(nLn); - } + for (Mitarbeiter mit : mitarbeiter) + sb.append(mit.toStringCsv()).append(nLn); // .append("\n"); bw.write(sb.toString()); } catch (IOException e) { - throw new PersonalException("Eingabe/Ausgabe-Fehler bei exportMitarbeiter()" + e.getMessage()); + throw new PersonalException("Eingabe/Ausgabe-Fehler bei exportMitarbeiterCsv()" + e.getMessage()); + } + } + + public void importMitarbeiterCsv() throws PersonalException // TODO + { + String fSep = System.getProperty("file.separator"); + String strPfadName = "c:" + fSep + "scratch" + fSep + "mitarbeiter.csv"; + + try (BufferedReader br = new BufferedReader(new FileReader(strPfadName))) { + String zeile; + String[] zeilenTeile; + String sep = ";"; // erwartetes Trennzeichen in der csv-Datei + + // Muster: "Vorauslesen" + zeile = br.readLine(); // wenn keine Zeile gefunden, dann return null + + while (zeile != null) { + zeilenTeile = zeile.trim().split(sep); + + // Welcher Konstruktor wird aufgerufen? + // Wie ermitteln wir den Mitarbeiter-Typ? + + if (zeile.contains("Angestellter")) { + aufnehmen(new Angestellter(zeilenTeile)); + } else + ; // if ((zeile.contains("Freelancer")) + // else + // if ((zeile.contains("Arzt")) + // else unbekannter Mitarbeiter-Typ + zeile = br.readLine(); + } + + } catch (FileNotFoundException e) { + throw new PersonalException("Datei-Fehler bei importMitarbeiterCsv(): " + e.getMessage()); + } catch (IOException e) { + throw new PersonalException("Eingabe/Ausgabe-Fehler bei importMitarbeiterCsv(): " + e.getMessage()); } } diff --git a/src/test/TestExport.java b/src/test/TestExport.java new file mode 100644 index 0000000..35232ca --- /dev/null +++ b/src/test/TestExport.java @@ -0,0 +1,43 @@ +package test; + +import java.time.Year; +import model.Angestellter; +import model.Arzt; +import model.Freelancer; +import model.PersonalException; +import model.Personalbuero; + +// 2022-03-31 um Arzt erweitert + +public class TestExport +{ + public static void main(String[] args) + { + String nLn = System.getProperty("line.separator"); + + System.out.println("+++++++++++++++++++++++ testExportCsvMitarbeiter +++++++++++++++++++++++++\n"); + try { + Personalbuero pb = new Personalbuero(); + + Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now()); + pb.aufnehmen(a1); + + Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10); + pb.aufnehmen(f2); + + Arzt ar1 = new Arzt("Wolfgang", 'm', Year.of(1964), Year.now(), 40, 1200f); + pb.aufnehmen(ar1); + + System.out.println(pb); // Alfred, Anna, Wolfgang + System.out.println(); + + pb.exportMitarbeiterCsv(); + System.out.println("exportMitarbeiterCsv() wurde ausgefuehrt"); + } + catch (PersonalException e) + { + System.out.println("!!! Fehler bei TestExport !!!" +nLn+ e.getMessage()); + } + + } +} diff --git a/src/test/TestImport.java b/src/test/TestImport.java new file mode 100644 index 0000000..386ce56 --- /dev/null +++ b/src/test/TestImport.java @@ -0,0 +1,64 @@ +package test; + +import java.time.Year; +import model.Angestellter; +import model.Freelancer; +import model.PersonalException; +import model.Personalbuero; + +// 2022-04-01 + +public class TestImport +{ + public static void main(String[] args) + { + String nLn = System.getProperty("line.separator"); + + try + { + Personalbuero pb = new Personalbuero(); + pb.aufnehmen(new Angestellter("Hans", 'x', Year.of(1965), Year.of(1985))); + System.out.println(pb); + System.out.println(); + + // zeilenTeile-Konstruktoren testen + // TODO Freelancer + +// pb.aufnehmen(new Angestellter(new String[] {})); // Array-Fehler: Index 1 out of bounds for length 0 +// pb.aufnehmen(new Angestellter(new String[] {"", "", "", "",""})); // Fehler: falscher Parameterwert name +// pb.aufnehmen(new Angestellter(new String[] {"", "Hannes", "", "",""})); // Fehler: falscher Parameterwert gesch +// pb.aufnehmen(new Angestellter(new String[] {"", "Hannes", "m", "neunzehnhundertfuenfundsechzig",""})); // Fehler: falscher Paramterwert gebJahr +// pb.aufnehmen(new Angestellter(new String[] {"", "Hannes", "m", "1965","neunzehnhundertfuenfundachzig"})); // Fehler: falscher Paramterwert eintrJahr + pb.aufnehmen(new Angestellter(new String[] {"Angestellter", "Hannes", "m", "1965","1985"})); + + System.out.println(pb); // Hans, Hannes + System.out.println(); + +// System.out.println("TODO: Personalbuero.importMitarbeiterCsv() ist noch zu implementieren!!!"); // TODO + pb.importMitarbeiterCsv(); + System.out.println(pb); // Hans, Hannes, Alfred, Anna, Wolfgang + System.out.println(); + + try { + Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10); + pb.aufnehmen(f2); // Fehler schon vorhanden + } + catch (PersonalException e) { + System.out.println("!!! Fehler bei TestImport !!!" +nLn+ e.getMessage()); + System.out.println(); + } + + System.out.println(pb); // Hans, Hannes, Alfred, Anna, Wolfgang + System.out.println(); + + Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now()); + pb.aufnehmen(a1); // Fehler schon vorhanden + + } + catch (PersonalException e) + { + System.out.println("!!! Fehler bei TestImport !!!" +nLn+ e.getMessage()); + } + + } +} diff --git a/src/test/TestPersonalbueroMain.java b/src/test/TestPersonalbueroMain.java index 734a883..c5d900a 100644 --- a/src/test/TestPersonalbueroMain.java +++ b/src/test/TestPersonalbueroMain.java @@ -36,8 +36,6 @@ public class TestPersonalbueroMain { testLoadMitarbeiter(); testExportMitarbeiter(); - - testExport(); } catch (Exception e) { System.out.println("TestPersonalbueroMain: ein unerwarteter Ausnahme-Fehler ist aufgetreten"); @@ -46,31 +44,6 @@ public class TestPersonalbueroMain { } } - private static void testExport() { - String nLn = System.getProperty("line.separator"); - - System.out.println("+++++++++++++++++++++++ testExportCsvMitarbeiter +++++++++++++++++++++++++\n"); - try { - Personalbuero pb = new Personalbuero(); - - Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now()); - pb.aufnehmen(a1); - - Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10); - pb.aufnehmen(f2); - - System.out.println(pb); // Alfred, Anna - System.out.println(); - - pb.exportMitarbeiterCsv(); - System.out.println("exportMitarbeiterCsv() wurde ausgefuehrt"); - } - catch (PersonalException e) - { - System.out.println("!!! Fehler bei TestExport !!!" +nLn+ e.getMessage()); - } - } - private static void testExportMitarbeiter() { System.out.println("+++++++++++++++++++++++ testExportMitarbeiter +++++++++++++++++++++++++\n");