package avis;
import avis.SocialNetwork;
import exception.BadEntry;
import exception.ItemBookAlreadyExists;
import exception.NotMember;
/**
* @author C. Moreaux
* @date avril 2011
* @version V0.1
*/
/**classe permettant de tester l'ajout d'un livre*/
public class TestAddItemBook {
/**
* @param args
*/
public TestAddItemBook(){
}
public void test() {
// TODO Auto-generated method stub
int testABOK=0;
int testABKO=0;
int badEntry=0;
int notMember=0;
int exceptionInc=0;
int itemBookExists=0;
SocialNetwork sn = new SocialNetwork();
System.out.println("Tests de addItemBook");
int nbLivres = sn.nbBooks();
int nbMembres = sn.nbMembers();
//Fiche de Test n°1 : levée de l'exception BedEntry pour addItemBook
//ajout livre avec pseudo vide
try {
sn.addItemBook(null, "qsdfgh", "Titre1", "Genre1", "Auteur1",10);
System.out.println("Erreur 4.1 : l'ajout d'un livre avec un pseudo qui n'est pas instancié est accepté ");
testABKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.1 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else
testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.1, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.1 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//ajout livre avec pseudo avec espace
nbLivres = sn.nbBooks();
try {
sn.addItemBook(" ", "qsdfgh", "Titre1", "Genre1", "Auteur1",10);
System.out.println("Erreur 4.2 : l'ajout d'un livre avec un pseudo qui ne contient pas un caractère, autre que des espaces, est accepté ");
testABKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.2 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else
testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.2, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.2 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
// ajout livre avec password vide
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", null, "Titre1", "Genre1", "Auteur1",10);
System.out.println("Erreur 4.3 : l'ajout d'un livre dont le password n'est pas instancié est accepté ");
testABKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.3 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else
testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.3, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.3 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//ajout de livre avec password < 4 caracteres
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo"," qwd ", "Titre1", "Genre1", "Auteur1",10);
System.out.println("Erreur 4.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é ");
testABKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.4 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else
testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.4, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.4 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//ajout de membres avec entrees correctes pour la suite
nbMembres= sn.nbMembers();
try{
sn.addMember("Pseudo", "password", "profil");
if(sn.nbMembers()!=(nbMembres+1)){
System.out.println("Erreur 4.5 : le nombre de membres apres ajout de 1 n'a pas augmente de 1");
testABKO++;
}
else testABOK++;
}
catch(Exception e) {
exceptionInc++;
System.out.println("Erreur 4.5, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.5 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//ajout de livre avec titre non instancie
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", "password", null, "Genre1", "Auteur1",10);
System.out.println("Erreur 4.6 : l'ajout d'un livre dont le titre n'est pas instancié est accepté ");
testABKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.6 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else
testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.6, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.6 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//ajout de livre avec titre que des espaces
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", "password","", "Genre1", "Auteur1",10);
System.out.println("Erreur 4.7 : l'ajout d'un livre dont le titre ne contient que des espaces est accepté ");
testABKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.7 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else
testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.7, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.7 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//ajout de livre avec genre non instancie
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", "password", "Titre1", null, "Auteur1",10);
System.out.println("Erreur 4.8 : l'ajout d'un livre dont le genre n'est pas instancié est accepté ");
testABKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.8 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else
testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.8, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.8 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//ajout de livre avec auteur non instancie
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", "password", "Titre1", "Genre1", null,10);
System.out.println("Erreur 4.9 : l'ajout d'un livre dont l'auteur n'est pas instancié est accepté ");
testABKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.9 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else
testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.9, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.9 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//nombre de page negatif
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", "password", "Titre1", "Genre1", "Auteur1", -10);
System.out.println("Erreur 4.10 : l'ajout d'un livre dont le nombre de page est négatif est accepté ");
testABKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.10 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else
testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.10, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.10 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//nombre de page =0
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", "password", "Titre1", "Genre1", "Auteur1",0);
System.out.println("Erreur 4.11 : l'ajout d'un livre dont le nombre de page est égal à 0 est accepté ");
testABKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.11 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.11, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.11 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//Fiche de Test n°2 : levée de l'exception NotMember pour addItemBook
//ajout de membres avec entrees correctes pour la suite
nbMembres= sn.nbMembers();
try{
sn.addMember("Pseudo2", "password2", "profil");
if(sn.nbMembers()!=(nbMembres+1)){
System.out.println("Erreur 4.12 : le nombre de membres apres ajout de 1 n'a pas augmente de 1");
testABKO++;
}
else testABOK++;
}
catch(Exception e) {
exceptionInc++;
System.out.println("Erreur 4.12, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.12 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
// ajout d'un livre avec un pseudo qui n'existe pas
nbLivres = sn.nbBooks();
try {
sn.addItemBook("PseudoInexistant", "password2", "Titre1", "Genre1", "Auteur1",10);
System.out.println("Erreur 4.13 : L'ajout d'un livre avec pseudo inexistant est acceptée");
testABKO++;
}
catch (NotMember e)
{
notMember++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.13 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else
testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.13, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.13 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//ajout d'un livre avec un pseudo et pass incohérent
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo2", "passwordInconnu", "Titre1", "Genre1", "Auteur1",10);
System.out.println("Erreur 4.14 : L'ajout d'un livre avec pseudo et un mot de passe qui ne correspondent pas est acceptée");
testABKO++;
}
catch (NotMember e)
{
notMember++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.14 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else
testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.14, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.14 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//Fiche de Test n°3 : levée de l'exception ItemBookAlreadyExists pour addItemBook
// ajout de 3 livres avec entrees "correctes"
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", "password", "Titre1", "Genre1", "Auteur1",10);
sn.addItemBook("Pseudo", "password", "Titre2", "Genre2", "Auteur2",20);
sn.addItemBook("Pseudo", "password", "Titre3", "Genre3", "Auteur3",30);
if (sn.nbBooks()!= (nbLivres + 3)){
System.out.println("Erreur 4.15 : le nombre de livres après ajout de 3 livres n'a pas augmenté de 3");
testABKO++;
}
else
testABOK++;
}
catch (Exception e) {
System.out.println("Erreur 4.15, Exception non prévue : " + e);
e.printStackTrace();
testABKO++;
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.15 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//ajout d'un livre avec en paramètre un titre de livre identique au titre de livre du premier livre correctement ajouté
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", "password", "Titre1", "Genre1", "Auteur1",10);
System.out.println("Erreur 4.16 : L'ajout d'un livre avec un titre de livre identique au titre de livre du premier livre correctement ajouté est acceptée");
testABKO++;
}
catch (ItemBookAlreadyExists e)
{
itemBookExists++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.16 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else
testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.16, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.16 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testABOK++;
}
//ajout d'un livre avec en paramètre un titre de livre existant (mais avec casse différente)
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", "password", "TITRE1", "Genre1", "Auteur1",10);
System.out.println("Erreur 4.17 : L'ajout d'un livre avec un titre existant mais avec casse différente est acceptée");
testABKO++;
}
catch (ItemBookAlreadyExists e)
{
itemBookExists++;
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.17 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.17, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
System.out.println("Erreur 4.17 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testABKO++;
}
else testABOK++;
}
//ajout d'un livre avec en paramètre un titre de livre existant (mais avec des leadings et trailings blanks)
nbLivres = sn.nbBooks();
try {
sn.addItemBook("Pseudo", "password", " Titre1 ", "Genre", "Auteur",10);
System.out.println("Erreur 4.18 : L'ajout d'un livre avec un titre de livre existant mais avec des leadings et trailings blanks est acceptée");
testABKO++;
}
catch (ItemBookAlreadyExists e)
{
itemBookExists++;
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.18 : le nombre de livres après tentative d'ajout refusée a été modifié");
}
else testABOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 4.18, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testABKO++;
System.out.println("Erreur 4.18 : le nombre de livres après tentative d'ajout refusée a été modifié");
}
else testABOK++;
}
//compte rendu du test
System.out.println("Test(s) OK : "+testABOK);
System.out.println("Test(s) KO : "+testABKO);
System.out.println("***********************************************************");
}
public static void main (String args[]){
}
}