package avis;
import avis.SocialNetwork;
import exception.BadEntry;
import exception.ItemFilmAlreadyExists;
import exception.NotMember;
/**classe permettant de tester l'ajout d'un Film*/
public class TestAddItemFilm {
public TestAddItemFilm(){
}
public int test() {
// TODO Auto-generated method stub
int testAFOK=0;
int testAFKO=0;
int badEntry=0;
int notMember=0;
int exceptionInc=0;
int itemFilmExists=0;
SocialNetwork sn = new SocialNetwork();
System.out.println("Tests de addItemFilm");
//Fiche de Test n°4 : levée de l'exception BadEntry pour addItemFilm
int nbLivres = sn.nbBooks();
int nbFilms = sn.nbFilms();
int nbMembres = sn.nbMembers();
//ajout film avec pseudo vide
try {
sn.addItemFilm(null, "qsdfgh", "Titre", "Genre", "Realisateur","Scenariste",10);
System.out.println("Erreur 5.1 : l'ajout d'un film avec un pseudo qui n'est pas instancié est accepté ");
testAFKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.1 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.1, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.1 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//ajout film avec pseudo avec espace
nbFilms = sn.nbFilms();
try {
sn.addItemFilm(" ", "qsdfgh", "Titre", "Genre", "Realisateur","Scenariste",10);
System.out.println("Erreur 5.2 : l'ajout d'un film avec un pseudo qui ne contient pas un caractère, autre que des espaces, est accepté ");
testAFKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.2 : le nombre de films a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.2, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.2 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
// ajout film avec password vide
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("Pseudo", null, "Titre", "Genre", "Realisateur","Scenariste",10);
System.out.println("Erreur 5.3 : l'ajout d'un film dont le password n'est pas instancié est accepté ");
testAFKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.3 : le nombre de films a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.3, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.3 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//ajout d'un film avec password < 4 caracteres
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("Pseudo"," qwd ", "Titre", "Genre", "Realisateur","Scenariste",10);
System.out.println("Erreur 5.4 : l'ajout d'un film dont le password ne contient pas au moins 4 caractères, autre que des espaces de début ou de fin, est accepté ");
testAFKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.4 : le nombre de films a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.4, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.4 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//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 5.5 : le nombre de membres apres ajout de 1 n'a pas augmente de 1");
testAFKO++;
}
else testAFOK++;
}
catch(Exception e) {
exceptionInc++;
System.out.println("Erreur 5.5, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testAFKO++;
System.out.println("Erreur 5.5 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//ajout de film avec titre non instancie
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("Pseudo", "password", null, "Genre", "Realisateur","Scenariste",10);
System.out.println("Erreur 5.6 : l'ajout d'un film dont le titre n'est pas instancié est accepté ");
testAFKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.6 : le nombre de films a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.6, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.6 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//ajout de film avec titre que des espaces
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("Pseudo", "password","", "Genre", "Realisateur","Scenariste",10);
System.out.println("Erreur 5.7 : l'ajout d'un film dont le titre ne contient que des espaces est accepté ");
testAFKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.7 : le nombre de films a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.7, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.7 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//ajout de film avec genre non instanciee
nbLivres = sn.nbBooks();
try {
sn.addItemFilm("Pseudo", "password", "Titre", null, "Realisateur","Scenariste",10);
System.out.println("Erreur 5.8 : l'ajout d'un film dont le genre n'est pas instancié est accepté ");
testAFKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.8 : le nombre de films a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.8, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.8 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//ajout de film avec realisateur non instancie
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("Pseudo", "password", "Titre", "Genre", null,"Scenariste",10);
System.out.println("Erreur 5.9 : l'ajout d'un film dont le réalisateur n'est pas instancié est accepté ");
testAFKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.9 : le nombre de films a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.9, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.9 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
// Scenariste non instancié
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("Pseudo", "password", "Titre", "Genre", "Realisateur",null,10);
System.out.println("Erreur 5.10 : l'ajout d'un film dont le scénariste n'est pas instancié est accepté ");
testAFKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.10 : le nombre de films a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.10, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.10 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//duree negative
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("Pseudo", "password", "Titre", "Genre", "Realisateur","Scenariste",-10);
System.out.println("Erreur 5.11 : l'ajout d'un film dont la duree est négative est accepté ");
testAFKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.11 : le nombre de film a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.11, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.11 : le nombre de film a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//duree =0
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("Pseudo", "password", "Titre", "Genre", "Realisateur","Scenariste",0);
System.out.println("Erreur 5.12 : l'ajout d'un film dont la duree est égal à 0 est accepté ");
testAFKO++;
}
catch (BadEntry e) {
badEntry++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.12 : le nombre de film a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.12, Exception non prevue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.12 : le nombre de film a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//Fiche de Test n°5 : levée de l'exception NotMember pour addItemFilm
//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 5.13 : le nombre de membres apres ajout de 1 n'a pas augmente de 1");
testAFKO++;
}
else testAFOK++;
}
catch(Exception e) {
exceptionInc++;
System.out.println("Erreur 5.13, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbBooks() != nbLivres){
testAFKO++;
System.out.println("Erreur 5.13 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
// ajout d'un film avec un pseudo qui n'existe pas
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("PseudoInexistant","password2", "Titre1" , "Genre1", "Realisateur1","Scenariste1",10);
System.out.println("Erreur 5.14 : L'ajout d'un film avec pseudo inexistant est acceptée");
testAFKO++;
}
catch (NotMember e)
{
notMember++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.14 : le nombre de films a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.14, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.14 : le nombre de Films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//ajout d'un film avec un pseudo et pass incohérent
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("Pseudo2", "passwordInconnu", "Titre1" , "Genre1", "Realisateur1","Scenariste1",10);
System.out.println("Erreur 5.15 : L'ajout d'un film avec pseudo et un mot de passe qui ne correspondent pas est acceptée");
testAFKO++;
}
catch (NotMember e)
{
notMember++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.15 : le nombre de livres a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.15, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.15 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//Fiche de Test n°6 : levée de l'exception ItemFilmAlreadyExists pour addItemFilm
//ajout de 3 films avec entrees correctes pour la suite
nbFilms= sn.nbFilms();
try{
sn.addItemFilm("Pseudo", "password", "Titre1" , "Genre1", "Realisateur1","Scenariste1",10);
sn.addItemFilm("Pseudo", "password", "Titre2" , "Genre2", "Realisateur2","Scenariste2",20);
sn.addItemFilm("Pseudo", "password", "Titre3" , "Genre3", "Realisateur3","Scenariste3",30);
if(sn.nbFilms()!=(nbFilms+3)){
System.out.println("Erreur 5.16 : le nombre de Films apres ajout de 3 n'a pas augmente de 3");
testAFKO++;
}
else testAFOK++;
}
catch(Exception e) {
exceptionInc++;
System.out.println("Erreur 5.16, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.16 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//ajout d'un film avec en paramètre un titre de film identique au titre de livre du premier livre correctement ajouté
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("Pseudo", "password", "Titre1" , "Genre1", "Realisateur1","Scenariste1",10);
System.out.println("Erreur 5.16 : L'ajout d'un film avec un titre de film identique au titre de livre du premier livre correctement ajouté est acceptée");
testAFKO++;
}
catch (ItemFilmAlreadyExists e)
{
itemFilmExists++;
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.17 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else
testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.17, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.17 : le nombre de films a été modifié alors qu'il n'aurait pas du");
}
else testAFOK++;
}
//ajout d'un film avec en paramètre un titre de film existant (mais avec casse différente)
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("Pseudo", "password", "TITRE1" , "Genre1", "Realisateur1","Scenariste1",10);
System.out.println("Erreur 5.18 : L'ajout d'un film avec un titre existant mais avec casse différente est acceptée");
testAFKO++;
}
catch (ItemFilmAlreadyExists e)
{
itemFilmExists++;
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.18 : le nombre de film a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.18, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
System.out.println("Erreur 5.18 : le nombre de film a été modifié alors qu'il n'aurait pas du");
testAFKO++;
}
else testAFOK++;
}
//ajout d'un film avec en paramètre un titre de film existant (mais avec des leadings et trailings blanks)
nbFilms = sn.nbFilms();
try {
sn.addItemFilm("Pseudo", "password", " Titre1 " , "Genre1", "Realisateur1","Scenariste1",10);
System.out.println("Erreur 5.19 : L'ajout d'un film avec un titre de livre existant mais avec des leadings et trailings blanks est acceptée");
testAFKO++;
}
catch (ItemFilmAlreadyExists e)
{
itemFilmExists++;
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.19 : le nombre de film après tentative d'ajout refusée a été modifié");
}
else testAFOK++;
}
catch (Exception e) {
exceptionInc++;
System.out.println("Erreur 5.19, Exception non prévue : " + e);
e.printStackTrace();
if (sn.nbFilms() != nbFilms){
testAFKO++;
System.out.println("Erreur 5.19 : le nombre de film après tentative d'ajout refusée a été modifié");
}
else testAFOK++;
}
//compte rendu du test
System.out.println("Test(s) OK : "+testAFOK);
System.out.println("Test(s) KO : "+testAFKO);
System.out.println("***********************************************************");
return testAFKO;
}
public static void main (String args[]){
}
}