Example #1
0
        public void accesseursTest()
        {
            Astronaute a = new Astronaute("Bob", "Machin", 20);

            Assert.AreEqual(a.getNom(), "Bob", "getNom ne renvoie pas la bonne valeur");
            Assert.AreEqual(a.getPrenom(), "Machin", "getPrenom ne renvoie pas la bonne valeur");
            Assert.AreEqual(a.getAge(), 20, "getAge ne renvoie pas la bonne valeur");

            a.creerEdT(1);

            Assert.IsNotNull(a.getJourneesMission(), "getJourneesMission ne renvoie pas la bonne liste");
            Assert.IsNotNull(a.getJourneesNonDictionary(), "getJourneesNonDictionary ne renvoie pas la bonne liste");

            a.setNom("Marcel");
            a.setPrenom("Didier");
            a.setAge(26);

            Dictionary<int, Journee> dict = new Dictionary<int, Journee>();
            dict.Add(1, new Journee(2));
            dict.Add(2, new Journee(7));

            a.setJourneesMission(dict);

            Assert.AreEqual(a.getNom(), "Marcel", "setNom ne fonctionne pas");
            Assert.AreEqual(a.getPrenom(), "Didier", "setPrenom ne fonctionne pas");
            Assert.AreEqual(a.getAge(), 26, "setAge ne fonctionne pas");
            Assert.AreEqual(a.getJourneesMission(), dict, "setJourneesMission ne fonctionne pas");
        }
 /// <summary>
 /// Permet de procéder à l'ajout de l'astronaute
 /// </summary>
 /// <param name="sender">Objet source</param>
 /// <param name="e">Evènement</param>
 private void ajouter_Click(object sender, EventArgs e)
 {
     Astronaute a = new Astronaute(nom.Text, prenom.Text, Convert.ToInt32(age.Value));
     a.creerEdT(numJour);
     astronautes.Add(a);
     astroList.Items.Add(a);
     fermerFenetre();
 }
Example #3
0
        /// <summary>
        /// Permet de procéder à l'ajout de l'astronaute
        /// </summary>
        /// <param name="sender">Objet source</param>
        /// <param name="e">Evènement</param>
        private void ajouter_Click(object sender, EventArgs e)
        {
            Astronaute a = new Astronaute(nom.Text, prenom.Text, Convert.ToInt32(age.Value));

            a.creerEdT(numJour);
            astronautes.Add(a);
            astroList.Items.Add(a);
            fermerFenetre();
        }
 /// <summary>
 /// Permet de modifier l'EdT en fonction de l'astronaute sélectionné
 /// </summary>
 /// <param name="sender">Objet source</param>
 /// <param name="e">Evènement</param>
 private void astroList_SelectedIndexChanged(object sender, EventArgs e)
 {
     astronauteSelectionne = (Astronaute)astroList.SelectedItems[0];
     journeesMission       = astronauteSelectionne.getJourneesMission();
     modificationJourneeActuelle(journeeActuelle.getNumero());
     miseAJourEdt(journeesMission[journeeSelectionnee]);
     changerPeriode(periode);
     descriptionTexte.Text = journeesMission[journeeSelectionnee].getDescription();
     this.Refresh();
 }
        /// <summary>
        /// Constructeur paramétré
        /// </summary>
        /// <param name="dt">Début de la mission</param>
        /// <param name="chargement">Chargement des données par XML ?</param>
        public CalendrierMission(DateTime dt, bool chargement)
        {
            InitializeComponent();

            debutMission = dt;

            periode             = 1;
            journeeSelectionnee = 1;

            panels         = new Dictionary <int, Panel>();
            icones         = new Dictionary <int, PictureBox>();
            iconesActivite = new Dictionary <int, PictureBox>();
            numeros        = new Dictionary <int, Label>();
            heures         = new Dictionary <int, Label>();
            domaines       = new List <Domaine>();
            astronautes    = new List <Astronaute>();

            initialiserDomaines();

            if (!chargement)
            {
                Astronaute a = new Astronaute("Baudry", "Patrick", 69);
                astronauteSelectionne = a;
                astronautes.Add(a);

                journeesMission = astronauteSelectionne.getJourneesMission();

                initialisationInterface();

                TimeMartien nb      = TimeMartien.calculerJours(debutMission);
                int         numJour = nb.getJours() + 1;

                if (numJour > 500)
                {
                    numJour = 500;
                }

                foreach (Astronaute astro in astronautes)
                {
                    astro.creerEdT(numJour);
                    astroList.Items.Add(astro);
                }

                journeeActuelle = journeesMission[numJour];

                changerPeriode(periode);
                verificationChangementPeriode();
                mettreAJourHeures();
                miseAJourEdt(journeesMission[journeeSelectionnee]);

                descriptionTexte.Text  = journeesMission[journeeSelectionnee].getDescription();
                astroList.SelectedItem = astronauteSelectionne;
                mettreAJourActiviteEnCours();
            }
        }
