public void TageszeilenAusgabe() { KalenderJahr jahr = new KalenderJahr(2012); int eingabemodus = 3; //XXX: das sollte nicht nötig sein Ausgabe ausgabe = new TageszeilenAusgabe(ref jahr, eingabemodus, false); 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 fehlt"); int positionFebruar = text.IndexOf(HilfsKonstrukte.monatsNamen[1]); int positionMaerz = text.IndexOf(HilfsKonstrukte.monatsNamen[2]); Assert.IsTrue(positionFebruar > -1, "Februar-Markierung fehlt"); Assert.IsTrue(positionMaerz > -1, "März-Markierung fehlt"); Assert.IsTrue(positionFebruar < positionMaerz); //pruefe ob Februar 29 Tage hat Assert.IsTrue(text.IndexOf("29",positionFebruar) < positionMaerz, "29 fehlt im Februar"); //pruefe ob Linie nach Sonntag int positionSO = text.IndexOf(HilfsKonstrukte.wochenTagNamenKurz[6], positionMaerz); positionSO = text.IndexOf('\n', positionSO); //bis zur nächstenZeile Assert.AreEqual(text.IndexOf("-------------", positionSO), positionSO + 1); //pruefeWochentag 1.12. int wochenTag1201 = jahr.GibMonate()[11].GibTage()[0].GibWochentag(); string wochenTagAlsString = HilfsKonstrukte.wochenTagNamenKurz[wochenTag1201]; int positionDezember = text.IndexOf(HilfsKonstrukte.monatsNamen[11]); positionDezember = text.IndexOf('\n', positionDezember); Assert.AreEqual(text.IndexOf(wochenTagAlsString, positionDezember), positionDezember + 1); }
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 TageszeilenAusgabe() { KalenderJahr jahr = new KalenderJahr(2012); int eingabemodus = 3; //XXX: das sollte nicht nötig sein Ausgabe ausgabe = new TageszeilenAusgabe(ref jahr, eingabemodus, false); 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 fehlt"); int positionFebruar = text.IndexOf(HilfsKonstrukte.monatsNamen[1]); int positionMaerz = text.IndexOf(HilfsKonstrukte.monatsNamen[2]); Assert.IsTrue(positionFebruar > -1, "Februar-Markierung fehlt"); Assert.IsTrue(positionMaerz > -1, "März-Markierung fehlt"); Assert.IsTrue(positionFebruar < positionMaerz); //pruefe ob Februar 29 Tage hat Assert.IsTrue(text.IndexOf("29", positionFebruar) < positionMaerz, "29 fehlt im Februar"); //pruefe ob Linie nach Sonntag int positionSO = text.IndexOf(HilfsKonstrukte.wochenTagNamenKurz[6], positionMaerz); positionSO = text.IndexOf('\n', positionSO); //bis zur nächstenZeile Assert.AreEqual(text.IndexOf("-------------", positionSO), positionSO + 1); //pruefeWochentag 1.12. int wochenTag1201 = jahr.GibMonate()[11].GibTage()[0].GibWochentag(); string wochenTagAlsString = HilfsKonstrukte.wochenTagNamenKurz[wochenTag1201]; int positionDezember = text.IndexOf(HilfsKonstrukte.monatsNamen[11]); positionDezember = text.IndexOf('\n', positionDezember); Assert.AreEqual(text.IndexOf(wochenTagAlsString, positionDezember), positionDezember + 1); }
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 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()