Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions src/main/java/assertions/Person.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,15 @@ public String getFullName(){
public Period getAge(){
return Period.between(birthDate, LocalDate.now());
}

public Boolean isTeen(int years){
// Is teen if Age 12 <= && >=18
Period age = getAge();
years = age.getYears();
if (years >= 12 && years <= 18){
return true;
}
return false;

}
}
20 changes: 16 additions & 4 deletions src/main/java/fakes/UserController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,28 @@

public class UserController {

private static Database db = FileDatabase.getInstance();
private Database database;
private UserValidator userValidator;

public UserController(UserValidator userValidator) {

this.userValidator = userValidator;
}
public UserController(UserValidator userValidator, Database database) {

this.userValidator = userValidator;
this.database = database;
}


public Message create(User user){
if(user == null){
throw new IllegalArgumentException("user required");
}
Boolean canCreate = UserValidator.isValidUsername(user.getUsername())
&& !UserValidator.doesUsernameExist(user.getUsername());
Boolean canCreate = this.userValidator.isValidUsername(user.getUsername())
&& !this.userValidator.doesUsernameExist(user.getUsername());
if(canCreate){
db.addUser(user);
database.addUser(user);
return Message.createOK();
}else{
return Message.createNotOK();
Expand Down
26 changes: 20 additions & 6 deletions src/main/java/fakes/UserValidator.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,36 @@ public class UserValidator {

private static Database db = FileDatabase.getInstance();

public static boolean doesUsernameExist(String username){
try {
public boolean doesUsernameExist(String username) {
/*try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}*/

for(User user : db.getUsers()){
if (user.getUsername().equals(username)){
for (User user : db.getUsers()) {
if (user.getUsername().equals(username)) {
return true;
}
}
return false;
}

public static boolean isValidUsername(String username){
public boolean isValidUsername(String username) {

char[] letters = username.toCharArray();
int position = 0;

for (char letter: letters){
if (!Character.isLetter(letter)|| !Character.isAlphabetic(letter)){
if (Character.isDigit(letter) && position > 0){
continue;
}
return false;
}
position+=1;

}
return true;
}
}
59 changes: 54 additions & 5 deletions src/test/java/assertions/PersonTest.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package assertions;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.time.LocalDate;
import java.time.Period;

class PersonTest {

Expand All @@ -11,28 +13,75 @@ class PersonTest {
@Test
void getFullNameReturnsFirstnameSpaceLastname(){
// TODO implement
throw new IllegalArgumentException("you should implement code here");
// throw new IllegalArgumentException("you should implement code here");
Person pers1 = new Person("Tobias", "Meier", null);
Assertions.assertEquals("Tobias Meier",pers1.getFullName());

}

// TODO some more useful tests
@Test
void getFullNameCheckSpaceBetween(){
Person pers1 = new Person("Tobias", "Meier", null);
String fullName = pers1.getFullName();
Assertions.assertTrue(fullName.contains(" "), "True if space between firstname and lastname");
}

@Test
void isTeenAge18_12ReturnTrue(){
Person pers1 = new Person("", "", LocalDate.of(2003, 3,11));
Person pers2 = new Person("", "", LocalDate.of(2009, 3, 11));
Period age1 = pers1.getAge();
Period age2 = pers2.getAge();
int years1 = age1.getYears();
int years2 = age2.getYears();

Assertions.assertEquals(18, age1.getYears());
Assertions.assertEquals(12, age2.getYears());
Assertions.assertTrue(pers1.isTeen(years1),"Is teen = true");
Assertions.assertTrue(pers2.isTeen(years2),"Is teen = true");

}
@Test
void isNotTeenAge11_19ReturnFalse(){
Person pers1 = new Person("", "", LocalDate.of(2010, 3,11));
Person pers2 = new Person("", "", LocalDate.of(2002, 3, 11));
Period age1 = pers1.getAge();
Period age2 = pers2.getAge();
int years1 = age1.getYears();
int years2 = age2.getYears();

Assertions.assertEquals(11, age1.getYears());
Assertions.assertEquals(19, age2.getYears());
Assertions.assertFalse(pers1.isTeen(years1), "Not teen = false");
Assertions.assertFalse(pers2.isTeen(years2), "Not teen = false");
}


// --- getAge

@Test
void getAgeReturns10YearsIfBornIn2009() throws Exception {
void getAgeReturns10YearsIfBorn10YearsFromToday() throws Exception {
// TODO verbessern. Hinweis: Repeatable (wiederholbar) zu jeder Zeit.
Person p = new Person("", "", LocalDate.of(2009, 1, 1));
Person p = new Person("", "", LocalDate.now().minusYears(10));

throw new IllegalArgumentException("you should implement code here");
//throw new IllegalArgumentException("you should implement code here");
Period age = p.getAge();
Assertions.assertEquals(10,age.getYears());
Assertions.assertEquals(0, age.getMonths());
Assertions.assertEquals(0, age.getDays());
}

@Test
void getAgeReturns1DayIfYesterday() throws Exception {
Person p = new Person("", "", LocalDate.now().minusDays(1));

// TODO implement
throw new IllegalArgumentException("you should implement code here");
//throw new IllegalArgumentException("you should implement code here");
Period age = p.getAge();
Assertions.assertEquals(1,age.getDays());
Assertions.assertEquals(0, age.getMonths());
Assertions.assertEquals(0, age.getYears());
}

// TODO some more useful tests
Expand Down
34 changes: 34 additions & 0 deletions src/test/java/fakes/FakeUserValidator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package fakes;
// Stupp
public class FakeUserValidator extends UserValidator{


private boolean doesUsernameExist;
private boolean isValidUsername;

public FakeUserValidator(){

}

public FakeUserValidator(boolean doesUserNameExist, boolean isValidUsername ) {
this.doesUsernameExist = doesUserNameExist;
this.isValidUsername = isValidUsername;
}

/*@Override
public boolean doesUsernameExist(String username) {
if(username.equals("kalua")){
return true;
}
return false;
}*/
public boolean DoesUsernameExist(String username){
return doesUsernameExist;
}

public boolean isValidUsername(String username){
return isValidUsername;
}


}
19 changes: 19 additions & 0 deletions src/test/java/fakes/MockDatabase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package fakes;

import java.util.ArrayList;
import java.util.List;

public class MockDatabase extends Database{
List<User> users = new ArrayList<>();

@Override
public void addUser(User user) {
users.add(user);

}

@Override
public List<User> getUsers() {
return users;
}
}
Loading