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
16 changes: 12 additions & 4 deletions src/test/java/java17/ex01/Function_01_Test.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,17 @@ public class Function_01_Test {
// TODO le nom sera de la forme "last_<ENTIER>"
// TODO l'age sera de la forme "<ENTIER>"
// TODO le mot de passe sera de la forme "pass_<ENTIER>"
private Function<Integer, Person> intToPerson = null;
private Function<Integer, Person> intToPerson = (Integer entier) -> {
Person person = new Person("first_" + entier, "last_" + entier, entier, "pass_" + entier);
return person;
};
// end::intToPerson[]

@Test
public void test_intToPerson() throws Exception {

// TODO invoquer la fonction intToPerson avec en paramètre l'entier 10.
Person result = null;
Person result = intToPerson.apply(10);

assert result.getFirstname().equals("first_10");
assert result.getLastname().equals("last_10");
Expand All @@ -43,7 +46,12 @@ public void test_intToPerson() throws Exception {
// TODO Compléter la définition de cette fonction
// TODO la propriété owner est valorisé avec la personne en paramètre
// TODO la propriété balance est valorisé à 1000
private Function<Person, Account> personToAccount = null;
private Function<Person, Account> personToAccount = (Person person) -> {
Account account = new Account();
account.setOwner(person);
account.setBalance(1000);
return account;
};
// end::personToAccount[]

@Test
Expand All @@ -52,7 +60,7 @@ public void test_personToAccount() throws Exception {
Person person = new Person("Jules", "France", 10, "pass");

// TODO invoquer la fonction personToAccount
Account result = null;
Account result = personToAccount.apply(person);

assert result.getOwner().equals(person);
assert result.getBalance().equals(1000);
Expand Down
10 changes: 8 additions & 2 deletions src/test/java/java17/ex02/Function_02_Test.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,20 @@ public class Function_02_Test {
// tag::buildAccount[]
// TODO Compléter la fonction buildAccount
// TODO la fonction possède 2 paramètres en entrée : une personne et un solde
BiFunction<Person, Integer, Account> buildAccount = null;
BiFunction<Person, Integer, Account> buildAccount = (Person person,Integer solde) -> {
Account account = new Account();
account.setOwner(person);
account.setBalance(solde);
return account;
};
// end::buildAccount[]

@Test
public void test_build_account() throws Exception {

// TODO invoquer la fonction buildAccount pour que le test soit passant
Account account = null;
Person person = new Person("John", "France", 80, "pass");
Account account = buildAccount.apply(person, 500);

assert account.getBalance().equals(500);
assert account.getOwner().getFirstname().equals("John");
Expand Down
11 changes: 9 additions & 2 deletions src/test/java/java17/ex03/Function_03_Test.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,14 @@ public class Function_03_Test {
// TODO l'enfant possède le prenom "<PRENOM_PERE> <PRENOM_MERE>"
// TODO l'age de l'enfant est 0
// TODO le mot de passe de l'enfant est null
BinaryOperator<Person> makeAChild = null;
BinaryOperator<Person> makeAChild = (Person father, Person mother) -> {
Person child = new Person();
child.setFirstname(father.getFirstname() + " " + mother.getFirstname());
child.setLastname(father.getLastname());
child.setAge(0);
child.setPassword(null);
return child;
};
// end::makeAChild[]


Expand All @@ -28,7 +35,7 @@ public void test_makeAChild() throws Exception {
Person mother = new Person("Aline", "Lebreton", 22, "alino");

// TODO compléter le test pour qu'il soit passant
Person child = null;
Person child = makeAChild.apply(father, mother);

assert child.getFirstname().equals("John Aline");
assert child.getLastname().equals("France");
Expand Down
4 changes: 2 additions & 2 deletions src/test/java/java17/ex04/Function_04_Test.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ <T> List<T> filter(List<T> list, Predicate<T> predicate) {
// tag::adult[]
// TODO Compléter la fonction
// TODO AGE >=18
Predicate<Person> adult = null;
Predicate<Person> adult = (Person person) -> person.getAge() >= 18;
// end::adult[]

@Test
Expand All @@ -40,7 +40,7 @@ public void test_predicate() throws Exception {
List<Person> personList = Data.buildPersonList();

// TODO invoquer la méthode filter pour que le test soit passant
List<Person> result = null;
List<Person> result = filter(personList,adult);

assert result.size() == 4;

Expand Down
14 changes: 11 additions & 3 deletions src/test/java/java17/ex05/Function_05_Test.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,19 @@ public class Function_05_Test {
//tag::functions[]
// TODO compléter la fonction
// TODO modifier le mot de passe en "secret"
Consumer<Person> changePasswordToSecret = null;
Consumer<Person> changePasswordToSecret = person -> person.setPassword("secret");

// TODO compléter la fonction
// TODO vérifier que l'age > 4 avec une assertion JUnit
Consumer<Person> verifyAge = null;
Consumer<Person> verifyAge = person -> {
assert person.getAge() > 4 : "L'âge de " + person.getFirstname() + " " + person.getLastname() + " n'est pas supérieur à 4!";
};

// TODO compléter la fonction
// TODO vérifier que le mot de passe est "secret" avec une assertion JUnit
Consumer<Person> verifyPassword = null;
Consumer<Person> verifyPassword = person -> {
assert person.getPassword().equals("secret") : "Mdp pas secret. Voici le mdp : " + person.getPassword();
};
//end::functions[]


Expand All @@ -35,12 +39,16 @@ public void test_consumer() throws Exception {
// TODO invoquer la méthode personList.forEach pour modifier les mots de passe en "secret"
// personList.forEach...

personList.forEach(person -> changePasswordToSecret.accept(person));

// TODO remplacer la boucle for par l'invocation de la méthode forEach
// TODO Utiliser la méthode andThen pour chaîner les vérifications verifyAge et verifyPassword
// personList.forEach...
for(Person p : personList) {
verifyAge.accept(p);
verifyPassword.accept(p);
}

personList.forEach(person -> verifyAge.andThen(verifyPassword).accept(person));
}
}
4 changes: 2 additions & 2 deletions src/test/java/java17/ex06/Function_06_Test.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ public class Function_06_Test {
// TODO la méthode retourne une chaîne de caractères de la forme [age=<AGE>] (exemple : [age=12])
String formatAge(Supplier<Person> supplier) {
// TODO
return null;
return "[age="+supplier.get().getAge().toString()+"]";
}
// end::formatAge[]


@Test
public void test_supplier_formatAge() throws Exception {
// TODO compléter le test unitaire pour qu'il soit passant
String result = formatAge(null);
String result = formatAge(() -> new Person("John", "France", 35, "pass"));

assert result.equals("[age=35]");
}
Expand Down
6 changes: 3 additions & 3 deletions src/test/java/java17/ex07/Function_07_Test.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ public class Function_07_Test {
// TODO ex. "(10+11)=21", "(5-2)=3"
String format(int nb1, int nb2, String symbol, IntBinaryOperator operator) {
// TODO
return null;
return "("+nb1+symbol+nb2+")="+operator.applyAsInt(nb1, nb2);
}
// end::format[]

// TODO définir sum pour que le test test_format_sum() soit passant
IntBinaryOperator sum = null;
IntBinaryOperator sum = (int nb1, int nb2) -> nb1 + nb2;

@Test
public void test_format_sum() throws Exception {
Expand All @@ -30,7 +30,7 @@ public void test_format_sum() throws Exception {
}

// TODO définir substract afin que le test test_format_subtract() soit passant
IntBinaryOperator substract = null;
IntBinaryOperator substract = (int nb1, int nb2) -> nb1 - nb2;

@Test
public void test_format_subtract() throws Exception {
Expand Down