package avis;
import avis.SocialNetwork;
import exception.BadEntry;
import exception.NotItem;
import exception.NotMember;
/**classe permettant de tester la notation d'un Book*/
public class TestReviewItemBook{
public TestReviewItemBook(){
}
public void test() throws BadEntry, Exception {
int testRBOK=0;
int testRBKO=0;
int badEntry=0;
int notMember=0;
int exceptionInc=0;
int notItem=0;
SocialNetwork sn = new SocialNetwork();
System.out.println("Tests de ReviewItemBook");
//Fiche de Test n°7 : levée de l'exception BadEntry pour reviewItemBook
int nbLivres = sn.nbBooks();
int nbMembres = sn.nbMembers();
int nbFilms = sn.nbFilms();
//ajout commentaire avec pseudo vide
try {
sn.reviewItemBook(null, "password", "Titre1", 10, "Commentaire");
System.out.println("Erreur 6.1 : l'ajout d'un commentaire avec un pseudo qui n'est pas instancié est accepté ");
testRBKO++;
}
catch (BadEntry e) {
badEntry++;
testRBOK++;
System.out.println("Information 6.1 : Levee de BadEntry pseudo nul");
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.1, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
}
//ajout commentaire avec pseudo avec espace
try {
sn.reviewItemBook(" ", "password", "Titre1", 10, "Commentaire");
System.out.println("Erreur 6.2 : l'ajout d'un commentaire avec un pseudo qui ne contient pas un caractère, autre que des espaces, est accepté ");
testRBKO++;
}
catch (BadEntry e) {
badEntry++;
System.out.println("Information 6.2 : Levee de BadEntry pseudo ayant que des espaces");
testRBOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.4, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
}
// ajout commentaire avec password vide
try {
sn.reviewItemBook("Pseudo", null, "Titre1", 10, "Commentaire");
System.out.println("Erreur 6.3 : l'ajout d'un commentaire dont le password n'est pas instancié est accepté ");
testRBKO++;
}
catch (BadEntry e) {
badEntry++;
System.out.println("Information 6.3 : Levee de BadEntry password null.");
testRBOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.3, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
}
//ajout de commentaire avec password < 4 caracteres
try {
sn.reviewItemBook("Pseudo", " dhs ", "Titre1", 10, "Commentaire");
System.out.println("Erreur 6.4 : l'ajout d'un livre dont le password ne contient pas au moins 4 caractères, autre que des espaces de début ou de fin, est accepté ");
testRBKO++;
}
catch (BadEntry e) {
badEntry++;
System.out.println("Information 6.4 : Levee de BadEntry password < 4 caracteres");
testRBOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.4, Exception non prévue : " + e);
e.printStackTrace();
}
//ajout de membres avec entrees correctes
nbMembres= sn.nbMembers();
try{
sn.addMember("Pseudo", "password", "profil");
if(sn.nbMembers()!=(nbMembres+1)){
System.out.println("Erreur 6.5 : le nombre de membres apres ajout de 1 n'a pas augmente de 1");
testRBKO++;
}
else {
System.out.println("Information 6.5 : Le nombre de membres apres ajout de 1 n'a bien augmente de 1");
testRBOK++;
}
}
catch(Exception e) {
exceptionInc++;
System.out.println("Erreur 6.5, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testRBKO++;
System.out.println("Erreur 6.5 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testRBOK++;
}
//ajout de livre avec entree correctes
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", "password", "Titre1", "Genre1", "Auteur1",10);
if (sn.nbBooks()!= (nbLivres + 1)){
System.out.println("Erreur 6.6 : le nombre de livres après ajout de 1 livre n'a pas augmenté de 1");
testRBKO++;
}
else{
System.out.println("Information 6.6 : Le nombre de livres après ajout de 1 livre n'a bien augmenté de 1");
testRBOK++;
}
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.6, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
if (sn.nbBooks() != nbLivres){
testRBKO++;
System.out.println("Erreur 6.6 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testRBOK++;
}
//ajout de commentaire avec titre non instancie
try {
sn.reviewItemBook("Pseudo", "password", null, 10, "Commentaire");
System.out.println("Erreur 6.7 : l'ajout d'un commentaire dont le titre n'est pas instancié est accepté ");
testRBKO++;
}
catch (BadEntry e) {
badEntry++;
System.out.println("Information 6.7 : Levee de BadEntry, titre null");
testRBOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.7, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
}
//ajout de commentaire avec titre que des espaces
try {
sn.reviewItemBook("Pseudo", "password", "", 10, "Commentaire");
System.out.println("Erreur 6.8 : l'ajout d'un commentaire dont le titre ne contient que des espaces est accepté ");
testRBKO++;
}
catch (BadEntry e) {
badEntry++;
System.out.println("Information 6.8 : Levee de BadEntry, titre avec que des espaces");
testRBOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.8, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
}
//note negative
try {
sn.reviewItemBook("Pseudo", "password", "Titre", -10, "Commentaire");
System.out.println("Erreur 6.9 : l'ajout d'un commentaire dont la note est négatif est accepté ");
testRBKO++;
}
catch (BadEntry e) {
badEntry++;
System.out.println("Information 6.9 : Levee de BadEntry, note negative");
testRBOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.9, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
}
//ajout de commentaire non instancie
try {
sn.reviewItemBook("Pseudo", "password", "Titre", 10, null);
System.out.println("Erreur 6.10 : l'ajout d'un commentaire qui n'est pas instancié est accepté ");
testRBKO++;
}
catch (BadEntry e) {
badEntry++;
System.out.println("Information 6.10 : Levee de BadEntry, commentaire null");
testRBOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.10, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
}
//Fiche de Test n°8 : levée de l'exception NotMember pour reviewItemBook
//ajout de membres avec entrees correctes
nbMembres= sn.nbMembers();
try{
sn.addMember("Pseudo2", "password2", "profil");
if(sn.nbMembers()!=(nbMembres+1)){
System.out.println("Erreur 6.11 : le nombre de membres apres ajout de 1 n'a pas augmente de 1");
testRBKO++;
}
else{
System.out.println("Information 6.11 : Le nombre de membres apres ajout de 1 n'a bien augmente de 1");
testRBOK++;
}
}
catch(Exception e) {
exceptionInc++;
System.out.println("Erreur 6.11, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbMembers() != nbMembres){
testRBKO++;
System.out.println("Erreur 6.11 : Le nombre de membres a été modifié alors qu'il n'aurait pas du");
}
else{
testRBOK++;
}
}
//ajout de livre avec entree correctes
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo2", "password2", "Titre2", "Genre2", "Auteur2",20);
if (sn.nbBooks()!= (nbLivres + 1)){
System.out.println("Erreur 6.12 : le nombre de livres après ajout de 1 livre n'a pas augmenté de 1");
testRBKO++;
}
else{
System.out.println("Information 6.12 : Le nombre de livres après ajout de 1 livre n'a bien augmenté de 1");
testRBOK++;
}
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.12, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
if (sn.nbBooks() != nbLivres){
testRBKO++;
System.out.println("Erreur 6.12 : Le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testRBOK++;
}
// ajout d'un commentaire avec un pseudo qui n'existe pas
try {
sn.reviewItemBook("PseudoInexistant", "password2", "Titre2",10,"Commentaire");
System.out.println("Erreur 6.13 : L'ajout d'un commentaire avec pseudo inexistant est acceptée");
testRBKO++;
}
catch (NotMember e)
{
notMember++;
System.out.println("Information 6.13 : Levee de NotMember, pseudo inexistant");
testRBOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.13, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
}
//ajout d'un commentaire avec un pseudo et pass incohérent
try {
sn.reviewItemBook("Pseudo2", "passwordInconnu", "Titre2",10,"Commentaire");
System.out.println("Erreur 6.14 : L'ajout d'un commentaire avec pseudo et un mot de passe qui ne correspondent pas est acceptée");
testRBKO++;
}
catch (NotMember e)
{
notMember++;
System.out.println("Information 6.14 : Levee de NotMember, pseudo et un mot de passe qui ne correspondent pas");
testRBOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.14, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
}
//System.out.println("Fiche de Test n°9 : levée de l'exception NotItem");
// ajout d'un livre avec entrees "correctes"
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", "password", "TitreLivre", "GenreLivre", "AuteurLivre",30);
if (sn.nbBooks()!= (nbLivres + 1)){
System.out.println("Erreur 6.15 : le nombre de livres après ajout de 1 livres n'a pas augmenté de 1");
testRBKO++;
}
else{
System.out.println("Information 6.15 : Le nombre de livres après ajout de 1 livres n'a bien augmenté de 1");
testRBOK++;
}
}
catch (Exception e) {
System.out.println("Erreur 6.15, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
if (sn.nbBooks() != nbLivres){
testRBKO++;
System.out.println("Erreur 6.15 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testRBOK++;
}
//ajout d'un film avec entrees correctes pour la suite
nbFilms= sn.nbFilms();
try{
sn.addItemFilm("Pseudo", "password", "TitreFilm" , "GenreFilm", "RealisateurFilm","ScenaristeFilm",10);
if(sn.nbFilms()!=(nbFilms+1)){
System.out.println("Erreur 6.16 : le nombre de Films apres ajout de 1 n'a pas augmente de 1");
testRBKO++;
}
else testRBOK++;
}
catch(Exception e) {
exceptionInc++;
System.out.println("Erreur 6.16, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testRBKO++;
System.out.println("Erreur 6.16 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testRBOK++;
}
//ajout d'un commentaire pour un titre qui n'est pas un titre de livre
try {
sn.reviewItemBook("Pseudo", "password", "TitreFilm",10,"Commentaire");
System.out.println("Erreur 6.17 : L'ajout d'un commentaire pour un titre qui n'existe pas est acceptée");
testRBKO++;
}
catch (NotItem e)
{
notItem++;
System.out.println("Information 6.17 : Levee de NotItem, titre n'est pas un titre de livre");
testRBOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.17, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
}
//ajout d'un commentaire avec entrees correcte
try {
sn.reviewItemBook("Pseudo", "password", "TitreLivre",10,"Commentaire");
System.out.println("Information 6.18 : L'ajout d'un avis a un livre avec des parametres corrects est acceptée");
testRBOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 6.18, Exception non prévue : " + e);
e.printStackTrace();
testRBKO++;
}
System.out.println("Test(s) OK : "+testRBOK);
System.out.println("Test(s) KO : "+testRBKO);
System.out.println("***********************************************************");
}
}