Example #6
0
        /// <summary>
        /// Constructeur paramétré
        /// </summary>
        /// <param name="a">L'astronaute à modifier</param>
        /// <param name="lb">La ListBox contenant les astronautes</param>
        /// <param name="astroList">La liste des astronautes</param>
        public ModificationAstronaute(Astronaute a, ListBox lb, List <Astronaute> astroList)
        {
            InitializeComponent();
            aModifier      = a;
            this.astroList = astroList;
            this.lb        = lb;

            nom.Text    = aModifier.getNom();
            prenom.Text = aModifier.getPrenom();
            age.Value   = aModifier.getAge();
        }
        /// <summary>
        /// Constructeur paramétré
        /// </summary>
        /// <param name="a">L'astronaute à modifier</param>
        /// <param name="lb">La ListBox contenant les astronautes</param>
        /// <param name="astroList">La liste des astronautes</param>
        public ModificationAstronaute(Astronaute a, ListBox lb, List<Astronaute> astroList)
        {
            InitializeComponent();
            aModifier = a;
            this.astroList = astroList;
            this.lb = lb;

            nom.Text = aModifier.getNom();
            prenom.Text = aModifier.getPrenom();
            age.Value = aModifier.getAge();
        }
        /// <summary>
        /// Constructeur paramétré
        /// </summary>
        /// <param name="dt">Début de la mission</param>
        /// <param name="chargement">Chargement des données par XML ?</param>
        public CalendrierMission(DateTime dt, bool chargement)
        {
            InitializeComponent();

            debutMission = dt;

            periode = 1;
            journeeSelectionnee = 1;

            panels = new Dictionary<int, Panel>();
            icones = new Dictionary<int, PictureBox>();
            iconesActivite = new Dictionary<int, PictureBox>();
            numeros = new Dictionary<int, Label>();
            heures = new Dictionary<int, Label>();
            domaines = new List<Domaine>();
            astronautes = new List<Astronaute>();

            initialiserDomaines();

            if (!chargement)
            {
                Astronaute a = new Astronaute("Baudry", "Patrick", 69);
                astronauteSelectionne = a;
                astronautes.Add(a);

                journeesMission = astronauteSelectionne.getJourneesMission();

                initialisationInterface();

                TimeMartien nb = TimeMartien.calculerJours(debutMission);
                int numJour = nb.getJours() + 1;

                if (numJour > 500)
                    numJour = 500;

                foreach (Astronaute astro in astronautes)
                {
                    astro.creerEdT(numJour);
                    astroList.Items.Add(astro);
                }

                journeeActuelle = journeesMission[numJour];

                changerPeriode(periode);
                verificationChangementPeriode();
                mettreAJourHeures();
                miseAJourEdt(journeesMission[journeeSelectionnee]);

                descriptionTexte.Text = journeesMission[journeeSelectionnee].getDescription();
                astroList.SelectedItem = astronauteSelectionne;
                mettreAJourActiviteEnCours();
            }
        }
Example #9
0
        public void creerEdTTest()
        {
            Astronaute a = new Astronaute("Bob", "Machin", 20);
            int numJour = 20;
            a.creerEdT(numJour);

            Assert.IsNotNull(a.getJourneesMission(), "L'emploi du temps n'a pas été créé");

            List<Journee> journees = new List<Journee>(a.getJourneesMission().Values);

            int passees = journees.FindAll(e => (!e.isModifiable())).Count;
            int enCours = journees.FindAll(e => (e.isEnCours())).Count;
            int resultPassee = 19;
            int resultEnCours = 1;

            Assert.IsTrue(passees == resultPassee && enCours == resultEnCours, "L'emploi du temps a été créé, mais " +
                "les journées n'ont pas le bon état");
        }
