You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ohara_MAUI/Sources/TestProject1/TestManager.cs

351 lines
12 KiB

using Model.Classes;
using Model.Managers;
using Model.Serializer;
using Model.Stub;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestProject1
{
public class TestManager
{
public Manager manager = new Manager(new StubManager());
[Fact]
public void Constructor_InitializesCollections()
{
Assert.NotNull(manager.Bateaux);
Assert.NotNull(manager.Personnages);
Assert.NotNull(manager.Fruits);
Assert.NotNull(manager.Iles);
Assert.NotNull(manager.Bestiaire);
Assert.NotNull(manager.Equipages);
}
[Fact]
public void FiltrerFDD_ReturnsFilteredFruits()
{
// Arrange
var type = "Paramecia";
var fruits = new List<FruitDuDemon>
{
new FruitDuDemon("fruit1", "", "Paramecia", 0, 0,"","",""),
new FruitDuDemon("fruit2", "", "Logia", 0, 0,"","",""),
new FruitDuDemon("fruit3", "", "Zoan", 0, 0,"","",""),
};
manager.Fruits = new ObservableCollection<FruitDuDemon>(fruits);
// Act
var result = manager.FiltrerFDD(type);
// Assert
Assert.True(1== result.Count);
Assert.True("Paramecia"== result[0].Type);
}
[Fact]
public void FiltrerBateau_ReturnsMatchingBateaux()
{
var bateau1 = new Bateau("bateau1", "", 0, 0, "", "");
var bateau2 = new Bateau("bateau1", "", 0, 0, "", "");
var bateau3 = new Bateau("bateau", "", 0, 0, "", "");
bateau1.Affiliation = new Equipage("Mugiwara", "","",0,0,true,"");
bateau2.Affiliation = new Equipage("Barbe noire", "", "", 0, 0, true, "");
bateau3.Affiliation = new Equipage("Barbe blanche", "", "", 0, 0, true, "");
var bateaux = new List<Bateau> { bateau1,bateau2 ,bateau3};
manager.Bateaux = new ObservableCollection<Bateau>(bateaux);
var result = manager.FiltrerBateau("Mugiwara");
Assert.True(1 == result.Count);
Assert.True("Mugiwara" == result[0].Affiliation.Nom);
}
[Fact]
public void FiltrerIle_ReturnsMatchingIles()
{
var iles = new List<Ile> {
new Ile("ile1","","East Blue",0,0,"",""),
new Ile("ile2","","Grand Line",0,0,"",""),
new Ile("ile3","","West Blue",0,0,"",""),
};
manager.Iles = new ObservableCollection<Ile>(iles);
var result = manager.FiltrerIle("East Blue");
Assert.True(1 == result.Count);
Assert.True("East Blue" == result[0].Region);
}
[Fact]
public void RechercheObjetOhara_ReturnsFilteredList()
{
// Arrange
var text = "abc";
var obj1 = new ObjetOhara("abcd");
var obj2 = new ObjetOhara("bcde");
var obj3 = new ObjetOhara("defg");
var liste = new List<ObjetOhara> { obj1, obj2, obj3 };
// Act
var result = manager.RechercheObjetOhara(text, liste);
// Assert
Assert.True(1==result.Count);
Assert.Contains(obj1, result);
Assert.True(!result.Contains(obj3));
}
[Fact]
public void GetFavoris_ReturnsFavoritedObjects()
{
var obj1 =manager.Fruits.First();
var obj2 = manager.Equipages.First();
manager.ModifierFavFDD(obj1, true);
var result = manager.GetFavoris();
Assert.True(1==result.Count);
Assert.Contains(obj1, result);
Assert.True(!result.Contains(obj2));
}
[Fact]
public void ModifierFavFDD_UpdatesFruitDuDemonFavori()
{
var fruit = new FruitDuDemon("Fruit", "", "", 0, 0, "", "","");
manager.Fruits.Add(fruit);
manager.ModifierFavFDD(fruit, true);
fruit = manager.Fruits.FirstOrDefault(p => fruit.Nom == p.Nom);
Assert.NotNull(fruit);
Assert.True(fruit.EstFavori);
}
[Fact]
public void ModifierFavEquip_UpdatesEquipageFavori()
{
var equip = new Equipage("Equipage","","",0,0,true,"");
manager.Equipages.Add(equip);
manager.ModifierFavEquip(equip, true);
equip = manager.Equipages.FirstOrDefault(p=> equip.Nom == p.Nom);
Assert.NotNull(equip);
Assert.True(equip.EstFavori);
}
[Fact]
public void ModifierFavBest_UpdatesBestiaireFavori()
{
var best = new Bestiaire("Bestiaire", "", "","");
manager.Bestiaire.Add(best);
manager.ModifierFavBest(best, true);
best = manager.Bestiaire.FirstOrDefault(p => best.Nom == p.Nom);
Assert.NotNull(best);
Assert.True(best.EstFavori);
}
[Fact]
public void ModifierFavPerso_UpdatesPersonnageFavori()
{
var perso = new Personnage("Personnage", 0, "", 0, 0, "", "", "");
manager.Personnages.Add(perso);
manager.ModifierFavPerso(perso, true);
perso = manager.Personnages.FirstOrDefault(p => perso.Nom == p.Nom);
Assert.NotNull(perso);
Assert.True(perso.EstFavori);
}
[Fact]
public void ModifierFavIle_UpdatesIleFavori()
{
var ile = new Ile("Ile", "", "", 0, 0, "", "");
manager.Iles.Add(ile);
manager.ModifierFavIle(ile, true);
ile = manager.Iles.FirstOrDefault(p => ile.Nom == p.Nom);
Assert.NotNull(ile);
Assert.True(ile.EstFavori);
}
[Fact]
public void ModifierFavBateau_UpdatesBateauFavori()
{
var bateau = new Bateau("Bateau", "", 0, 0, "", "");
manager.Bateaux.Add(bateau);
manager.ModifierFavBateau(bateau, true);
bateau = manager.Bateaux.FirstOrDefault(p => bateau.Nom == p.Nom);
Assert.NotNull(bateau);
Assert.True(bateau.EstFavori);
}
[Fact]
public void ModifierIle_Should_UpdateIle_When_ExistingAncienNom()
{
Ile ancienneIle = new Ile("AncienNom","","",0,0,"","");
Ile nouvelleIle = new Ile("NouveauNom", "", "", 0, 0, "", "");
manager.Iles.Add(ancienneIle);
manager.ModifierIle(nouvelleIle, "AncienNom");
Assert.DoesNotContain(ancienneIle,manager.Iles);
Assert.Contains(nouvelleIle,manager.Iles); ;
}
[Fact]
public void ModifierIle_Should_NotUpdateIle_When_NonExistingAncienNom()
{
Ile ancienneIle = new Ile("AncienNom", "", "", 0, 0, "", "");
Ile nouvelleIle = new Ile("NouveauNom", "", "", 0, 0, "", "");
manager.Iles.Add(ancienneIle);
manager.ModifierIle(nouvelleIle, "iadjadiozadioazj");
Assert.Contains(ancienneIle, manager.Iles);
Assert.DoesNotContain(nouvelleIle, manager.Iles);
}
[Fact]
public void ModifierFDD_Should_UpdateIle_When_ExistingAncienNom()
{
FruitDuDemon ancienneFDD = new FruitDuDemon("AncienNom", "", "",0, 0, "", "","");
FruitDuDemon nouvelleFDD = new FruitDuDemon("NouveauNom", "", "", 0, 0, "", "","");
manager.Fruits.Add(ancienneFDD);
manager.ModifierFDD(nouvelleFDD, "AncienNom");
Assert.DoesNotContain(ancienneFDD, manager.Fruits);
Assert.Contains(nouvelleFDD, manager.Fruits); ;
}
[Fact]
public void ModifierFDD_Should_NotUpdateIle_When_NonExistingAncienNom()
{
FruitDuDemon ancienneFDD = new FruitDuDemon("AncienNom", "", "", 0, 0, "", "", "");
FruitDuDemon nouvelleFDD = new FruitDuDemon("NouveauNom", "", "", 0, 0, "", "", "");
manager.Fruits.Add(ancienneFDD);
manager.ModifierFDD(nouvelleFDD, "ADADADAZDAZD");
Assert.Contains(ancienneFDD, manager.Fruits);
Assert.DoesNotContain(nouvelleFDD, manager.Fruits);
}
[Fact]
public void ModifierPerso_Should_UpdateIle_When_ExistingAncienNom()
{
Personnage ancienPerso = new Personnage("AncienNom",0,"",0,0, "", "", "");
Personnage nouveauPerso = new Personnage("NouveauNom", 0, "", 0,0, "", "", "");
manager.Personnages.Add(ancienPerso);
manager.ModifierPerso(nouveauPerso, "AncienNom");
Assert.DoesNotContain(ancienPerso, manager.Personnages);
Assert.Contains(nouveauPerso, manager.Personnages);
}
[Fact]
public void ModifierPerso_Should_NotUpdateIle_When_NonExistingAncienNom()
{
Personnage ancienPerso = new Personnage("AncienNom", 0, "", 0, 0, "", "", "");
Personnage nouveauPerso = new Personnage("NouveauNom", 0, "", 0, 0, "", "", "");
manager.Personnages.Add(ancienPerso);
manager.ModifierPerso(nouveauPerso, "adadadadzdd");
Assert.Contains(ancienPerso, manager.Personnages);
Assert.DoesNotContain(nouveauPerso, manager.Personnages);
}
[Fact]
public void ModifierBest_Should_UpdateIle_When_ExistingAncienNom()
{
Bestiaire ancienBest = new Bestiaire("AncienNom", "", "", "", "");
Bestiaire nouveauBest = new Bestiaire("NouveauNom", "", "", "", "");
manager.Bestiaire.Add(ancienBest);
manager.ModifierBest(nouveauBest, "AncienNom");
Assert.DoesNotContain(ancienBest, manager.Bestiaire);
Assert.Contains(nouveauBest, manager.Bestiaire);
}
[Fact]
public void ModifierBest_Should_NotUpdateIle_When_NonExistingAncienNom()
{
Bestiaire ancienBest = new Bestiaire("AncienNom", "", "", "", "");
Bestiaire nouveauBest = new Bestiaire("NouveauNom", "", "", "", "");
manager.Bestiaire.Add(ancienBest);
manager.ModifierBest(nouveauBest, "adadadadzdd");
Assert.Contains(ancienBest, manager.Bestiaire);
Assert.DoesNotContain(nouveauBest, manager.Bestiaire);
}
[Fact]
public void ModifierEquip_Should_UpdateIle_When_ExistingAncienNom()
{
Equipage ancienEquîp = new Equipage("AncienNom", "", "",0,0 ,true, "");
Equipage nouveauEquip = new Equipage("NouveauNom", "", "", 0, 0, true, "");
manager.Equipages.Add(ancienEquîp);
manager.ModifierEquipage(nouveauEquip, "AncienNom");
Assert.DoesNotContain(ancienEquîp, manager.Equipages);
Assert.Contains(nouveauEquip, manager.Equipages);
}
[Fact]
public void ModifierEquipage_Should_NotUpdateIle_When_NonExistingAncienNom()
{
Equipage ancienEquîp = new Equipage("AncienNom", "", "", 0, 0, true, "");
Equipage nouveauEquip = new Equipage("NouveauNom", "", "", 0, 0, true, "");
manager.Equipages.Add(ancienEquîp);
manager.ModifierEquipage(nouveauEquip, "adadadda");
Assert.Contains(ancienEquîp, manager.Equipages);
Assert.DoesNotContain(nouveauEquip, manager.Equipages);
}
[Fact]
public void ModifierBateau_Should_UpdateIle_When_ExistingAncienNom()
{
Bateau ancienBateau = new Bateau("AncienNom", "", 0, 0, "", "");
Bateau nouveauBateau = new Bateau("NouveauNom", "", 0, 0, "", "");
manager.Bateaux.Add(ancienBateau);
manager.ModifierBateau(nouveauBateau, "AncienNom");
Assert.DoesNotContain(ancienBateau, manager.Bateaux);
Assert.Contains(nouveauBateau, manager.Bateaux);
}
[Fact]
public void ModifierBateau_Should_NotUpdateIle_When_NonExistingAncienNom()
{
Bateau ancienBateau = new Bateau("AncienNom", "", 0, 0, "", "");
Bateau nouveauBateau = new Bateau("NouveauNom", "", 0, 0, "", "");
manager.Bateaux.Add(ancienBateau);
manager.ModifierBateau(nouveauBateau, "adfadadzdaz");
Assert.Contains(ancienBateau, manager.Bateaux);
Assert.DoesNotContain(nouveauBateau, manager.Bateaux);
}
}
}