Beispiel #1
0
        public void Phase_2_6_RéparerLaFlotteDeNavires()
        {
            UneFlotteDeNavires flotte = new UneFlotteDeNavires();

            foreach (UnNavire navire in flotte.Navires)
            {
                foreach (var section in navire.Sections)
                {
                    section.Etat = EtatDeSectionDeNavire.Touché;
                }
            }
            flotte.RéparerTousLesNavires();
            bool aucuneSectionTouchée = true;

            foreach (UnNavire navire in flotte.Navires)
            {
                foreach (var section in navire.Sections)
                {
                    if (section.Etat == EtatDeSectionDeNavire.Touché)
                    {
                        aucuneSectionTouchée = false;
                    }
                }
            }
            Assert.IsTrue(aucuneSectionTouchée, "Après réparation, toutes les sections de tous les navires doivent être intactes!");
        }
Beispiel #2
0
        public void Phase_2_3_UneFlotteDeNavires()
        {
            Type t = typeof(UneFlotteDeNavires);

            ConstructorInfo[] constructeursPubliques = t.GetConstructors();
            bool constructeurParDefautPublic         = false;

            foreach (ConstructorInfo constructeur in constructeursPubliques)
            {
                // recherche du constructeur sans paramètre
                if (constructeur.GetParameters().Length == 0)
                {
                    constructeurParDefautPublic = true;
                }
            }
            Assert.IsTrue(constructeurParDefautPublic, "Le constructeur de UneFlotteDeNavires par défaut doit être public.");
            UneFlotteDeNavires flotte = new UneFlotteDeNavires();

            Assert.IsTrue(flotte.Navires.Length == 5, "La flotte de navire doit être composée de 5 navires exactement");
            int navireIndex = 0;

            foreach (UnNavire navire in flotte.Navires)
            {
                Assert.AreEqual(NomsDesNaviresDeLaFlotte[navireIndex], navire.Nom, "Ce navire ne porte pas le bon nom");
                Assert.AreEqual(TaillesDesNaviresDeLaFlotte[navireIndex],
                                navire.Sections.Length, String.Format("Le navire {0} n'a pas le bon nombre de section", navire.Nom));
                navireIndex++;
            }
        }
Beispiel #3
0
        private void MettreTousLesNaviresAuPort(UneFlotteDeNavires flotte)
        {
            byte ligne = 1;

            foreach (UnNavire navire in flotte.Navires)
            {
                navire.Positionner(new CoordonnéesDeBatailleNavale('A', ligne++),
                                   OrientationNavire.Horizontal);
            }
        }
Beispiel #4
0
        public void Phase_2_8_VérifierLeRésultatDuTir()
        {
            UneFlotteDeNavires flotte = new UneFlotteDeNavires();

            MettreTousLesNaviresAuPort(flotte);
            byte ligne = 1;

            foreach (UnNavire navire in flotte.Navires)
            {
                int sectionNum = 0;
                for (; sectionNum < navire.Sections.Length - 1; sectionNum++)
                {
                    RésultatDeTir resultatTirTouché = navire.VérifierLeRésultatDuTir(new CoordonnéesDeBatailleNavale((char)('A' + sectionNum), ligne));
                    Assert.AreEqual(resultatTirTouché, RésultatDeTir.Touché, "Le navire situé ici devrait être touché");
                }
                RésultatDeTir resultatTirTouchéCoulé =
                    navire.VérifierLeRésultatDuTir(new CoordonnéesDeBatailleNavale((char)('A' +
                                                                                          sectionNum), ligne));
                Assert.AreEqual(resultatTirTouchéCoulé, RésultatDeTir.TouchéCoulé, "Le navire situé ici devrait être touché et coulé!");

                ligne++;
            }
            flotte.RéparerTousLesNavires();
            ligne = 1;
            foreach (UnNavire navire in flotte.Navires)
            {
                int sectionNum = 0;
                for (; sectionNum < navire.Sections.Length - 1; sectionNum++)
                {
                    RésultatDeTir resultatTirTouché = flotte.VérifierLeRésultatDuTir(new CoordonnéesDeBatailleNavale((char)('A' + sectionNum), ligne));
                    Assert.AreEqual(resultatTirTouché, RésultatDeTir.Touché, "Le navire situé ici devrait être touché");
                }
                if (ligne < 5) // dernière section , mais pas dernier navire
                {
                    RésultatDeTir resultatTirTouchéCoulé =
                        flotte.VérifierLeRésultatDuTir(new CoordonnéesDeBatailleNavale((char)('A' + sectionNum), ligne));
                    Assert.AreEqual(resultatTirTouchéCoulé, RésultatDeTir.TouchéCoulé, "Le navire situé ici devrait être touché et coulé !");
                }
                else // dernière section , du dernier navire
                {
                    RésultatDeTir resultatTirTouchéCouléFinal =
                        flotte.VérifierLeRésultatDuTir(new CoordonnéesDeBatailleNavale((char)('A' +
                                                                                              sectionNum), ligne));
                    Assert.AreEqual(resultatTirTouchéCouléFinal,
                                    RésultatDeTir.TouchéCouléFinal, "Le navire situé ici devrait être le dernier navire touché et coulé!");
                }
                ligne++;
            }
        }
Beispiel #5
0
        public void Phase_2_7_MettreTousLesNaviresAuPort()
        {
            UneFlotteDeNavires flotte = new UneFlotteDeNavires();

            MettreTousLesNaviresAuPort(flotte);
            Assert.IsTrue(flotte.Navires.Length == 5);
            byte ligne = 1;

            foreach (UnNavire navire in flotte.Navires)
            {
                Assert.IsNotNull(navire, "navire ne peut pas être null");
                Assert.IsTrue(navire.Orientation == OrientationNavire.Horizontal, "le navire n'est pas horizontal");
                for (int sectionNum = 0; sectionNum < navire.Sections.Length; sectionNum++)
                {
                    Assert.IsTrue(navire.Sections[sectionNum].Position.Colonne == 'A'
                                  + sectionNum, "La colonne de cette section n'est pas correcte");
                    Assert.IsTrue(navire.Sections[sectionNum].Position.Ligne == ligne,
                                  "La ligne de cette section n'est pas correcte");
                }
                ligne++;
            }
        }