Example #10
0
        /// <summary>
        /// Permet de charger les données depuis un fichier XML
        /// </summary>
        /// <param name="marsOMatic">Le fichier XML Mars-o-Matic</param>
        /// <param name="activitesRefs">Le fichier XML ActivitesRefs associé au fichier précédent</param>
        private void chargerXml(String marsOMatic, String activitesRefs)
        {
            XmlDocument mars = new XmlDocument();

            mars.Load(marsOMatic);
            XmlDocument acts = new XmlDocument();

            acts.Load(activitesRefs);

            Dictionary <int, Activite> activitesBase = new Dictionary <int, Activite>();

            int nbElements = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("NbElements").InnerText);

            Progression p = new Progression(nbElements);

            p.Show();

            /* Chargement données des activités de base */
            XmlNodeList activites = acts.GetElementsByTagName("Activite");

            foreach (XmlNode n in activites)
            {
                Activite a;

                int          num         = int.Parse(n.SelectSingleNode("Numero").InnerText);
                bool         exterieure  = bool.Parse(n.SelectSingleNode("Exterieure").InnerText);
                bool         exploration = bool.Parse(n.SelectSingleNode("Exploration").InnerText);
                TypeActivite ta          = new TypeActivite(n.SelectSingleNode("TypeActivite").SelectSingleNode("Nom").InnerText);

                if (exterieure)
                {
                    if (exploration)
                    {
                        a = new ExplorationExterieure(ta, "", null, null, null, null);
                    }
                    else
                    {
                        a = new ExperienceExterieure(ta, "", null, null, null, null);
                    }
                }
                else
                {
                    a = new Activite(ta);
                }

                activitesBase.Add(num, a);

                p.incrementer();
            }

            /* Chargement données */
            int jour     = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Jour").InnerText);
            int mois     = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Mois").InnerText);
            int annee    = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Annee").InnerText);
            int heures   = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Heures").InnerText);
            int minutes  = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Minutes").InnerText);
            int secondes = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Secondes").InnerText);

            this.debutMission = new DateTime(annee, mois, jour, heures, minutes, secondes);

            TimeMartien nb      = TimeMartien.calculerJours(debutMission);
            int         numJour = nb.getJours() + 1;

            if (numJour > 500)
            {
                numJour = 500;
            }

            XmlNodeList astronautesNodes = mars.GetElementsByTagName("Astronaute");

            foreach (XmlNode n in astronautesNodes)
            {
                String nom    = n.SelectSingleNode("Nom").InnerText;
                String prenom = n.SelectSingleNode("Prenom").InnerText;
                int    age    = int.Parse(n.SelectSingleNode("Age").InnerText);

                Astronaute a = new Astronaute(nom, prenom, age);

                Dictionary <int, Journee> joursMission = new Dictionary <int, Journee>();
                a.setJourneesMission(joursMission);

                astronautes.Add(a);
                a.getJourneesMission().Clear();
                astroList.Items.Add(a); // Ajout dans la liste => interface

                XmlNodeList missionNode = n.SelectSingleNode("JourneesMission").SelectNodes("Journee");

                foreach (XmlNode nn in missionNode)
                {
                    int    num         = int.Parse(nn.SelectSingleNode("Numero").InnerText);
                    String etat        = nn.SelectSingleNode("Etat").InnerText;
                    IEtat  etatJournee = new Passe();

                    if (etat.Equals("EnCours"))
                    {
                        etatJournee = new EnCours();
                    }
                    else if (etat.Equals("Futur"))
                    {
                        etatJournee = new Futur();
                    }

                    String rapport = nn.SelectSingleNode("Rapport").InnerText;

                    Journee j = new Journee(num, rapport, etatJournee, false);
                    j.getActivites().Clear();
                    joursMission.Add(num, j);

                    XmlNodeList activitesNode = nn.SelectSingleNode("Activites").SelectNodes("Activite");

                    foreach (XmlNode nnn in activitesNode)
                    {
                        int        numA         = int.Parse(nnn.SelectSingleNode("Numero").InnerText);
                        String     transport    = nnn.SelectSingleNode("Transport").InnerText;
                        ITransport transportAct = null;

                        if (transport.Equals("Scaphandre"))
                        {
                            transportAct = new Scaphandre();
                        }
                        else if (transport.Equals("Vehicule"))
                        {
                            transportAct = new Vehicule();
                        }

                        String description = nnn.SelectSingleNode("Description").InnerText;
                        etat = nnn.SelectSingleNode("Etat").InnerText;
                        IEtat etatAct = new Passe();

                        if (etat.Equals("EnCours"))
                        {
                            etatAct = new EnCours();
                        }
                        else if (etat.Equals("Futur"))
                        {
                            etatAct = new Futur();
                        }

                        int mD = int.Parse(nnn.SelectSingleNode("HeureDebut").InnerText);

                        int mF = int.Parse(nnn.SelectSingleNode("HeureFin").InnerText);

                        String xy = nnn.SelectSingleNode("XY").InnerText;
                        int    x  = int.Parse(xy.Split(',')[0]);
                        int    y  = int.Parse(xy.Split(',')[1]);

                        Lieu l = new Lieu(x, y);

                        Activite aBase = activitesBase[numA];
                        Activite act;

                        if (aBase.isActiviteExterieure())
                        {
                            if (aBase.isExperience())
                            {
                                act = new ExperienceExterieure(aBase.getTypeActivite(), description, new TimeMartien(0, 0, mD, 0), new TimeMartien(0, 0, mF, 0), l, transportAct);
                            }
                            else
                            {
                                act = new ExplorationExterieure(aBase.getTypeActivite(), description, new TimeMartien(0, 0, mD, 0), new TimeMartien(0, 0, mF, 0), l, transportAct);
                            }
                        }
                        else
                        {
                            act = new Activite(aBase.getTypeActivite(), description, new TimeMartien(0, 0, mD, 0), new TimeMartien(0, 0, mF, 0), l);
                        }


                        act.setDescription(description);

                        act.setEtat(etatAct);

                        j.ajouterActivite(act);

                        p.incrementer();
                    }
                    p.incrementer();
                }
                p.incrementer();
            }

            initialisationInterface();

            astronauteSelectionne = astronautes[0];
            journeesMission       = astronauteSelectionne.getJourneesMission();
            journeeActuelle       = journeesMission[numJour];

            modificationJourneeActuelle(numJour);

            changerPeriode(periode);
            verificationChangementPeriode();
            mettreAJourHeures();
            miseAJourEdt(journeesMission[journeeSelectionnee]);

            descriptionTexte.Text  = journeesMission[journeeSelectionnee].getDescription();
            astroList.SelectedItem = astronauteSelectionne;

            p.fermerFenetre();
        }
