NFA035, second devoir

Les sources du devoir

Dans ce devoir, on vous demande d'implémenter un certain nombre de classes pour gérer un catalogue et des factures. Typiquement, on créera un seul catalogue, et tous les produits utilisés dans l'application seront issus de ce même catalogue.

cela garantira en particulier qu'un seul produit avec un identifiant donné existe.

Dans chacune de ces classes, nous vous demandons d'implémenter un certain nombre de méthodes. les tests utilisés pour la notation vérifieront si les méthodes des classes que vous avez écrites fonctionnent correctement.

La classe Produit

Complétez la classe devoir.collections.Produit (il n'y a rien de complexe dans cette classe).

La classe Catalogue

Complétez la classe devoir.collections.Catalogue.

Elle doit impérativement avoir un constructeur par défaut, sinon tous les tests échoueront.

Elle comporte beaucoup de méthodes. Écrivez-les et testez-les une par une, dans l'ordre dans lequel elles apparaissent.

La première méthode (creerProduit) sera beaucoup utilisée par les tests, car elle servira à créer les produits. C'est ce qu'on appelle une factory method (une méthode servant à créer un nouvel objet).

La classe Facture

Complétez la classe Facture, qui représente une facture. Dans une facture, on a potentiellement commandé plusieurs produits, éventuellement en plusieurs exemplaires.

Le point principal est qu'on peut ajouter ou retirer des produits dans la facture, et que cela modifiera la quantité de produits commandés. Par exemple, si j'ai commandé 3 souris et 2 disques durs, si je commande 5 souris de plus, j'aurai au total commandé 8 souris et 2 disques durs.

Les méthodes sont décrites dans la classe.

Quelques idées de tests

Je vous laisse écrire vos jeux de tests... Néanmoins, quelques pistes:

Si vous avez comme erreur "null" c'est qu'un des tests a levé une exception quelconque, avant même qu'un assert échoue.