001    package de.hska.info1.uebung.objekte;
002    
003    /*
004     * Nach Kopieren dieser Klasse in das Verzeichnis, wo
005     * die Implementierung der Datumsklasse vorhanden ist,
006     * müssen noch wie folgt die Klassen des JUnit
007     * Testframeworks zum Projekt hinzugefügt werden:
008     * In dieser Klasse Linksklick links von fehlerhafter Zeile
009     * und entsprechende auswählbare Aktion zum Hinzufügen
010     * der JUnit Testklassen auswählen.
011     * 
012     * Zum Ausführen der Tests dieser Klasse:
013     * Klasse in Package Explorer anwählen, Rechtsklick und
014     * Run -> JUnit Test auswählen.
015     * 
016     * Es kann noch sein, dass dieser Klasse noch die Packagedeklaration
017     * haben muss, die ihre Klasse Datum hat.
018     *
019     * Wenn keine Fehler auftreten passiert nichts.
020     * Falls noch Fehler auftreten wechselt Eclipse
021     * automatisch in die JUnit Sicht.
022     */
023    
024    import junit.framework.TestCase;
025    
026    /**
027     * JUnit Testklasse für Klasse Datum (objekt-orientierte Version).
028     * Es werden alle öffentlichen Methoden und Konstruktoren überprüft (bis auf toString()).
029     * Leider sind alle Methoden unkommentiert. Sie sind allerdings
030     * allessamt sehr einfach.
031     */
032    public class DatumJUnitTest extends TestCase {
033    
034        public void testKonstruktor() {
035           Datum datum = new Datum(1, 1, 2000);
036           
037           assertTrue(datum != null);
038        }
039        
040        public void testIsSchaltjahr1() {
041           Datum datum = new Datum(1, 1, 2000);
042           
043           assertTrue(datum.isSchaltjahr());
044        }
045        
046        public void testIsSchaltjahr2() {
047          Datum datum = new Datum(1, 1, 2001);
048          
049          assertTrue(! datum.isSchaltjahr());
050        }
051    
052        public void testIsSchaltjahr3() {
053          Datum datum = new Datum(1, 1, 500);
054          
055          assertTrue(! datum.isSchaltjahr());
056        }
057    
058        public void testIsKorrekt1() {
059          Datum datum = new Datum(15, 12, 2001);
060          
061          assertTrue(datum.isKorrekt());
062        }
063        
064        public void testIsKorrekt2() {
065          Datum datum = new Datum(-1, 12, 2001);
066          
067          assertTrue(! datum.isKorrekt());
068        }
069        
070        public void testIsKorrekt3() {
071          Datum datum = new Datum(15, 12, -999);
072          
073          assertTrue(! datum.isKorrekt());
074        }
075        
076        public void testIsKorrekt4() {
077          Datum datum = new Datum(15, 99, 2001);
078          
079          assertTrue(! datum.isKorrekt());
080        }
081        
082        public void testIsKorrekt5() {
083          Datum datum = new Datum(29, 2, 2000);
084          
085          assertTrue(datum.isKorrekt());
086        }
087    
088        public void testIsKorrekt6() {
089          Datum datum = new Datum(15, 12, 1996);
090          
091          assertTrue(datum.isKorrekt());
092        }
093    
094        public void testGetTag1() {
095          Datum datum = new Datum(15, 12, 1996);
096          
097          assertTrue( datum.getTag() == 15);
098        }
099    
100        public void testGetTag2() {
101          Datum datum = new Datum(15, 12, -1996);
102          
103          assertTrue( datum.getTag() == -1);
104        }
105        
106        public void testGetMonat1() {
107          Datum datum = new Datum(15, 12, 1996);
108          
109          assertTrue( datum.getMonat() == 12);
110        }
111    
112        public void testGetMonat2() {
113          Datum datum = new Datum(31, 4, 2001);
114          
115          assertTrue( datum.getMonat() == -1);
116        }
117    
118        public void testGetJahr1() {
119          Datum datum = new Datum(15, 12, 1996);
120          
121          assertTrue( datum.getJahr() == 1996);
122        }
123    
124        public void testGetJahr2() {
125          Datum datum = new Datum(15, 13, 1996);
126          
127          assertTrue( datum.getJahr() == -1);
128        }
129    
130        public void testToString() {
131            Datum datum = new Datum(1, 1, 2000);
132            
133            assertEquals("1. Januar 2000 / Schaltjahr", datum.toString());
134        }
135        
136        public void testToString1() {
137            Datum datum = new Datum(5, 8, 1999);
138            
139            assertEquals("5. August 1999 / kein Schaltjahr", datum.toString());
140        }
141    
142    }
143