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!"); }
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++; } }
private void MettreTousLesNaviresAuPort(UneFlotteDeNavires flotte) { byte ligne = 1; foreach (UnNavire navire in flotte.Navires) { navire.Positionner(new CoordonnéesDeBatailleNavale('A', ligne++), OrientationNavire.Horizontal); } }
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++; } }
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++; } }