Пример #1
0
        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);
        }
Пример #2
0
        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");
        }
Пример #3
0
        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);
        }
Пример #4
0
        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");
        }
Пример #5
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()
Пример #6
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()