Example #11
0
        /// <summary>
        /// Permet de charger les données depuis un fichier XML
        /// </summary>
        /// <param name="marsOMatic">Le fichier XML Mars-o-Matic</param>
        /// <param name="activitesRefs">Le fichier XML ActivitesRefs associé au fichier précédent</param>
        private void chargerXml(String marsOMatic, String activitesRefs)
        {
            XmlDocument mars = new XmlDocument();
            mars.Load(marsOMatic);
            XmlDocument acts = new XmlDocument();
            acts.Load(activitesRefs);

            Dictionary<int, Activite> activitesBase = new Dictionary<int, Activite>();

            int nbElements = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("NbElements").InnerText);

            Progression p = new Progression(nbElements);
            p.Show();

            /* Chargement données des activités de base */
            XmlNodeList activites = acts.GetElementsByTagName("Activite");

            foreach (XmlNode n in activites)
            {
                Activite a;

                int num = int.Parse(n.SelectSingleNode("Numero").InnerText);
                bool exterieure = bool.Parse(n.SelectSingleNode("Exterieure").InnerText);
                bool exploration = bool.Parse(n.SelectSingleNode("Exploration").InnerText);
                TypeActivite ta = new TypeActivite(n.SelectSingleNode("TypeActivite").SelectSingleNode("Nom").InnerText);

                if (exterieure)
                    if (exploration)
                        a = new ExplorationExterieure(ta, "", null, null, null, null);
                    else
                        a = new ExperienceExterieure(ta, "", null, null, null, null);
                else
                    a = new Activite(ta);

                activitesBase.Add(num, a);

                p.incrementer();
            }

            /* Chargement données */
            int jour = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Jour").InnerText);
            int mois = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Mois").InnerText);
            int annee = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Annee").InnerText);
            int heures = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Heures").InnerText);
            int minutes = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Minutes").InnerText);
            int secondes = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Secondes").InnerText);

            this.debutMission = new DateTime(annee, mois, jour, heures, minutes, secondes);

            TimeMartien nb = TimeMartien.calculerJours(debutMission);
            int numJour = nb.getJours() + 1;

            if (numJour > 500)
                numJour = 500;

            XmlNodeList astronautesNodes = mars.GetElementsByTagName("Astronaute");

            foreach (XmlNode n in astronautesNodes)
            {
                String nom = n.SelectSingleNode("Nom").InnerText;
                String prenom = n.SelectSingleNode("Prenom").InnerText;
                int age = int.Parse(n.SelectSingleNode("Age").InnerText);

                Astronaute a = new Astronaute(nom, prenom, age);

                Dictionary<int, Journee> joursMission = new Dictionary<int, Journee>();
                a.setJourneesMission(joursMission);

                astronautes.Add(a);
                a.getJourneesMission().Clear();
                astroList.Items.Add(a); // Ajout dans la liste => interface

                XmlNodeList missionNode = n.SelectSingleNode("JourneesMission").SelectNodes("Journee");

                foreach (XmlNode nn in missionNode)
                {
                    int num = int.Parse(nn.SelectSingleNode("Numero").InnerText);
                    String etat = nn.SelectSingleNode("Etat").InnerText;
                    IEtat etatJournee = new Passe();

                    if (etat.Equals("EnCours"))
                        etatJournee = new EnCours();
                    else if (etat.Equals("Futur"))
                        etatJournee = new Futur();

                    String rapport = nn.SelectSingleNode("Rapport").InnerText;

                    Journee j = new Journee(num, rapport, etatJournee, false);
                    j.getActivites().Clear();
                    joursMission.Add(num, j);

                    XmlNodeList activitesNode = nn.SelectSingleNode("Activites").SelectNodes("Activite");

                    foreach (XmlNode nnn in activitesNode)
                    {
                        int numA = int.Parse(nnn.SelectSingleNode("Numero").InnerText);
                        String transport = nnn.SelectSingleNode("Transport").InnerText;
                        ITransport transportAct = null;

                        if (transport.Equals("Scaphandre"))
                            transportAct = new Scaphandre();
                        else if (transport.Equals("Vehicule"))
                            transportAct = new Vehicule();

                        String description = nnn.SelectSingleNode("Description").InnerText;
                        etat = nnn.SelectSingleNode("Etat").InnerText;
                        IEtat etatAct = new Passe();

                        if (etat.Equals("EnCours"))
                            etatAct = new EnCours();
                        else if (etat.Equals("Futur"))
                            etatAct = new Futur();

                        int mD = int.Parse(nnn.SelectSingleNode("HeureDebut").InnerText);

                        int mF = int.Parse(nnn.SelectSingleNode("HeureFin").InnerText);

                        String xy = nnn.SelectSingleNode("XY").InnerText;
                        int x = int.Parse(xy.Split(',')[0]);
                        int y = int.Parse(xy.Split(',')[1]);

                        Lieu l = new Lieu(x, y);

                        Activite aBase = activitesBase[numA];
                        Activite act;

                        if (aBase.isActiviteExterieure())
                            if (aBase.isExperience())
                                act = new ExperienceExterieure(aBase.getTypeActivite(), description, new TimeMartien(0, 0, mD, 0), new TimeMartien(0, 0, mF, 0), l, transportAct);
                            else
                                act = new ExplorationExterieure(aBase.getTypeActivite(), description, new TimeMartien(0, 0, mD, 0), new TimeMartien(0, 0, mF, 0), l, transportAct);
                        else
                            act = new Activite(aBase.getTypeActivite(), description, new TimeMartien(0, 0, mD, 0), new TimeMartien(0, 0, mF, 0), l);

                        act.setDescription(description);

                        act.setEtat(etatAct);

                        j.ajouterActivite(act);

                        p.incrementer();
                    }
                    p.incrementer();
                }
                p.incrementer();
            }

            initialisationInterface();

            astronauteSelectionne = astronautes[0];
            journeesMission = astronauteSelectionne.getJourneesMission();
            journeeActuelle = journeesMission[numJour];

            modificationJourneeActuelle(numJour);

            changerPeriode(periode);
            verificationChangementPeriode();
            mettreAJourHeures();
            miseAJourEdt(journeesMission[journeeSelectionnee]);

            descriptionTexte.Text = journeesMission[journeeSelectionnee].getDescription();
            astroList.SelectedItem = astronauteSelectionne;

            p.fermerFenetre();
        }
Example #12
0
 /// <summary>
 /// Permet de modifier l'EdT en fonction de l'astronaute sélectionné
 /// </summary>
 /// <param name="sender">Objet source</param>
 /// <param name="e">Evènement</param>
 private void astroList_SelectedIndexChanged(object sender, EventArgs e)
 {
     astronauteSelectionne = (Astronaute) astroList.SelectedItems[0];
     journeesMission = astronauteSelectionne.getJourneesMission();
     modificationJourneeActuelle(journeeActuelle.getNumero());
     miseAJourEdt(journeesMission[journeeSelectionnee]);
     changerPeriode(periode);
     descriptionTexte.Text = journeesMission[journeeSelectionnee].getDescription();
     this.Refresh();
 }
Example #13
0
        public void nbJourneesTest()
        {
            Astronaute a = new Astronaute("Bob", "Machin", 20);
            int numJour = 20;
            a.creerEdT(numJour);

            int nbElems = a.getJourneesMission().Count * 7; // 7 est le nombre d'activités dans une journée, par défaut
            int result = 500 * 7;

            Assert.AreEqual(nbElems, result, "Le nombre d'éléments dans l'EdT de l'astronaute n'est pas bon");
        }