public void ContenuFichier() { JCACore monCore = new JCACore(); XmlDocument monCas = new XmlDocument(); System.IO.File.WriteAllText(Chemin + "ContenuFichier.txt", "spool {{SpoolFile}}" + Environment.NewLine + "select '{{Logon}}' from dual;" + Environment.NewLine); monCas.InnerXml = "<Assertion><Type>ContenuFichier</Type>" + "<Fichier>{{Chemin}}ContenuFichier.txt</Fichier>" + "<Contient>{{s}}pool</Contient>" + "<NeContientPas>{{s}}SQLexec.var.xml</NeContientPas>" + "</Assertion>"; Assert.IsFalse(monCore.ExecuteCas(monCas)); Assert.IsTrue(monCore.Message.Contains("La variable Chemin n'a pas eu de valeur fournie"), "Attendu:La variable Chemin n'a pas eu de valeur fournie. Réel :" + monCore.Message); // Cas qyu marche monCore.Variables.MAJVariable("Chemin",Chemin ); monCore.Variables.MAJVariable("s", "s"); Assert.IsTrue(monCore.ExecuteCas(monCas), monCore.Message ); Assert.IsTrue(monCore.Message.Contains("L'assertion est vraie"), "Attendu:L.assertion estbraie. Réel:" + monCore.Message); //TODO unit tester les autres validations }
public void ClientExcep() { // user pas spécifié JCACore monCore = new JCACore(); XmlDocument monCas = new XmlDocument(); monCas.InnerXml = "<Assertion><Type>ConnectionOracle</Type>" + "<Password>{{monPassword}}</Password>" + "<Serveur>{{monServeur}}</Serveur>" + "</Assertion>"; Assert.IsFalse(monCore.ExecuteCas(monCas), "Cas User non fourni aurait du retourner False"); Assert.IsTrue(monCore.Message.Contains( "Le XML ne contient pas la balise User"), "Cas User non fourni: Le message me contient pas le texte attendu " + monCore.Message ); // password non fourni monCas.InnerXml = "<Assertion><Type>ConnectionOracle</Type>" + "<User>{{monPassword}}</User>" + "<Serveur>{{monServeur}}</Serveur>" + "</Assertion>"; Assert.IsFalse(monCore.ExecuteCas(monCas), "Le cas Password non fourni aurait du retourner false "); Assert.IsTrue(monCore.Message.Contains( "Le XML ne contient pas la balise Password"), "Cas Password non fourni : Le message me contient pas le texte attendu " + monCore.Message); // pas de variables fournies monCas.InnerXml = "<Assertion><Type>ConnectionOracle</Type>" + "<User>{{monPassword}}</User>" + "<Password>{{monPassword}}</Password>" + "<Serveur>{{monServeur}}</Serveur>" + "</Assertion>"; Assert.IsFalse(monCore.ExecuteCas(monCas), "Cas variables non fournmies aurait du retourner false"); Assert.IsTrue(monCore.MessageEchec.Contains( "La variable monPassword n'a pas eu de valeur fournie"), "Cas variables non fournieLe message me contient pas le texte attendu " + monCore.MessageEchec); // Action Ouvrir qui provoqie une exception oracle monCas.InnerXml = "<Assertion><Type>ConnectionOracle</Type>" + "<User>JCA</User>" + "<Password>JCA</Password>" + "<Action>Ouvrir</Action>" + "<Serveur>ServeurInexistant</Serveur>" + "</Assertion>"; Assert.IsFalse(monCore.ExecuteCas(monCas), "Le cas action Ouvrir invalide aurair du retourner false"); Assert.IsTrue(monCore.MessageEchec.Contains( "Erreur technique lors de la connection au serveur Oracle ORA-"), "Cas action ouvrir invalide : Le message me contient pas le texte attendu " + monCore.MessageEchec); }
public void ExecuteProgramme() { JCACore monCore = new JCACore(); XmlDocument monCas = new XmlDocument(); String NomProgramme = "ExecutePrg.bat"; System.IO.File.WriteAllText(Chemin + NomProgramme, "echo off" + Environment.NewLine + "Echo Le programme roule %1" + Environment.NewLine + "exit %1" + Environment.NewLine); monCas.InnerXml = "<Assertion><Type>ExecuteProgramme</Type>" + "<Programme>{{Chemin}}" + NomProgramme + "</Programme>" + "<Arguments>{{CodeDeRetour}}</Arguments>" + "</Assertion>"; // Echec produit par une exception Assert.IsFalse(monCore.ExecuteCas(monCas)); Assert.IsTrue(monCore.Message.Contains("La variable Chemin n'a pas eu de valeur fournie"), "Attendu:La variable Chemin n'a pas eu de valeur fournie. Réel :" + monCore.Message); Assert.IsTrue(monCore.MessageEchec.Contains("La variable Chemin n'a pas eu de valeur fournie"), monCore.MessageEchec); // um cas qui marche et retourne true monCore.Variables.MAJVariable("Chemin", Chemin); monCore.Variables.MAJVariable("CodeDeRetour", "0"); Assert.IsTrue(monCore.ExecuteCas(monCas)); Assert.IsTrue(monCore.Message.Contains("Résultat de l'exécution de "), "Attendu:Résultat de l'exécution de Réel :" + monCore.Message); Assert.AreEqual("",monCore.MessageEchec); // un cas qui marche et retourne false monCore.Variables.MAJVariable("CodeDeRetour", "45"); Assert.IsFalse (monCore.ExecuteCas(monCas)); Assert.IsTrue(monCore.Message.Contains("Le programme roule 45"), "Attendu:Le programme roule 45. Réel :" + monCore.Message); Assert.IsTrue(monCore.MessageEchec.Contains(" a terminé avec le code de retour 45"), monCore.MessageEchec); // test retournant faux avec message d'échec spécifique monCas.InnerXml = "<Assertion><Type>ExecuteProgramme</Type>" + "<Programme>{{Chemin}}" + NomProgramme + "</Programme>" + "<Arguments>{{CodeDeRetour}}</Arguments>" + "<MessageEchec>Message spécifique 32</MessageEchec>" + "</Assertion>"; monCore.Variables.MAJVariable("CodeDeRetour", "45"); Assert.IsFalse(monCore.ExecuteCas(monCas)); Assert.IsTrue(monCore.Message.Contains("Le programme roule 45"), "Attendu:Le programme roule 45. Réel :" + monCore.Message); Assert.IsTrue(monCore.MessageEchec.Contains("Message spécifique 32 (Code de retour : 45 )"), monCore.MessageEchec); }
public void JCACoreExecuterCasOK() { // test sans fichier de valeurs JCACore monJCACore = new JCACore(); monJCACore.Load(JCACore.RepertoireAssembly() + "Ressources\\FichierDeCasOK.xml"); Assert.AreEqual(3, monJCACore.NombreCas, "Le fichier chargé devrait contenir 2 cas de test, réel = " + monJCACore.NombreCas.ToString()); Assert.IsNotNull(monJCACore.FichierJournal,"Un nom de fichier journalpar défaut aurait du être assigné"); // Initialiser les méthode de la liste desvariables monJCACore.Variables.MAJVariable("Fichier", JCACore.RepertoireAssembly() + "Ressources\\FichierDeCasOK.xml"); // Test plus étendu avec fichier de valeur Assert.IsTrue(monJCACore.ExecuteCas(monJCACore.getListeDeCas().Item(0)),"Test pour un fichier qui existe"); Assert.IsFalse (monJCACore.ExecuteCas(monJCACore.getListeDeCas().Item(1)) ,"Test de ichier qui n'existe pas = donc retourne false"); Assert.IsFalse(monJCACore.ExecuteCas(monJCACore.getListeDeCas().Item(2)), "une exception retourne false"); }
public void ContenuFichierMultipleEchecContient() { // Variables JCACore monCore = new JCACore(); XmlDocument monCas = new XmlDocument(); String FichierEssai = Chemin + "ContenuFichierMultipleEchecContient.txt"; // Création du fichier de données CreerFichierTest(FichierEssai); // Création du xml de cas monCas.InnerXml = "<Assertion><Type>ContenuFichier</Type>" + "<Fichier>{{FichierEssai}}</Fichier>" + "<Contient>introuvable</Contient>" + "<Contient>from</Contient>" + "<Contient>from</Contient>" + "<NeContientPas>savana</NeContientPas>" + "<NeContientPas>siamois</NeContientPas>" + "<NeContientPas>savana</NeContientPas>" + "</Assertion>"; // définit les variables monCore.Variables.MAJVariable("FichierEssai", FichierEssai); // exécution de l'essai Assert.IsFalse (monCore.ExecuteCas(monCas)); Assert.IsTrue(monCore.Message.Contains("savana"), "Attendu:savana Réel :" + monCore.Message); Assert.IsTrue(monCore.Message.Contains("siamois"), "Attendu:siamois Réel :" + monCore.Message); Assert.IsTrue(monCore.Message.Contains("from"), "Attendu:from Réel :" + monCore.Message); Assert.IsTrue(monCore.Message.Contains("introuvable"), "Attendu:introuvable Réel :" + monCore.Message); Assert.IsTrue(monCore.MessageEchec.Contains("Le texte 'introuvable' n'a pas été trouvé et il devrait être dans le fichier"), "Attendu:Le texte 'introuvable... Réel " + monCore.MessageEchec); }
public void MAJVariablesPasOKTest() { JCACore monCore = new JCACore (); // Il manque la balise de clé XmlDocument monCas = new XmlDocument(); monCas.InnerXml = "<Assertion><Type>MAJVariables</Type>" + "<Valeur>{{p}}te{{Autre}}st{{s}}</Valeur>" + "</Assertion>"; Assert.IsFalse(monCore.ExecuteCas(monCas), "L'éxécution du cas aurait dû échouer : " + monCore.Message + Environment.NewLine + monCore.MessageEchec); Assert.IsTrue(monCore.MessageEchec.Contains( "Le XML ne contient pas la balise Cle"), "Mauvais contenu du message d'échec:" + monCore.MessageEchec ); // Il manque la balise de valeur monCas.InnerXml = "<Assertion><Type>MAJVariables</Type>" + "<Cle>test</Cle>" + "</Assertion>"; Assert.IsFalse(monCore.ExecuteCas(monCas), "L'éxécution du cas aurait dû échouer : " + monCore.Message + Environment.NewLine + monCore.MessageEchec); Assert.IsTrue(monCore.MessageEchec.Contains( "Le XML ne contient pas la balise Valeur"), "Mauvais contenu du message d'échec:" + monCore.MessageEchec); // Le nom de fichier de variable cause une exception monCas.InnerXml = "<Assertion><Type>MAJVariables</Type>" + "<Cle>test</Cle>" + "<Valeur>test</Valeur>" + "</Assertion>"; monCore.Variables.MAJVariable( JCAVariable.Constantes.JCA_FichierDeVariables, ":d:d:"); Boolean ExceptionRencontree = false; try { monCore.ExecuteCas(monCas); } catch (Exception excep) { if (excep != null) ExceptionRencontree = true; } Assert.IsTrue(ExceptionRencontree); }
public void MAJVariablesOKTest() { String NomFichier = Chemin + "MAJVariablesOKTest.xml"; // Préparer les variables de test JCAVariable mesVariables = new JCAVariable(); mesVariables.MAJVariable("s","Suffixe"); mesVariables.MAJVariable("p", "Préfixe"); mesVariables.MAJVariable("Autre", "Autres"); mesVariables.MAJVariable("R", "Résultat"); Assert.IsTrue(mesVariables.GetValeurVariable( JCAVariable.Constantes.JCA_FichierDeVariables) == null, "La variable JCA.FichierDeVariables ne devrait pas exister."); // Défnir le noued xml qui contient le test JCACore monCore = new JCACore(); monCore.Variables = mesVariables; XmlDocument monCas = new XmlDocument (); monCas.InnerXml = "<Assertion><Type>MAJVariables</Type>" + "<Cle>{{R}}</Cle>" + "<Valeur>{{p}}te{{Autre}}st{{s}}</Valeur>" + "</Assertion>"; // Un cas qui marche sans fichier Assert.IsTrue(monCore.ExecuteCas(monCas), "L'éxécution du cas a échoué : " + monCore.Message + Environment.NewLine + monCore.MessageEchec ); Assert.IsTrue(monCore.Variables.GetValeurVariable("Résultat").Contains("PréfixeteAutresstSuffixe"), "Variable Résultat avec le mauvais contenu : " + monCore.Variables.GetValeurVariable("Résultat")); // Un cas qui marche avec fichier monCore.Variables = mesVariables; monCore.Variables.MAJVariable( JCAVariable.Constantes.JCA_FichierDeVariables, NomFichier ); if (System.IO.File.Exists(NomFichier)) System.IO.File.Delete(NomFichier ); Assert.IsFalse(System.IO.File.Exists(NomFichier), "Le fichier ne devrait pas exister"); Assert.IsTrue(monCore.ExecuteCas(monCas), "L'éxécution du cas a échoué : " + monCore.Message + Environment.NewLine + monCore.MessageEchec); Assert.IsTrue(monCore.Variables.GetValeurVariable("Résultat").Contains("PréfixeteAutresstSuffixe"), "Variable Résultat avec le mauvais contenu : " + monCore.Variables.GetValeurVariable("Résultat")); Assert.IsTrue(System.IO.File.Exists(NomFichier), "Le fichierdevrait exister : " + NomFichier ); String ResultatFichier = System.IO.File.ReadAllText(NomFichier ); Assert.IsTrue(ResultatFichier.Contains("PréfixeteAutresstSuffixe"), "Variable Résultat dans le fichier " + NomFichier +" avec le mauvais contenu : " + ResultatFichier); }
public void ContenuFichierMultipleSucces() { // Variables JCACore monCore = new JCACore(); XmlDocument monCas = new XmlDocument(); String FichierEssai = Chemin + "ContenuFichierMultipleSucces.txt"; // Création du fichier de données CreerFichierTest(FichierEssai); // Création du xml de cas monCas.InnerXml = "<Assertion><Type>ContenuFichier</Type>" + "<Fichier>{{FichierEssai}}</Fichier>" + "<Contient>select</Contient>" + "<Contient>from</Contient>" + "<Contient>from</Contient>" + "<NeContientPas>savana</NeContientPas>" + "<NeContientPas>siamois</NeContientPas>" + "<NeContientPas>savana</NeContientPas>" + "</Assertion>"; // définit les variables monCore.Variables.MAJVariable("FichierEssai", FichierEssai); // exécution de l'essai Assert.IsTrue(monCore.ExecuteCas(monCas)); Assert.IsTrue(monCore.Message.Contains("savana"), "Attendu:savana Réel :" + monCore.Message); Assert.IsTrue(monCore.Message.Contains("siamois"), "Attendu:siamois Réel :" + monCore.Message); Assert.IsTrue(monCore.Message.Contains("from"), "Attendu:from Réel :" + monCore.Message); Assert.IsTrue(monCore.Message.Contains("select"), "Attendu:select Réel :" + monCore.Message); Assert.AreEqual("", monCore.MessageEchec); }
public void ContenuFichierMultipleEchecNCP() { // Variables JCACore monCore = new JCACore(); XmlDocument monCas = new XmlDocument(); String FichierEssai = Chemin + "ContenuFichierMultipleEchecNCP.txt"; // Création du fichier de données CreerFichierTest(FichierEssai); // Création du xml de cas monCas.InnerXml = "<Assertion><Type>ContenuFichier</Type>" + "<Fichier>{{FichierEssai}}</Fichier>" + "<Contient>lect</Contient>" + "<Contient>from</Contient>" + "<NeContientPas>savana</NeContientPas>" + "<NeContientPas>sel</NeContientPas>" + "<MessageEchec>Message d'échech spécifique ></MessageEchec>" + "</Assertion>"; // définit les variables monCore.Variables.MAJVariable("FichierEssai", FichierEssai); // exécution de l'essai Assert.IsFalse(monCore.ExecuteCas(monCas)); Assert.IsTrue(monCore.Message.Contains("sel"), "Attendu:sel Réel :" + monCore.Message); Assert.IsTrue(monCore.Message.Contains("lect"), "Attendu:lect Réel :" + monCore.Message); Assert.IsTrue(monCore.Message.Contains("from"), "Attendu:from Réel :" + monCore.Message); Assert.IsTrue(monCore.MessageEchec.Contains("Le texte 'sel' a été trouvé et il me devrait pas être dans le fichier"), "Attendu:Le texte 'sel'... Réel " + monCore.MessageEchec); Assert.IsTrue(monCore.MessageEchec.Contains("Message d'échech spécifique >"), "Attendu: Message d'échech spécifique > Réel " + monCore.MessageEchec); }
public void SubstituerVariablesFichier() { JCACore monCore = new JCACore(); XmlDocument monCas = new XmlDocument(); monCas.InnerXml = "<Assertion><Type>SubstituerVariablesFichier</Type>" + "<FichierModele>{{Chemin}}SQLexec.txt</FichierModele>" + "<FichierSortie>{{Chemin}}SQLexec.txt.sql</FichierSortie>" + "<FichierVariables>{{Chemin}}SQLexec.var.xml</FichierVariables>" + "</Assertion>"; Assert.IsFalse(monCore.ExecuteCas(monCas)); Assert.IsTrue(monCore.Message.Contains("La variable Chemin n'a pas eu de valeur fournie"), "Attendu:La variable Chemin n'a pas eu de valeur fournie. Réel :" + monCore.Message ); // cas qui marche String Modele = Chemin + "SQLexec.txt"; System.IO.File.WriteAllText(Modele, "spool {{SpoolFile}}" + Environment.NewLine + "select '{{Logon}}' from dual;" + Environment.NewLine ); // Créer le fichier de variables SQLexec.var.xml JCAVariable sqlvar = new JCAVariable(); sqlvar.MAJVariable("Logon","jean-claude"); sqlvar.MAJVariable("SpoolFile","z:log.txt"); sqlvar.EcrireFichier(Chemin + "SQLexec.var.xml"); monCore.Variables.MAJVariable("Chemin", Chemin ); Assert.IsTrue(monCore.ExecuteCas(monCas)); Assert.IsTrue(monCore.Message.Contains("La substitution des variables dans le fichier a réussie"), "Attendu:La substitution des variables dans le fichier a réussie"); //todo verif fichier sql String Contenu = System.IO.File.ReadAllText(Chemin + "SQLexec.txt.sql"); Assert.IsTrue(Contenu.Contains("spool z:log.txt"), "Attendu:spool z:log.txt"); Assert.IsTrue(Contenu.Contains("select 'jean-claude' from dual;"), "Attendu:select 'jean-claude' from dual;"); // TODO unitester les autres validations }
public void FichierExiste() { // testc abec variablenon fournie JCACore monCore = new JCACore(); XmlDocument monCas = new XmlDocument () ; monCas.InnerXml = "<Assertion>"+ "<Type>FichierExiste</Type>"+ "<Fichier>{{Fichier}}</Fichier>"+ "</Assertion>"; Assert.IsFalse(monCore.ExecuteCas(monCas )); Assert.IsTrue (monCore.Message.Contains("La variable Fichier n'a pas eu de valeur fournie"), "Attendu:La variable Fichiern'a pas eu de valeur fournie"); // Le MessageEchec est généré par une exception Assert.IsTrue(monCore.MessageEchec.Contains("La variable Fichier n'a pas eu de valeur fournie"), monCore.MessageEchec ); // variable fournie mais fichier existe pas. // MessageEchec générique monCore.Variables.MAJVariable("Fichier",Chemin + "DivideByZeroException:existepas.pasla"); Assert.IsFalse(monCore.ExecuteCas (monCas ) ); Assert.IsTrue(monCore.Message.Contains("Le fichier n'existe pas"), "Attendu:Le fichier n'existe pas"); Assert.IsTrue(monCore.MessageEchec.Contains(" n'existe pas et il devrait exister"), monCore.MessageEchec); // variable fournie mais fichier existe pas. // MessageEchec spécifique monCas.InnerXml = "<Assertion>"+ "<Type>FichierExiste</Type>" + "<Fichier>{{Fichier}}</Fichier>" + "<MessageEchec>Message d'échec spécifique</MessageEchec></Assertion>"; monCore.Variables.MAJVariable("Fichier", Chemin + "DivideByZeroException:existepas.pasla"); Assert.IsFalse(monCore.ExecuteCas(monCas)); Assert.IsTrue(monCore.Message.Contains("Le fichier n'existe pas"), "Attendu:Le fichier n'existe pas"); Assert.IsTrue(monCore.MessageEchec.Contains("Message d'échec spécifique ("), monCore.MessageEchec); // Valeurs fournies,fichier existe monCore.Variables.MAJVariable("Fichier", Chemin + "FichierDeCasOK.xml"); Assert.IsTrue(monCore.ExecuteCas(monCas)); Assert.IsTrue(monCore.Message.Contains("Le fichier existe"), "Attendu:Le fichier existe"); Assert.AreEqual("",monCore.MessageEchec); // Valeurs fournies,fichier existe mais est un répetoire monCore.Variables.MAJVariable("Fichier", Chemin); Assert.IsTrue(monCore.ExecuteCas(monCas),"Execute n.a pas retourné tru pour un répertoire"); Assert.IsTrue(monCore.Message.Contains("Le fichier existe"), "Attendu:Le fichier existe"); Assert.AreEqual("", monCore.MessageEchec, "Le message d'échec devrait être vide"); }
public void ClientOK() { // Préparer les variables de test JCAVariable mesVariables = new JCAVariable(); mesVariables.MAJVariable("monUser","JCA"); mesVariables.MAJVariable("monPassword", "JCA"); mesVariables.MAJVariable("monServeur", "localhost"); mesVariables.MAJVariable("O", "Ouvrir"); mesVariables.MAJVariable("F", "Fermer"); JCACore monCore = new JCACore(); monCore.Variables = mesVariables; // un cas sans action mais avec les 3 param`tres XmlDocument monCas = new XmlDocument(); monCas.InnerXml = "<Assertion><Type>ConnectionOracle</Type>" + "<User>{{monUser}}</User>" + "<Password>{{monPassword}}</Password>" + "<Serveur>{{monServeur}}</Serveur>" + "</Assertion>"; Assert.IsFalse(monCore.ODPSQLConnectionOuverte(), "Avant de commencer la connection devrait être fermée"); Assert.IsTrue(monCore.ExecuteCas(monCas), "L'éxécution du cas a échoué : " + monCore.Message + Environment.NewLine + monCore.MessageEchec); Assert.IsFalse(monCore.ODPSQLConnectionOuverte(), "Sans code d'action la connection devrait être fermée"); // test d'action Ouvrir Assert.IsFalse(monCore.ODPSQLConnectionOuverte(), "Avant de commencer la connection devrait être fermée"); monCas.InnerXml = "<Assertion><Type>ConnectionOracle</Type>" + "<User>{{monUser}}</User>" + "<Password>{{monPassword}}</Password>" + "<Serveur>{{monServeur}}</Serveur>" + "<Action>{{O}}</Action>" + "</Assertion>"; Assert.IsTrue(monCore.ExecuteCas(monCas), "L'éxécution du cas action ouvrir a échoué : " + monCore.Message + Environment.NewLine + monCore.MessageEchec); Assert.IsTrue(monCore.ODPSQLConnectionOuverte(), "L'action aurait du ouvrir la connection"); // Test d'action fermer Assert.IsTrue(monCore.ODPSQLConnectionOuverte(), "La connection devrait être ouverte"); monCas.InnerXml = "<Assertion><Type>ConnectionOracle</Type>" + "<User>{{monUser}}</User>" + "<Password>{{monPassword}}</Password>" + "<Serveur>{{monServeur}}</Serveur>" + "<Action>{{F}}</Action>" + "</Assertion>"; Assert.IsTrue(monCore.ExecuteCas(monCas), "L'éxécution du cas action fermer a échoué : " + monCore.Message + Environment.NewLine + monCore.MessageEchec); Assert.IsFalse(monCore.ODPSQLConnectionOuverte(), "L'action aurait du fermer la connection"); }