From 4d61040ebeceebe96ceec10a3dfb143617ab0690 Mon Sep 17 00:00:00 2001
From: Dennis Eisold <de@itstall.de>
Date: Tue, 29 Oct 2019 16:53:18 +0100
Subject: [PATCH] startet JUnit Tests

---
 Uebung13Datum.iml              |  14 ++-
 src/de/itstall/Datum.java      |   8 +-
 test/de.itstall/TestDatum.java | 164 +++++++++++++++++++++++++++++++++
 3 files changed, 183 insertions(+), 3 deletions(-)
 create mode 100644 test/de.itstall/TestDatum.java

diff --git a/Uebung13Datum.iml b/Uebung13Datum.iml
index d5c0743..1389403 100644
--- a/Uebung13Datum.iml
+++ b/Uebung13Datum.iml
@@ -4,9 +4,19 @@
     <exclude-output />
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library" scope="TEST">
+      <library name="JUnit4">
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/junit-4.12.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/hamcrest-core-1.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
   </component>
-</module>
-
+</module>
\ No newline at end of file
diff --git a/src/de/itstall/Datum.java b/src/de/itstall/Datum.java
index 29a9c48..888d706 100644
--- a/src/de/itstall/Datum.java
+++ b/src/de/itstall/Datum.java
@@ -113,7 +113,11 @@ public class Datum {
 	 * @return : boolean
 	 */
 	public boolean getSchaltjahr(int iJahr) {
-		return iJahr % 4 == 0 && (iJahr % 100 != 0 || iJahr % 400 == 0);
+		if(iJahr > 1582) {
+			return iJahr % 4 == 0 && (iJahr % 100 != 0 || iJahr % 400 == 0);
+		} else {
+			return false;
+		}
 	}
 
 	/**
@@ -135,6 +139,8 @@ public class Datum {
 			if (this.getSchaltjahr((int) this.getJahr())) {
 				iMonatsTage = 29;
 			}
+		} else {
+			iMonatsTage = 0;
 		}
 		return iMonatsTage;
 	}
diff --git a/test/de.itstall/TestDatum.java b/test/de.itstall/TestDatum.java
new file mode 100644
index 0000000..799a5c4
--- /dev/null
+++ b/test/de.itstall/TestDatum.java
@@ -0,0 +1,164 @@
+package de.itstall;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class TestDatum {
+
+	@Test
+	public void getTag() {
+		Datum datum = new Datum();
+		System.out.println("TEST: getTag() Day initial sholud be: 1");
+		assertEquals(1, datum.getTag());
+	}
+
+	@Test
+	public void getMonat() {
+		Datum datum = new Datum();
+		System.out.println("TEST: getMonat() Month initial sholud be: 1");
+		assertEquals(1, datum.getMonat());
+	}
+
+	@Test
+	public void getJahr() {
+		Datum datum = new Datum();
+		System.out.println("TEST: getJahr() Year initial sholud be: 2000");
+		assertEquals(2000, datum.getJahr());
+	}
+
+	@Test
+	public void setTag() {
+		Datum datum = new Datum();
+
+		System.out.println("TEST: setTag() Set day to 0 should not work");
+		datum.setTag(0);
+		assertEquals(1, datum.getTag());
+
+		System.out.println("TEST: setTag() Set day to 32 should not work");
+		datum.setTag(32);
+		assertEquals(1, datum.getTag());
+
+		System.out.println("TEST: setTag() Set days to 1-31 should work: ");
+		for(int i = 1; i <= 31; i++) {
+			datum.setTag(i);
+			assertEquals(i, datum.getTag());
+		}
+	}
+
+	@Test
+	public void setMonat() {
+		Datum datum = new Datum();
+
+		System.out.println("TEST: setMonat() Set month to -1 should not work");
+		datum.setMonat(-1);
+		assertEquals(1, datum.getMonat());
+
+		System.out.println("TEST: setMonat() Set month to 0 should not work");
+		datum.setMonat(0);
+		assertEquals(1, datum.getMonat());
+
+		System.out.println("TEST: setMonat() Set month to 13 should not work");
+		datum.setMonat(13);
+		assertEquals(1, datum.getMonat());
+
+		System.out.println("TEST: setMonat() Set months to 1-12 should work: ");
+		for(int i = 1; i <= 12; i++) {
+			datum.setMonat(i);
+			assertEquals(i, datum.getMonat());
+		}
+	}
+
+	@Test
+	public void setJahr() {
+		Datum datum = new Datum();
+
+		System.out.println("TEST: setJahr() Set Year to 1582 should not work");
+		datum.setMonat(1582);
+		assertEquals(2000, datum.getJahr());
+
+		System.out.println("TEST: setJahr() Set Year to Integer.MAX_VALUE + 1 should not work");
+		datum.setJahr(Integer.MAX_VALUE + 1);
+		assertEquals(2000, datum.getJahr());
+
+		System.out.println("TEST: setJahr() Set Year to 2020 should work");
+		datum.setJahr(2020);
+		assertEquals(2020, datum.getJahr());
+	}
+
+	@Test
+	public void testToString() {
+		Datum datum = new Datum();
+
+		System.out.println("TEST: toString() Output should be 01.01.2000");
+		assertEquals("01.01.2000", datum.toString());
+
+		System.out.println("TEST: toString(true) Output should be 01. Januar 2000");
+		assertEquals("01. Januar 2000", datum.toString());
+	}
+
+	@Test
+	public void getSchaltjahr() {
+		Datum datum = new Datum();
+
+		System.out.println("TEST: getSchaltjahr() 2000 : result should be true");
+		assertEquals(true, datum.getSchaltjahr(2000));
+
+		System.out.println("TEST: getSchaltjahr() 2400 : result should be true");
+		assertEquals(true, datum.getSchaltjahr(2400));
+
+		System.out.println("TEST: getSchaltjahr() 2200 : result should be false");
+		assertEquals(false, datum.getSchaltjahr(2200));
+
+		System.out.println("TEST: getSchaltjahr() 2019 : result should be false");
+		assertEquals(false, datum.getSchaltjahr(2019));
+
+		System.out.println("TEST: getSchaltjahr() 0 : result should be false");
+		assertEquals(false, datum.getSchaltjahr(0));
+
+		System.out.println("TEST: getSchaltjahr() 4 : result should be false");
+		assertEquals(false, datum.getSchaltjahr(1200));
+	}
+
+	@Test
+	public void getMonthDays() {
+		Datum datum = new Datum();
+
+		System.out.println("TEST: getMonthDays() 02.2000 : result should be 29");
+		datum.setMonat(2);
+		assertEquals(29, datum.getMonthDays(datum.getMonat()));
+
+		System.out.println("TEST: getMonthDays() 02.2001 : result should be 28");
+		datum.setMonat(2);
+		datum.setJahr(2001);
+		assertEquals(28, datum.getMonthDays(datum.getMonat()));
+
+		System.out.println("TEST: getMonthDays() 10.2019 : result should be 31");
+		datum.setMonat(10);
+		datum.setJahr(2019);
+		assertEquals(31, datum.getMonthDays(datum.getMonat()));
+
+		System.out.println("TEST: getMonthDays() 13.2000 : result should be 0");
+		datum.setJahr(2000);
+		assertEquals(0, datum.getMonthDays(13));
+
+		System.out.println("TEST: getMonthDays() 0.2000 : result should be 0");
+		assertEquals(0, datum.getMonthDays(0));
+	}
+
+	@Test
+	public void getMonthName() {
+	}
+
+	@Test
+	public void addiereJahre() {
+	}
+
+	@Test
+	public void addiereMonate() {
+	}
+
+	@Test
+	public void addiereTage() {
+	}
+}
\ No newline at end of file
-- 
GitLab