コード例 #1
0
ファイル: test.cs プロジェクト: BrownCrown/calender
        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");
        }
コード例 #2
0
ファイル: test.cs プロジェクト: rakvat/calender
        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) + ")");
        }
コード例 #3
0
ファイル: test.cs プロジェクト: rakvat/calender
        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");
        }
コード例 #4
0
ファイル: test.cs プロジェクト: rakvat/calender
        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");
        }
コード例 #5
0
ファイル: test.cs プロジェクト: rakvat/calender
        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");
        }
コード例 #6
0
ファイル: test.cs プロジェクト: BrownCrown/calender
        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");
        }
コード例 #7
0
ファイル: test.cs プロジェクト: BrownCrown/calender
        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");
        }
コード例 #8
0
ファイル: test.cs プロジェクト: BrownCrown/calender
 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) + ")");
 }
コード例 #9
0
ファイル: main.cs プロジェクト: BrownCrown/calender
        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()
コード例 #10
0
        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()