public int ExecuteExporte(string[] args, out String Message) { JCAVariable mesArgs = new JCAssertionCore.JCAVariable(); JCAVariable mesVariables = new JCAssertionCore.JCAVariable(); JCAConsole maConsole = new JCAssertionCore.JCAConsole (); String Usage = "usage :" + Environment.NewLine + Environment.NewLine + "JCAExporte /F:fichier /V1:cle=valeur /v2=cle2=valeur2 ..."; String Cle; String Valeur; Message = ""; if (args.Count() < 2) { Message = "Pas assez d'arguments. " + Environment.NewLine + Usage ; return 99; } mesArgs = maConsole.Arguments(args); if ((mesArgs.GetValeurVariable("F") == null) || (mesArgs.GetValeurVariable("F") == "")) { Message = "L'argument /F (Chemin du fichier de sortie n'a pas été spécfié.)" + Environment.NewLine + Usage; return 99; } // Traitemen OK String NomFichier = mesArgs.GetValeurVariable("F"); if (System.IO.File.Exists (NomFichier)) mesVariables.LireFichier(NomFichier ); // Ajouter ou maj les variables foreach (var monParem in mesArgs.Variables ) { if ((monParem.Key.Length > 0 ) && (monParem.Key.Substring(0,1).ToUpper() == "V")) { Cle = mesArgs.ExtrairePaire(monParem.Value, out Valeur); mesVariables.MAJVariable (Cle ,Valeur ); } } // metre les variables par défaut mesVariables.MAJVariable(JCAVariable.Constantes.JCA_FichierDeVariables , NomFichier); //Sauvegarder mesVariables.EcrireFichier(NomFichier); Message = Environment.NewLine + "Fichier : " + NomFichier + " mis à jour."; return 0; }
// l'appel aux constructeurs complexes a été mis // ici pour pouvoir faire un try catch // Boolean Debug = true; public void InitJCAssertion() { if (! Init) { try { Utilitaire = new JCAUtilitaires(); Init = true ; mesArguments = new JCAssertionCore.JCAVariable(); maConsole = new JCAssertionCore.JCAConsole(); monJCACore = new JCACore(); } catch (Exception excep) { ExceptionGlobale = excep ; ExceptionRencontree = true; CodeDeRetour = 99; throw excep; } } // ! init }
public static bool JCAExecuteProgramme(XmlNode monXMLNode, ref string Message, ref Dictionary<String, String> Variables, ref string MessageEchec) { JCAConsole maConsole = new JCAConsole(); String Sortie = ""; MessageEchec = ""; Message = Message + Environment.NewLine + "Assertion ExecuteProgramme"; if (monXMLNode == null) throw new JCAssertionException("Le XML est vide."); // Valider le fichier de modèle ValideBalise(monXMLNode, "Programme"); String Programme = ValeurBalise(monXMLNode, "Programme"); Programme = JCAVariable.SubstituerVariables(Programme , Variables); String Arguments = ValeurBalise(monXMLNode, "Arguments"); Arguments = JCAVariable.SubstituerVariables(Arguments , Variables); Boolean Resultat = (maConsole.ExecuteProgramme(Programme, Arguments, ref Sortie) == 0); Message = Message + Environment.NewLine + "Résultat de l'exécution de " + Programme + Environment.NewLine + Sortie + Environment.NewLine + "Fin des résultats de " + Programme ; if (Resultat) Message = Message + Environment.NewLine + "L'assertion est vraie"; else { // echec Message = Message + Environment.NewLine + "L'assertion est fausse"; // messageechec if (ValeurBalise (monXMLNode, "MessageEchec") != "") MessageEchec = ValeurBalise (monXMLNode, "MessageEchec") + " (Code de retour : " + maConsole.DernierCodeDeRetour.ToString() + " )"; else MessageEchec = "Le programme " + Programme + " a terminé avec le code de retour " + maConsole.DernierCodeDeRetour.ToString(); } return Resultat; }