Ejemplo n.º 1
0
        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;
        }
        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);
        }
Ejemplo n.º 3
0
        // Methode utilisé  par le load et qui peutêtreunittestée
        public int Execute()
        {
            InitJCAssertion();
            NombreCas = 0;
            NombreEchec = 0;
            NombreReussi = 0;

            Message = "Démarrage";
            if ((args.Length == 0) && (! UnitTest ) ) Interactif = true;
            mesArguments = maConsole.Arguments(args);

            if ((mesArguments.GetValeurVariable("AV") != null) &&
                (mesArguments.GetValeurVariable("AV") != ""))
            {
                Avertir = true;
            }

            if ((mesArguments.GetValeurVariable("I") != null) &&
                (mesArguments.GetValeurVariable("I") != ""))
            {
                Interactif  = true;
            }

            if (!JCAUtilitaires.EVSourceExiste())
                Informer(Environment.NewLine +
                    "Avertissement : La source de journal d'événement 'JCAssertion' " +
                    "doit être définie pour avoir accès à "+
                    "tous les messages d'erreurs. Consultez www.jcassertion.org Configuration requise " +
                    "^pour plus de détails.");

            // l'argument d0 provoque une exceptions

            if ((mesArguments.GetValeurVariable("D0") != null) &&
                (mesArguments.GetValeurVariable("D0") != ""))
            {
                throw new Exception(
                    "Exception déclenchée volontairement par l'argument /D0 ");
            }

            // Vérifier qu'au moins le nom de fichier d'assertion est fourni

            if ((mesArguments.GetValeurVariable("FA") == null) ||
                (mesArguments.GetValeurVariable("FA") == ""))
                    {
                        Informer("Ce programme doit recevoir des arguments enligne de commande." + Usage, true) ;
                        return 99;
                   }
            // Valider un peu les arguments
            String FichierAssertion = mesArguments.GetValeurVariable("FA");
            String FichierVariable = "";
            if ((mesArguments.GetValeurVariable("FV") != null) &&
                (mesArguments.GetValeurVariable("FV") != ""))
                    FichierVariable = mesArguments.GetValeurVariable("FV");

            if (!System.IO.File.Exists(FichierAssertion))
            {
                Informer( "Le fichier d'assertion . " +
                    FichierAssertion + " n'existe pas." , true );
                return 99;
            }

               if((FichierVariable != "" ) &&
               (! System.IO.File.Exists (FichierVariable)))
               {
                Informer  ("Le fichier de variables . " +
                    FichierVariable + " n'existe pas.", true );
                return 99;
            }

            if ((mesArguments.GetValeurVariable("J") != null) &&
               (mesArguments.GetValeurVariable("J") != ""))
               // Désactiver la journalisation  du core
               // Le^programme va faire un  journal plus complet
               monJCACore.Journaliser = false ;
               JournalActivite =    mesArguments.GetValeurVariable("J");
               if (System.IO.File.Exists(JournalActivite))
                   System.IO.File.Delete(JournalActivite);

            //
            // commencer le traitementproprement dit
            NAJtbxFAssertion(FichierAssertion);
            MAJtbxFVariables(FichierVariable) ;
            Informer("Lecture du fichier d'assertion : "
                + FichierAssertion );
            monJCACore.Load(FichierAssertion );
            NombreCas = monJCACore.NombreCas;
            Informer("Nombre de cas à traiter : " + monJCACore.NombreCas.ToString () );
            if(FichierVariable != "")
            {
                Informer ("Lecture du fichier de variables : "
                + FichierVariable);
                monJCACore.Variables.LireFichier(FichierVariable );
            }

            int i = 1;
            foreach (XmlNode monCas in monJCACore.getListeDeCas())
                {
                    if (AnnulerExecution) break;
                    Informer ("Exécution du cas " + i.ToString() );
                    if (monJCACore.ExecuteCas(monCas))
                        {
                            NombreReussi = NombreReussi + 1;
                            Informer ("Assertion vraie") ;
                            Informer (monJCACore.Message);
                        }
                    else
                        {
                            MessageEchec = monJCACore.MessageEchec  ;
                            Informer ("Assertion fausse");
                            Informer (monJCACore.Message);
                            Informer("Détail de l'échec de l'assertion" +
                                Environment.NewLine +
                                "----");
                            Informer(MessageEchec,Avertir );
                            Informer("-----" +
                                Environment.NewLine +
                                "Fin du détail de l'échec de l'assertion");
                            NombreEchec = NombreEchec + 1;
                        }
                    i = i++;
                }
            Informer("Fin de l'exécution");
            Informer("Cas réussis : " + NombreReussi.ToString() + " sur " + NombreCas.ToString()  );
            Informer("Cas en échec : " + NombreEchec.ToString() + " sur " + NombreCas.ToString());
            if(NombreEchec > 0)
                return 1;
            else
              return 0;
        }
Ejemplo n.º 4
0
        public static bool JCAMAJVariables(XmlNode monXMLNode,
            ref string Message, 
            ref  Dictionary<String, String> Variables,
            ref String MessageEchec)
        {
            Message = Message + Environment.NewLine +
                "Assertion MAJVariables" + Environment.NewLine  ;
            if (monXMLNode == null) throw new JCAssertionException("Le XML est vide.");
            ValideBalise(monXMLNode, "Cle");
            string MaCle = ValeurBalise (monXMLNode,"Cle");
            MaCle = JCAVariable.SubstituerVariables(MaCle, Variables);
            Message = Message + "Clé:" + MaCle + Environment.NewLine  ;
            ValideBalise(monXMLNode, "Valeur");

            string MaValeur = ValeurBalise (monXMLNode,"Valeur");
            MaValeur = JCAVariable.SubstituerVariables(MaValeur, Variables);
            Message = Message + "Valeur:" + MaValeur + Environment.NewLine;

            JCAVariable VariableTemp = new JCAVariable() ;
            VariableTemp.Variables  = Variables;
            VariableTemp.MAJVariable (MaCle, MaValeur  );
            Variables = VariableTemp.Variables;
            if(VariableTemp.GetValeurVariable(
                JCAVariable.Constantes.JCA_FichierDeVariables) != null )
                {
                    VariableTemp.EcrireFichier (VariableTemp.GetValeurVariable(
                        JCAVariable.Constantes.JCA_FichierDeVariables));

                }

            Message = Message + Environment.NewLine +
                    "Valeur de variable mise à jour.";
            MessageEchec = "";

            return true ;
        }