From afff80ff1d25459c93f05db2bd1536c59a233302 Mon Sep 17 00:00:00 2001 From: Gion Date: Fri, 8 Oct 2021 20:34:03 +0200 Subject: [PATCH 1/8] =?UTF-8?q?yea!=20=F0=9F=98=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/assertions/Person.java | 9 ++++ src/test/java/assertions/PersonTest.java | 57 ++++++++++++++++++------ 2 files changed, 53 insertions(+), 13 deletions(-) diff --git a/src/main/java/assertions/Person.java b/src/main/java/assertions/Person.java index ac7666b..c8d2494 100644 --- a/src/main/java/assertions/Person.java +++ b/src/main/java/assertions/Person.java @@ -22,4 +22,13 @@ public String getFullName(){ public Period getAge(){ return Period.between(birthDate, LocalDate.now()); } + + @Override + public String toString() { + return "Person{" + + "firstName='" + firstName + '\'' + + ", lastName='" + lastName + '\'' + + ", birthDate=" + birthDate + + '}'; + } } diff --git a/src/test/java/assertions/PersonTest.java b/src/test/java/assertions/PersonTest.java index ddfacc8..c9b85d7 100644 --- a/src/test/java/assertions/PersonTest.java +++ b/src/test/java/assertions/PersonTest.java @@ -1,5 +1,6 @@ package assertions; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import java.time.LocalDate; @@ -10,30 +11,60 @@ class PersonTest { @Test void getFullNameReturnsFirstnameSpaceLastname(){ - // TODO implement - throw new IllegalArgumentException("you should implement code here"); + String lastname = "Desax"; + String firstname = "Gion"; + Person p = new Person(firstname, lastname, null); + String fullname = firstname + " " + lastname; + Assertions.assertEquals(fullname, p.getFullName()); } - // TODO some more useful tests + @Test + void getFullNameNotReturnsFirstnameSpaceLastname(){ + String lastname = "Desax"; + String firstname = "Gion"; + Person p = new Person(firstname, lastname, null); + + String fullName = lastname + " " + firstname; + Assertions.assertNotEquals(fullName,p.getFullName()); + } + @Test + void getFullNameReturnsFirstCharsInBigLetters(){ + String lastname = "Desax"; + String firstname = "Gion"; + Person p = new Person(firstname, lastname, null); + String[] arrStr = p.getFullName().split(" "); + for(String a : arrStr){ + if (!Character.isUpperCase(a.charAt(0))) { + assert false; + } + } + } // --- getAge @Test - void getAgeReturns10YearsIfBornIn2009() throws Exception { - // TODO verbessern. Hinweis: Repeatable (wiederholbar) zu jeder Zeit. - Person p = new Person("", "", LocalDate.of(2009, 1, 1)); - - throw new IllegalArgumentException("you should implement code here"); + void getAgeReturns10YearsIfBorn10YearsAgo() { + Person p = new Person("", "", LocalDate.now().minusYears(10)); + Assertions.assertEquals(10,p.getAge().getYears()); + Assertions.assertEquals(0,p.getAge().getMonths()); + Assertions.assertEquals(0,p.getAge().getDays()); } @Test - void getAgeReturns1DayIfYesterday() throws Exception { + void getAgeReturns1DayIfYesterday() { Person p = new Person("", "", LocalDate.now().minusDays(1)); - - // TODO implement - throw new IllegalArgumentException("you should implement code here"); + Assertions.assertEquals(0, p.getAge().getYears()); + Assertions.assertEquals(0,p.getAge().getMonths()); + Assertions.assertEquals(1,p.getAge().getDays()); } - // TODO some more useful tests + @Test + void getAgeReturnIsPositiv(){ + LocalDate birtDay = LocalDate.now().plusDays(1); + Person p = new Person("", "", birtDay); + if(!p.getAge().isNegative()){ + assert false; + } + } } From f71bc53aaf40d3fa7a7cf4a09b2ba5eec8db2810 Mon Sep 17 00:00:00 2001 From: Gion Date: Fri, 8 Oct 2021 22:43:11 +0200 Subject: [PATCH 2/8] Change getAgeReturnIsNotTooHigh with better Error Message --- src/test/java/assertions/PersonTest.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/test/java/assertions/PersonTest.java b/src/test/java/assertions/PersonTest.java index c9b85d7..13720cd 100644 --- a/src/test/java/assertions/PersonTest.java +++ b/src/test/java/assertions/PersonTest.java @@ -60,10 +60,12 @@ void getAgeReturns1DayIfYesterday() { } @Test - void getAgeReturnIsPositiv(){ - LocalDate birtDay = LocalDate.now().plusDays(1); - Person p = new Person("", "", birtDay); - if(!p.getAge().isNegative()){ + void getAgeReturnIsNotTooHigh(){ + LocalDate birthDay = LocalDate.now().plusDays(1); + Person p = new Person("", "", birthDay); + if(p.getAge().isNegative()){ + AssertionError error = new AssertionError("LocalDate birthday " + birthDay + " is set to future"); + System.out.println(error.getMessage()); assert false; } } From 4e39f0a843c0d0cd603ecc95d5c554751e2edde6 Mon Sep 17 00:00:00 2001 From: Gion Date: Fri, 8 Oct 2021 22:45:57 +0200 Subject: [PATCH 3/8] Change getAgeReturnIsNotTooHigh with better Error Message --- src/test/java/assertions/PersonTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/assertions/PersonTest.java b/src/test/java/assertions/PersonTest.java index 13720cd..c55d9af 100644 --- a/src/test/java/assertions/PersonTest.java +++ b/src/test/java/assertions/PersonTest.java @@ -61,7 +61,7 @@ void getAgeReturns1DayIfYesterday() { @Test void getAgeReturnIsNotTooHigh(){ - LocalDate birthDay = LocalDate.now().plusDays(1); + LocalDate birthDay = LocalDate.now().plusDays(0); Person p = new Person("", "", birthDay); if(p.getAge().isNegative()){ AssertionError error = new AssertionError("LocalDate birthday " + birthDay + " is set to future"); From fbb5eb2af5af7b339deff30f1062ddd300ef46ab Mon Sep 17 00:00:00 2001 From: Ueli Kunz Date: Wed, 3 Nov 2021 20:23:15 +0100 Subject: [PATCH 4/8] mehr kommentare und typo fixes. --- src/test/java/fakes/UserControllerTest.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/test/java/fakes/UserControllerTest.java b/src/test/java/fakes/UserControllerTest.java index 714b4c3..cc4b61b 100644 --- a/src/test/java/fakes/UserControllerTest.java +++ b/src/test/java/fakes/UserControllerTest.java @@ -11,9 +11,9 @@ class UserControllerTest { class create { // --- Testing with Fakes --- - @Test - void withValidInexistingUsername_returnsOK__NO_FAKE() { + @org.junit.jupiter.api.Disabled + void withValidInexistingUsername_returnsOK__NO_FAKE_DEMO() { UserController ctrl = new UserController(); User user = new User("kalua"); @@ -36,12 +36,14 @@ void withValidInexistingUsername_returnsOK__MOCKITO() { } @Test - void withValidInexitingUserName_addUserToDB__FAKE() { + void withValidInexitingUsername_addUserToDB__FAKE() { // TODO + // Der Test soll prüfen, ob der Benutzer tatsächlich der DB hinzugefügt wurde. + // Dazu soll ein Database Mock Objekt verwendet werden. } @Test - void withValidInexitingUserName_addUserToDB__MOCKITO() { + void withValidInexitingUsername_addUserToDB__MOCKITO() { // TODO } From 86256bed8ac550950c0827ff1bbd9e1b63670b31 Mon Sep 17 00:00:00 2001 From: Ueli Kunz Date: Wed, 3 Nov 2021 20:43:03 +0100 Subject: [PATCH 5/8] add a less complex example to illustrate dependency injection via constructor. --- .gitignore | Bin 2005 -> 2034 bytes src/main/java/fakes/InjectDemo.java | 51 ++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 src/main/java/fakes/InjectDemo.java diff --git a/.gitignore b/.gitignore index 1d5ef7bda8daace2b78e4084c401992b0bf3f2bb..7f27d0082b7c2ffe00e385bd69784dc61e43470f 100644 GIT binary patch delta 39 ucmcc0|A~J>h>U)5QL=t+VrHIxQEG91X;E@&v3^c|x?V{|3D?HpCUyWY2@cT! delta 10 Rcmeywf0chi$i~7(b^seX1atrZ diff --git a/src/main/java/fakes/InjectDemo.java b/src/main/java/fakes/InjectDemo.java new file mode 100644 index 0000000..326fdd2 --- /dev/null +++ b/src/main/java/fakes/InjectDemo.java @@ -0,0 +1,51 @@ +package fakes; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; + +interface CanLog { + void log(String message); +} + +class FileLogger implements CanLog { + @Override + public void log(String message) { + try { + Files.write(Paths.get("src/main/resources/log.txt"), message.getBytes(StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} + +class ConsoleLogger implements CanLog { + @Override + public void log(String message) { + System.out.println("LOG: " + message); + } +} + +class Logger { + private final CanLog canLog; + + public Logger(CanLog canLog) { + this.canLog = canLog; + } + + public void doLog(String message) { + canLog.log(message); + } +} + +public class InjectDemo { + + public static void main(String[] args) { + final Logger logger = new Logger(new FileLogger()); + logger.doLog("test log 1"); + + final Logger logger2 = new Logger(new ConsoleLogger()); + logger2.doLog("test log 2"); + } +} From 8d8268b74bd1cc9b9c052e0f9fba9078b5cf24e9 Mon Sep 17 00:00:00 2001 From: Gion Date: Fri, 8 Oct 2021 20:34:03 +0200 Subject: [PATCH 6/8] =?UTF-8?q?yea!=20=F0=9F=98=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/assertions/Person.java | 9 ++++ src/test/java/assertions/PersonTest.java | 57 ++++++++++++++++++------ 2 files changed, 53 insertions(+), 13 deletions(-) diff --git a/src/main/java/assertions/Person.java b/src/main/java/assertions/Person.java index ac7666b..c8d2494 100644 --- a/src/main/java/assertions/Person.java +++ b/src/main/java/assertions/Person.java @@ -22,4 +22,13 @@ public String getFullName(){ public Period getAge(){ return Period.between(birthDate, LocalDate.now()); } + + @Override + public String toString() { + return "Person{" + + "firstName='" + firstName + '\'' + + ", lastName='" + lastName + '\'' + + ", birthDate=" + birthDate + + '}'; + } } diff --git a/src/test/java/assertions/PersonTest.java b/src/test/java/assertions/PersonTest.java index ddfacc8..c9b85d7 100644 --- a/src/test/java/assertions/PersonTest.java +++ b/src/test/java/assertions/PersonTest.java @@ -1,5 +1,6 @@ package assertions; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import java.time.LocalDate; @@ -10,30 +11,60 @@ class PersonTest { @Test void getFullNameReturnsFirstnameSpaceLastname(){ - // TODO implement - throw new IllegalArgumentException("you should implement code here"); + String lastname = "Desax"; + String firstname = "Gion"; + Person p = new Person(firstname, lastname, null); + String fullname = firstname + " " + lastname; + Assertions.assertEquals(fullname, p.getFullName()); } - // TODO some more useful tests + @Test + void getFullNameNotReturnsFirstnameSpaceLastname(){ + String lastname = "Desax"; + String firstname = "Gion"; + Person p = new Person(firstname, lastname, null); + + String fullName = lastname + " " + firstname; + Assertions.assertNotEquals(fullName,p.getFullName()); + } + @Test + void getFullNameReturnsFirstCharsInBigLetters(){ + String lastname = "Desax"; + String firstname = "Gion"; + Person p = new Person(firstname, lastname, null); + String[] arrStr = p.getFullName().split(" "); + for(String a : arrStr){ + if (!Character.isUpperCase(a.charAt(0))) { + assert false; + } + } + } // --- getAge @Test - void getAgeReturns10YearsIfBornIn2009() throws Exception { - // TODO verbessern. Hinweis: Repeatable (wiederholbar) zu jeder Zeit. - Person p = new Person("", "", LocalDate.of(2009, 1, 1)); - - throw new IllegalArgumentException("you should implement code here"); + void getAgeReturns10YearsIfBorn10YearsAgo() { + Person p = new Person("", "", LocalDate.now().minusYears(10)); + Assertions.assertEquals(10,p.getAge().getYears()); + Assertions.assertEquals(0,p.getAge().getMonths()); + Assertions.assertEquals(0,p.getAge().getDays()); } @Test - void getAgeReturns1DayIfYesterday() throws Exception { + void getAgeReturns1DayIfYesterday() { Person p = new Person("", "", LocalDate.now().minusDays(1)); - - // TODO implement - throw new IllegalArgumentException("you should implement code here"); + Assertions.assertEquals(0, p.getAge().getYears()); + Assertions.assertEquals(0,p.getAge().getMonths()); + Assertions.assertEquals(1,p.getAge().getDays()); } - // TODO some more useful tests + @Test + void getAgeReturnIsPositiv(){ + LocalDate birtDay = LocalDate.now().plusDays(1); + Person p = new Person("", "", birtDay); + if(!p.getAge().isNegative()){ + assert false; + } + } } From 51530bf42045d824de73454bf18f57dcad601420 Mon Sep 17 00:00:00 2001 From: Gion Date: Fri, 8 Oct 2021 22:43:11 +0200 Subject: [PATCH 7/8] Change getAgeReturnIsNotTooHigh with better Error Message --- src/test/java/assertions/PersonTest.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/test/java/assertions/PersonTest.java b/src/test/java/assertions/PersonTest.java index c9b85d7..13720cd 100644 --- a/src/test/java/assertions/PersonTest.java +++ b/src/test/java/assertions/PersonTest.java @@ -60,10 +60,12 @@ void getAgeReturns1DayIfYesterday() { } @Test - void getAgeReturnIsPositiv(){ - LocalDate birtDay = LocalDate.now().plusDays(1); - Person p = new Person("", "", birtDay); - if(!p.getAge().isNegative()){ + void getAgeReturnIsNotTooHigh(){ + LocalDate birthDay = LocalDate.now().plusDays(1); + Person p = new Person("", "", birthDay); + if(p.getAge().isNegative()){ + AssertionError error = new AssertionError("LocalDate birthday " + birthDay + " is set to future"); + System.out.println(error.getMessage()); assert false; } } From c9efee84b336a8b782dfebe880d9ae1fa3cf6bf9 Mon Sep 17 00:00:00 2001 From: Gion Date: Fri, 8 Oct 2021 22:45:57 +0200 Subject: [PATCH 8/8] Change getAgeReturnIsNotTooHigh with better Error Message --- src/test/java/assertions/PersonTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/assertions/PersonTest.java b/src/test/java/assertions/PersonTest.java index 13720cd..c55d9af 100644 --- a/src/test/java/assertions/PersonTest.java +++ b/src/test/java/assertions/PersonTest.java @@ -61,7 +61,7 @@ void getAgeReturns1DayIfYesterday() { @Test void getAgeReturnIsNotTooHigh(){ - LocalDate birthDay = LocalDate.now().plusDays(1); + LocalDate birthDay = LocalDate.now().plusDays(0); Person p = new Person("", "", birthDay); if(p.getAge().isNegative()){ AssertionError error = new AssertionError("LocalDate birthday " + birthDay + " is set to future");