예제 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Test de la classe Oeuvre\n");

            //Pour faire ce test, la classe n'était plus abstract

            /*
             * Oeuvre oeuvre = new Oeuvre("oeuvre", "CheminOeuvre", DateTime.Now, new ObservableDictionary<StringVérifié, StringVérifié>(),
             *  "Ceci est le synopsis de l'oeuvre 1", "Ceci est le commentaire de l'oeuvre 1");
             *
             * Console.WriteLine($"Nom : {oeuvre.Nom}\nImage : {oeuvre.Image}\nSortie : {oeuvre.Sortie}\n" +
             *                $"Synopsis : {oeuvre.Synopsis}\nCommentaire : {oeuvre.Commentaire}");
             *
             * oeuvre.AjouterInformation(new StringVérifié("PremièreInfo"), new StringVérifié("L'infoUtile"));
             * oeuvre.AjouterInformation(new StringVérifié("SecondeInfo"), new StringVérifié("L'infoNonIndispensable"));
             * oeuvre.AjouterInformation(new StringVérifié("TroisièmeInfo"), new StringVérifié("L'infoInutile"));
             *
             * Console.WriteLine("\nLes informations de l'oeuvre :");
             * Console.WriteLine(oeuvre.InfoToString());
             *
             * Console.WriteLine("\nModification des informations de l'oeuvre :");
             * Console.WriteLine($"Suppression de l'info inutile : {oeuvre.RetirerInformation("TroisièmeInfo")}");
             *
             * String? info2 = oeuvre.RechercherInformation("SecondeInfo");
             * Console.WriteLine(info2 == null ? "SecondeInfo introuvable par RechercherInformation !(pas bien)" :
             *  "SecondeInfo trouvée par RechercherInformation !(bien)");
             * String? info3 = oeuvre.RechercherInformation("TroisièmeInfo");
             * Console.WriteLine(info3 == null ? "TroisièmeInfo introuvable par RechercherInformation car supprimée (bien)" :
             *  "TroisièmeInfo trouvée par RechercherInformation alors que supprimée !(pas bien)");
             *
             * Console.WriteLine("\nCompte combien de fois apparait la chaine \"Oeuvre\"");
             * Console.WriteLine($"Doit en trouver 2, et en trouve : {oeuvre.ContientMotClé("Oeuvre")}");
             * Console.WriteLine();
             * Console.WriteLine("Compte combien de fois apparait la chaine \"info\"");
             * Console.WriteLine($"Doit en trouver 4, et en trouve : {oeuvre.ContientMotClé("info")}");
             */

            //Ce test permet de ne pas instancier une Oeuvre directement
            StubOeuvreDataManager oeuvreDataManager = new StubOeuvreDataManager();

            oeuvreDataManager.ToutRetirer();
            oeuvreDataManager.Ajouter(new Autre("unAutre", "CheminImageAutre", DateTime.Today, "unCréateur",
                                                new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfo"), new StringVérifié("UnePremièreInfo") }, { new StringVérifié("NomSecondeInfo"),
                                                                                                  new StringVérifié("UneSecondeInfo") }
            }, "Ceci est un synopsis - Autre",
                                                "Ceci est un commentaire personnel - Autre"));

            Oeuvre oeuvre = (oeuvreDataManager.ObtenirParNom("unAutre") as Oeuvre);

            WriteLine(oeuvre);

            oeuvre.AjouterInformation(new StringVérifié("TroisièmeInfo"), new StringVérifié("L'infoInutile"));

            WriteLine("\nModification des informations de l'oeuvre :");
            WriteLine($"Suppression de l'info inutile : {oeuvre.RetirerInformation(new StringVérifié("TroisièmeInfo"))}");

            StringVérifié info1 = oeuvre.RechercherInformation(new StringVérifié("NomPremièreInfo"));

            WriteLine(info1 == null ? "PremièreInfo introuvable par RechercherInformation !(pas bien)" : "SecondeInfo trouvée par RechercherInformation !(bien)");

            StringVérifié info3 = oeuvre.RechercherInformation(new StringVérifié("TroisièmeInfo"));

            WriteLine(info3 == null ? "TroisièmeInfo introuvable par RechercherInformation car supprimée (bien)" :
                      "TroisièmeInfo trouvée par RechercherInformation alors que supprimée !(pas bien)");

            WriteLine("\nCompte combien de fois apparait la chaine \"Autre\"");
            WriteLine($"Doit en trouver 2, et en trouve : {oeuvre.ContientMotClé("Autre")}");
            WriteLine();
            WriteLine("Compte combien de fois apparait la chaine \"info\"");
            WriteLine($"Doit en trouver 4, et en trouve : {oeuvre.ContientMotClé("info")}");
        }
        static void Main(string[] args)
        {
            StubOeuvreDataManager oeuvreDataManager = new StubOeuvreDataManager();

            oeuvreDataManager.ToutRetirer();

            oeuvreDataManager.Ajouter(new Autre("unAutre", "CheminImageAutre", DateTime.Today, "unCréateur",
                                                new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfo"), new StringVérifié("UnePremièreInfo") }, { new StringVérifié("NomSecondeInfo"),
                                                                                                  new StringVérifié("UneSecondeInfo") }
            }, "Ceci est un synopsis - Autre",
                                                "Ceci est un commentaire personnel - Autre"));

            oeuvreDataManager.Ajouter(new Film("unFilm", "CheminImageFilm", DateTime.Today, "unRéalisateur", "unStudio",
                                               new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfo"), new StringVérifié("UnePremièreInfo") }, { new StringVérifié("NomSecondeInfo"),
                                                                                                  new StringVérifié("UneSecondeInfo") }
            }, "Ceci est un synopsis - Film",
                                               "Ceci est un commentaire personnel - Film"));

            oeuvreDataManager.Ajouter(new Série("uneSérie", "CheminImageSérie", DateTime.Today, "unRéalisateur", "unStudio",
                                                new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfo"), new StringVérifié("UnePremièreInfo") }, { new StringVérifié("NomSecondeInfo"),
                                                                                                  new StringVérifié("UneSecondeInfo") }
            }, "Ceci est un synopsis - Série",
                                                "Ceci est un commentaire personnel - Série"));

            oeuvreDataManager.Ajouter(new Livre("unLivre", "CheminImageLivre", DateTime.Today, "unAuteur", "unÉditeur",
                                                new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfo"), new StringVérifié("UnePremièreInfo") }, { new StringVérifié("NomSecondeInfo"),
                                                                                                  new StringVérifié("UneSecondeInfo") }
            }, "Ceci est un synopsis - Livre",
                                                "Ceci est un commentaire personnel - Livre"));

            oeuvreDataManager.Ajouter(new Scan("unScan", "CheminImageScan", DateTime.Today, "unAuteur", "unÉditeur",
                                               new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfo"), new StringVérifié("UnePremièreInfo") }, { new StringVérifié("NomSecondeInfo"),
                                                                                                  new StringVérifié("UneSecondeInfo") }
            }, "Ceci est un synopsis - Scan",
                                               "Ceci est un commentaire personnel - Scan"));

            oeuvreDataManager.Ajouter(new Animé("unAnimé", "CheminImageAnimé", DateTime.Today, "unAuteur", "unStudio",
                                                new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfo"), new StringVérifié("UnePremièreInfo") }, { new StringVérifié("NomSecondeInfo"),
                                                                                                  new StringVérifié("UneSecondeInfo") }
            }, "Ceci est un synopsis - Animé",
                                                "Ceci est un commentaire personnel - Animé"));

            for (int i = 0; i < 6; i++)
            {
                WriteLine("Test des classes héritières de Oeuvre :\n");
                WriteLine(oeuvreDataManager.ObtenirTous().ToList()[i]);
                WriteLine("\n\nTappez sur entrez pour continuer");
                ReadLine();
                Clear();
            }

            (oeuvreDataManager.ObtenirTous().ToList()[0] as Autre).ModifierOeuvre("unAutreModifié", "CheminImageAutreModifié", new DateTime(2000, 01, 01),
                                                                                  "unCréateurModifié", new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfoModifié"), new StringVérifié("UnePremièreInfoModifié") },
                { new StringVérifié("NomSecondeInfoModifié"), new StringVérifié("UneSecondeInfoModifié") }
            },
                                                                                  "Ceci est un synopsis Modifié - Autre", "Ceci est un commentaire personnel Modifié - Autre");

            (oeuvreDataManager.ObtenirTous().ToList()[1] as Film).ModifierOeuvre("unFilmModifié", "CheminImageFilmModifié", new DateTime(2000, 01, 01),
                                                                                 "unRéalisateurModifié", "unStudioModifié", new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfoModifié"), new StringVérifié("UnePremièreInfoModifié") },
                { new StringVérifié("NomSecondeInfoModifié"), new StringVérifié("UneSecondeInfoModifié") }
            }, "Ceci est un synopsisModifié - Film",
                                                                                 "Ceci est un commentaire personnelModifié - Film");

            (oeuvreDataManager.ObtenirTous().ToList()[2] as Série).ModifierOeuvre("uneSérieModifié", "CheminImageSérieModifié", new DateTime(2000, 01, 01),
                                                                                  "unRéalisateurModifié", "unStudioModifié", new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfoModifié"), new StringVérifié("UnePremièreInfoModifié") },
                { new StringVérifié("NomSecondeInfoModifié"), new StringVérifié("UneSecondeInfoModifié") }
            }, "Ceci est un synopsisModifié - Série",
                                                                                  "Ceci est un commentaire personnelModifié - Série");

            (oeuvreDataManager.ObtenirTous().ToList()[3] as Livre).ModifierOeuvre("unLivreModifié", "CheminImageLivreModifié", new DateTime(2000, 01, 01),
                                                                                  "unAuteurModifié", "unÉditeurModifié", new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfoModifié"), new StringVérifié("UnePremièreInfoModifié") },
                { new StringVérifié("NomSecondeInfoModifié"), new StringVérifié("UneSecondeInfoModifié") }
            }, "Ceci est un synopsisModifié - Livre",
                                                                                  "Ceci est un commentaire personnelModifié - Livre");

            (oeuvreDataManager.ObtenirTous().ToList()[4] as Scan).ModifierOeuvre("unScanModifié", "CheminImageScanModifié", new DateTime(2000, 01, 01),
                                                                                 "unAuteurModifié", "unÉditeurModifié", new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfoModifié"), new StringVérifié("UnePremièreInfoModifié") },
                { new StringVérifié("NomSecondeInfoModifié"), new StringVérifié("UneSecondeInfoModifié") }
            }, "Ceci est un synopsisModifié - Scan",
                                                                                 "Ceci est un commentaire personnelModifié - Scan");

            (oeuvreDataManager.ObtenirTous().ToList()[5] as Animé).ModifierOeuvre("unAniméModifié", "CheminImageAniméModifié", new DateTime(2000, 01, 01),
                                                                                  "unAuteurModifié", "unStudioModifié", new ObservableDictionary <StringVérifié, StringVérifié>()
            {
                { new StringVérifié("NomPremièreInfoModifié"), new StringVérifié("UnePremièreInfoModifié") },
                { new StringVérifié("NomSecondeInfoModifié"), new StringVérifié("UneSecondeInfoModifié") }
            }, "Ceci est un synopsisModifié - Animé",
                                                                                  "Ceci est un commentaire personnelModifié - Animé");

            for (int i = 0; i < 6; i++)
            {
                WriteLine("Test des modifications des classes héritières de Oeuvre :\n");
                WriteLine(oeuvreDataManager.ObtenirTous().ToList()[i]);
                WriteLine("\n\nTappez sur entrez pour continuer");
                ReadLine();
                Clear();
            }
        }