BRE03

Projet PHPUnit

Étape 0 : GitHub

Créez un repository GitHub public avec un README et appelez-le bre03-phpunit.

Étape 1 : Post et PostTest

Vous allez créer une classe Post.

Les attributs privés

Constructeur

Le constructeur prends tous les champs en paramètre et les initialise :

Règles de validation

Getters et Setters

Tous les attributs ont des getters et setters publics.

Test

Rédigez le test unitaire pour la classe Post.

Étape 2 : User et UserTest

Vous allez créer une classe User.

Les attributs privés

Constructeur

Le constructeur prends tous les champs en paramètre et les initialise :

Règles de validation

Getters et Setters

Tous les attributs ont des getters et setters publics.

Méthodes publiques

Test

Rédigez le test unitaire pour la classe User.

Étape 3 : Guard

Vous allez créer une classe Guard.

Méthodes publiques

giveAccess

Si le Post est privé et que le User est ANONYMOUS : une exception est levée indiquant que l’utilisateur ne peut pas être anonyme

Si le Post est privé et que le User est USER : le User devient ADMIN

Si le Post est privé et que le User est ADMIN : rien ne se passe

Si le Post est public et que le User est ANONYMOUS Le User devient USER

Si le post est public et que le User est USER ou ADMIN Rien ne se passe

removeAccess

Si le Post est privé et que le User est ANONYMOUS : rien ne se passe

Si le Post est privé et que le User est USER : le User devient ANONYMOUS

Si le Post est privé et que le User est ADMIN : le User devient USER

Si le Post est public et que le User est ANONYMOUS Rien ne se passe

Si le post est public et que le User est USER Le User devient ANONYMOUS

Si le post est public et que le User est ADMIN Le User devient USER

Test

Rédigez le test unitaire pour la classe Guard.