public void EintraegeInTageszeilenAusgabe() { KalenderJahr jahr = new KalenderJahr(2012); List<Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml"); jahr.TrageEin(ref meineEintraege); int eingabemodus = 4; //XXX: das sollte nicht nötig sein Ausgabe ausgabe = new TageszeilenAusgabe(ref jahr, eingabemodus, true); ausgabe.setzeTestModus(true); ausgabe.gibAus(); StreamReader streamReader = new StreamReader(ausgabe.DateiName); string text = streamReader.ReadToEnd(); streamReader.Close(); Assert.IsTrue(text.Length > 0, "Ausgabe ist leer"); Assert.IsTrue(text.IndexOf("2012") > -1, "Jahreszahl kommt nicht vor"); int positionJanGeburtstag = text.IndexOf("Januar Geburtstag"); int positionDezGeburtstag = text.IndexOf("Dezember Geburtstag"); int positionTermin = text.IndexOf("Termin"); Assert.IsTrue(positionJanGeburtstag > -1, "JanuarGeburtstag ist nicht eingetragen"); Assert.IsTrue(positionDezGeburtstag > -1, "DezemberGeburtstag ist nicht eingetragen"); Assert.IsTrue(positionTermin > -1, "Termin ist nicht eingetragen"); Assert.IsTrue(text[positionJanGeburtstag-4] == '3' && text[positionJanGeburtstag-3] == '0', "JanuarGeburtstag steht an der falschen Stelle"); Assert.IsTrue(text[positionDezGeburtstag-4] == '3' && text[positionDezGeburtstag-3] == '0', "DezemberGeburtstag steht an der falschen Stelle"); Assert.IsTrue(text[positionTermin-4] == '2' && text[positionTermin-3] == '3', "Termin steht an der falschen Stelle"); int positionFebruar = text.IndexOf(HilfsKonstrukte.monatsNamen[1]); int positionMaerz = text.IndexOf(HilfsKonstrukte.monatsNamen[2]); Assert.IsTrue(positionTermin > positionFebruar && positionTermin < positionMaerz, "Termin steht an der falschen Stelle"); }
public void Geburtstag() { List <Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml"); KalenderJahr jahr2012 = new KalenderJahr(2012); jahr2012.TrageEin(ref meineEintraege); //Angabe des Jahrs ist nicht nötig Assert.AreEqual(jahr2012.GibMonate()[11].GibTage()[30].EintraegeAlsString(), "Geburtstag Aisha"); //korrekte Anzeige des Alters Assert.AreEqual(jahr2012.GibMonate()[3].GibTage()[29].EintraegeAlsString(), "Geburtstag Barbara (" + (2012 - 1918) + ")"); }
public void JaehrlichesEreignisAnFestemTermin() { List <Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml"); KalenderJahr jahr2012 = new KalenderJahr(2012); jahr2012.TrageEin(ref meineEintraege); Assert.AreEqual(jahr2012.GibMonate()[0].GibTage()[29].EintraegeAlsString(), "Januar Geburtstag"); //teste, ob auch in anderem Jahr eingetragen KalenderJahr jahr2013 = new KalenderJahr(2013); jahr2013.TrageEin(ref meineEintraege); Assert.AreEqual(jahr2013.GibMonate()[0].GibTage()[29].EintraegeAlsString(), "Januar Geburtstag"); Assert.IsTrue(jahr2012.GibMonate()[1].GibTage()[28].EintraegeAlsString().Contains("Schaltjahr Geburtstag"), "Schaltjahr Geburtstag wurde nicht korrekt eingetragen"); //jaehrliche Ereignisse werden auf den 28ten übertragen Assert.IsTrue(jahr2013.GibMonate()[1].GibTage()[27].EintraegeAlsString().Contains("Schaltjahr Geburtstag"), "jaehrlicher Termine am Schalttag wurde nicht korrekt auf den 28ten übetragen"); }
public void EinmaligerTermin() { List <Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml"); KalenderJahr jahr2012 = new KalenderJahr(2012); jahr2012.TrageEin(ref meineEintraege); Assert.AreEqual(jahr2012.GibMonate()[1].GibTage()[22].EintraegeAlsString(), "Termin"); //teste, ob nicht in anderem Jahr eingetragen KalenderJahr jahr2013 = new KalenderJahr(2013); jahr2013.TrageEin(ref meineEintraege); Assert.AreEqual(jahr2013.GibMonate()[1].GibTage()[22].EintraegeAlsString(), ""); Assert.IsTrue(jahr2012.GibMonate()[1].GibTage()[28].EintraegeAlsString().Contains("Schalttagtermin"), "Schalttagtermin wurde nicht korrekt eingetragen"); //Eimalige Termine sollen nicht auf den 28ten übertragen werden sondern als nicht valide ignoriert werden Assert.IsFalse(jahr2013.GibMonate()[1].GibTage()[27].EintraegeAlsString().Contains("Schalttagtermin"), "Einmalige Termine wurde auf den 28ten übetragen, soll aber als nicht valide gelten"); }
public void EintraegeInTageszeilenAusgabe() { KalenderJahr jahr = new KalenderJahr(2012); List <Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml"); jahr.TrageEin(ref meineEintraege); int eingabemodus = 4; //XXX: das sollte nicht nötig sein Ausgabe ausgabe = new TageszeilenAusgabe(ref jahr, eingabemodus, true); ausgabe.setzeTestModus(true); ausgabe.gibAus(); StreamReader streamReader = new StreamReader(ausgabe.DateiName); string text = streamReader.ReadToEnd(); streamReader.Close(); Assert.IsTrue(text.Length > 0, "Ausgabe ist leer"); Assert.IsTrue(text.IndexOf("2012") > -1, "Jahreszahl kommt nicht vor"); int positionJanGeburtstag = text.IndexOf("Januar Geburtstag"); int positionDezGeburtstag = text.IndexOf("Dezember Geburtstag"); int positionTermin = text.IndexOf("Termin"); Assert.IsTrue(positionJanGeburtstag > -1, "JanuarGeburtstag ist nicht eingetragen"); Assert.IsTrue(positionDezGeburtstag > -1, "DezemberGeburtstag ist nicht eingetragen"); Assert.IsTrue(positionTermin > -1, "Termin ist nicht eingetragen"); Assert.IsTrue(text[positionJanGeburtstag - 4] == '3' && text[positionJanGeburtstag - 3] == '0', "JanuarGeburtstag steht an der falschen Stelle"); Assert.IsTrue(text[positionDezGeburtstag - 4] == '3' && text[positionDezGeburtstag - 3] == '0', "DezemberGeburtstag steht an der falschen Stelle"); Assert.IsTrue(text[positionTermin - 4] == '2' && text[positionTermin - 3] == '3', "Termin steht an der falschen Stelle"); int positionFebruar = text.IndexOf(HilfsKonstrukte.monatsNamen[1]); int positionMaerz = text.IndexOf(HilfsKonstrukte.monatsNamen[2]); Assert.IsTrue(positionTermin > positionFebruar && positionTermin < positionMaerz, "Termin steht an der falschen Stelle"); }
public void EinmaligerTermin() { List<Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml"); KalenderJahr jahr2012 = new KalenderJahr(2012); jahr2012.TrageEin(ref meineEintraege); Assert.AreEqual(jahr2012.GibMonate()[1].GibTage()[22].EintraegeAlsString(), "Termin"); //teste, ob nicht in anderem Jahr eingetragen KalenderJahr jahr2013 = new KalenderJahr(2013); jahr2013.TrageEin(ref meineEintraege); Assert.AreEqual(jahr2013.GibMonate()[1].GibTage()[22].EintraegeAlsString(), ""); Assert.IsTrue(jahr2012.GibMonate()[1].GibTage()[28].EintraegeAlsString().Contains("Schalttagtermin"), "Schalttagtermin wurde nicht korrekt eingetragen"); //Eimalige Termine sollen nicht auf den 28ten übertragen werden sondern als nicht valide ignoriert werden Assert.IsFalse(jahr2013.GibMonate()[1].GibTage()[27].EintraegeAlsString().Contains("Schalttagtermin"), "Einmalige Termine wurde auf den 28ten übetragen, soll aber als nicht valide gelten"); }
public void JaehrlichesEreignisAnFestemTermin() { List<Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml"); KalenderJahr jahr2012 = new KalenderJahr(2012); jahr2012.TrageEin(ref meineEintraege); Assert.AreEqual(jahr2012.GibMonate()[0].GibTage()[29].EintraegeAlsString(), "Januar Geburtstag"); //teste, ob auch in anderem Jahr eingetragen KalenderJahr jahr2013 = new KalenderJahr(2013); jahr2013.TrageEin(ref meineEintraege); Assert.AreEqual(jahr2013.GibMonate()[0].GibTage()[29].EintraegeAlsString(), "Januar Geburtstag"); Assert.IsTrue(jahr2012.GibMonate()[1].GibTage()[28].EintraegeAlsString().Contains("Schaltjahr Geburtstag"), "Schaltjahr Geburtstag wurde nicht korrekt eingetragen"); //jaehrliche Ereignisse werden auf den 28ten übertragen Assert.IsTrue(jahr2013.GibMonate()[1].GibTage()[27].EintraegeAlsString().Contains("Schaltjahr Geburtstag"), "jaehrlicher Termine am Schalttag wurde nicht korrekt auf den 28ten übetragen"); }
public void Geburtstag() { List<Eintrag> meineEintraege = Eintrag.LeseEintraegeAusDatei("testfixtures/testeintraege.xml"); KalenderJahr jahr2012 = new KalenderJahr(2012); jahr2012.TrageEin(ref meineEintraege); //Angabe des Jahrs ist nicht nötig Assert.AreEqual(jahr2012.GibMonate()[11].GibTage()[30].EintraegeAlsString(), "Geburtstag Aisha"); //korrekte Anzeige des Alters Assert.AreEqual(jahr2012.GibMonate()[3].GibTage()[29].EintraegeAlsString(), "Geburtstag Barbara (" + (2012 - 1918) + ")"); }
public static int Main(string[] args) { bool debug = false; int eingabejahr = 0; int eingabemodus = 0; if (args.Length == 0) //Wenn keine Argumente übergeben werden Anzeige Normaler Start { Console.WriteLine("Normaler Programm Start"); debug = false; } else { if (args[0] == "debug") //Wenn Argument übergeben worden, prüfen ob debug erwünscht ist { Console.WriteLine("Programm Start mit debug Mode. Anzahl der übergebenen Parameter: " + args.Length); debug = true; } } Console.WriteLine("Das Programm berechnet Kalender für die Jahre 1583 bis 4000"); Console.Write("Jahr eingeben: "); bool eingabeOk = false; do { string eingabe = Console.ReadLine(); //erstmal als string speichern, damit auch eigegebene Buchstaben kein Problem sind if (!int.TryParse(eingabe, out eingabejahr)) { Console.WriteLine("Falsche Eingabe, da Buchstaben nicht möglich sind."); } else if ((eingabejahr < 1583) || (eingabejahr > 4000)) { Console.WriteLine("Falsche Eingabe. Jahr ist nicht im gueltigen Bereich."); } else { eingabeOk = true; } if (!eingabeOk) { Console.Write("Bitte geben sie das Jahr erneut ein: "); } } while (!eingabeOk); Console.Write("Soll die Ausgabe \n1) Monatsblock einspaltig oder\n2) Monatsblock zweispaltig oder\n3) Zeilenweise oder\n4) Zeilenweise mit Eintraegen oder\n5) gelatexed oder\n6) als HTML sein? "); eingabeOk = false; do { string eingabe = Console.ReadLine(); if (!int.TryParse(eingabe, out eingabemodus)) { Console.WriteLine("Falsche Eingabe, da Buchstaben nicht möglich sind."); } else if ((eingabemodus < 1) || (eingabemodus > 6)) { Console.WriteLine("Falsche Eingabe. Modus ist nicht im gueltigen Bereich."); } else { eingabeOk = true; } if (!eingabeOk) { Console.Write("Bitte geben sie den Modus erneut ein: "); } } while (!eingabeOk); Console.WriteLine(""); //Eintrag Experimente List<Eintrag> eintraege = leseEintraege(debug); //Aufruf der leseEintraege Funktion mit Übergabe der debug Variablen KalenderJahr kalenderJahr = new KalenderJahr(eingabejahr); kalenderJahr.TrageEin(ref eintraege); Ausgabe ausgabe = null; switch (eingabemodus) { case 1: ausgabe = new MonatsBlockAusgabe(ref kalenderJahr, eingabemodus); break; case 2: ausgabe = new MonatsBlockAusgabe2Spaltig(ref kalenderJahr, eingabemodus); break; case 3: ausgabe = new TageszeilenAusgabe(ref kalenderJahr, eingabemodus, false); break; case 4: ausgabe = new TageszeilenAusgabe(ref kalenderJahr, eingabemodus, true); break; case 5: ausgabe = new LatexTageszeilenAusgabe(ref kalenderJahr); break; case 6: ausgabe = new htmlTageszeilenAusgabe(ref kalenderJahr); break; } ausgabe.gibAus(); #if DEBUG if (debug) { ausgabeTest(eingabejahr, eingabemodus, debug); //Aufruf der Testfunktion mit Übergabe der debug Variable } #endif //Erwartet Eingabe vor Beendigung des Programms Console.ReadLine(); return 0; } //ende main()
public static int Main(string[] args) { bool debug = false; int eingabejahr = 0; int eingabemodus = 0; if (args.Length == 0) //Wenn keine Argumente übergeben werden Anzeige Normaler Start { Console.WriteLine("Normaler Programm Start"); debug = false; } else { if (args[0] == "debug") //Wenn Argument übergeben worden, prüfen ob debug erwünscht ist { Console.WriteLine("Programm Start mit debug Mode. Anzahl der übergebenen Parameter: " + args.Length); debug = true; } } Console.WriteLine("Das Programm berechnet Kalender für die Jahre 1583 bis 4000"); Console.Write("Jahr eingeben: "); bool eingabeOk = false; do { string eingabe = Console.ReadLine(); //erstmal als string speichern, damit auch eigegebene Buchstaben kein Problem sind if (!int.TryParse(eingabe, out eingabejahr)) { Console.WriteLine("Falsche Eingabe, da Buchstaben nicht möglich sind."); } else if ((eingabejahr < 1583) || (eingabejahr > 4000)) { Console.WriteLine("Falsche Eingabe. Jahr ist nicht im gueltigen Bereich."); } else { eingabeOk = true; } if (!eingabeOk) { Console.Write("Bitte geben sie das Jahr erneut ein: "); } } while (!eingabeOk); Console.Write("Soll die Ausgabe \n1) Monatsblock einspaltig oder\n2) Monatsblock zweispaltig oder\n3) Zeilenweise oder\n4) Zeilenweise mit Eintraegen oder\n5) gelatexed oder\n6) als HTML sein? "); eingabeOk = false; do { string eingabe = Console.ReadLine(); if (!int.TryParse(eingabe, out eingabemodus)) { Console.WriteLine("Falsche Eingabe, da Buchstaben nicht möglich sind."); } else if ((eingabemodus < 1) || (eingabemodus > 6)) { Console.WriteLine("Falsche Eingabe. Modus ist nicht im gueltigen Bereich."); } else { eingabeOk = true; } if (!eingabeOk) { Console.Write("Bitte geben sie den Modus erneut ein: "); } } while (!eingabeOk); Console.WriteLine(""); //Eintrag Experimente List <Eintrag> eintraege = leseEintraege(debug); //Aufruf der leseEintraege Funktion mit Übergabe der debug Variablen KalenderJahr kalenderJahr = new KalenderJahr(eingabejahr); kalenderJahr.TrageEin(ref eintraege); Ausgabe ausgabe = null; switch (eingabemodus) { case 1: ausgabe = new MonatsBlockAusgabe(ref kalenderJahr, eingabemodus); break; case 2: ausgabe = new MonatsBlockAusgabe2Spaltig(ref kalenderJahr, eingabemodus); break; case 3: ausgabe = new TageszeilenAusgabe(ref kalenderJahr, eingabemodus, false); break; case 4: ausgabe = new TageszeilenAusgabe(ref kalenderJahr, eingabemodus, true); break; case 5: ausgabe = new LatexTageszeilenAusgabe(ref kalenderJahr); break; case 6: ausgabe = new htmlTageszeilenAusgabe(ref kalenderJahr); break; } ausgabe.gibAus(); #if DEBUG if (debug) { ausgabeTest(eingabejahr, eingabemodus, debug); //Aufruf der Testfunktion mit Übergabe der debug Variable } #endif //Erwartet Eingabe vor Beendigung des Programms Console.ReadLine(); return(0); } //ende main()