diff --git a/src/Banquale/UnitTest/ConsultantTest.cs b/src/Banquale/UnitTest/ConsultantTest.cs
index c1bad5f..08ac219 100644
--- a/src/Banquale/UnitTest/ConsultantTest.cs
+++ b/src/Banquale/UnitTest/ConsultantTest.cs
@@ -1,11 +1,34 @@
using System;
+using Model;
+
namespace UnitTest
{
- public class ConsultantTest
- {
- public ConsultantTest()
- {
- }
- }
-}
+ /// \file
+ /// \brief Fichier de tests pour la classe Consultant.
+ /// \author Votre nom
+
+ ///
+ /// Classe de tests pour la classe Consultant.
+ ///
+ public class ConsultantTests
+ {
+ ///
+ /// Teste si la liste des messages du consultant est initialisée correctement.
+ ///
+ [Fact]
+ public void Constructor_MessagesListInitialized()
+ {
+ // Arrange
+ string name = "Doe";
+ string firstName = "John";
+ string password = "123456";
+ // Act
+ Consultant consultant = new Consultant(name, firstName, password);
+
+ // Assert
+ Assert.NotNull(consultant.MessagesList);
+ Assert.Empty(consultant.MessagesList);
+ }
+ }
+}
diff --git a/src/Banquale/UnitTest/CustomerTest.cs b/src/Banquale/UnitTest/CustomerTest.cs
index ab3bbd2..0537481 100644
--- a/src/Banquale/UnitTest/CustomerTest.cs
+++ b/src/Banquale/UnitTest/CustomerTest.cs
@@ -1,11 +1,78 @@
using System;
+using Model;
+
namespace UnitTest
{
- public class CustomerTest
- {
- public CustomerTest()
- {
- }
- }
-}
+ /// \file
+ /// \brief Fichier de tests pour la classe Customer.
+ /// \author Votre nom
+
+ ///
+ /// Classe de tests pour la classe Customer.
+ ///
+ public class CustomerTests
+ {
+ ///
+ /// Teste si la liste des comptes du client est initialisée correctement.
+ ///
+ [Fact]
+ public void Constructor_AccountsListInitialized()
+ {
+ // Arrange
+ string name = "Doe";
+ string firstName = "John";
+ string password = "123456";
+
+ // Act
+ Customer customer = new Customer(name, firstName, password);
+
+ // Assert
+ Assert.NotNull(customer.AccountsList);
+ Assert.Empty(customer.AccountsList);
+ }
+
+ ///
+ /// Teste l'égalité entre deux clients.
+ ///
+ [Fact]
+ public void Equals_TwoEqualCustomers_ReturnsTrue()
+ {
+ // Arrange
+ string name1 = "Doe";
+ string firstName1 = "John";
+ string password1 = "123456";
+ string name2 = "Doe";
+ string firstName2 = "John";
+ string password2 = "123456";
+ // Act
+ Customer customer1 = new Customer(name1, firstName1, password1);
+ Customer customer2 = new Customer(name2, firstName2, password2);
+
+ // Assert
+ Assert.True(customer1.Equals(customer2));
+ }
+
+ ///
+ /// Teste l'égalité entre deux clients avec des identifiants différents.
+ ///
+ [Fact]
+ public void Equals_TwoDifferentCustomers_ReturnsFalse()
+ {
+ // Arrange
+ string name1 = "Doe";
+ string firstName1 = "John";
+ string password1 = "123456";
+ string name2 = "Smith";
+ string firstName2 = "Jane";
+ string password2 = "abcdef";
+
+ // Act
+ Customer customer1 = new Customer(name1, firstName1, password1);
+ Customer customer2 = new Customer(name2, firstName2, password2);
+
+ // Assert
+ Assert.False(customer1.Equals(customer2));
+ }
+ }
+}
diff --git a/src/Banquale/UnitTest/IPersistenceManagerTest.cs b/src/Banquale/UnitTest/IPersistenceManagerTest.cs
new file mode 100644
index 0000000..4da37ce
--- /dev/null
+++ b/src/Banquale/UnitTest/IPersistenceManagerTest.cs
@@ -0,0 +1,81 @@
+using System;
+using Model;
+
+namespace UnitTest
+{
+ /// \file
+ /// \brief Fichier de tests pour l'interface IPersistenceManager.
+ /// \author Votre nom
+
+ ///
+ /// Classe de tests pour l'interface IPersistenceManager.
+ ///
+ public class PersistenceManagerTests
+ {
+ ///
+ /// Teste la sauvegarde des données.
+ ///
+ [Fact]
+ public void DataSave_ValidData_CallsDataSave()
+ {
+ // Arrange
+ MockPersistenceManager persistenceManager = new MockPersistenceManager();
+ List customersList = new List { new Customer("Doe", "John", "123456") };
+ Consultant consultant = new Consultant("Smith", "Jane", "abcdef");
+
+ // Act
+ persistenceManager.DataSave(customersList, consultant);
+
+ // Assert
+ Assert.True(persistenceManager.DataSaveCalled);
+ Assert.Equal(customersList, persistenceManager.SavedCustomersList);
+ Assert.Equal(consultant, persistenceManager.SavedConsultant);
+ }
+
+ ///
+ /// Teste le chargement des données.
+ ///
+ [Fact]
+ public void DataLoad_CallsDataLoad_ReturnsData()
+ {
+ // Arrange
+ MockPersistenceManager persistenceManager = new MockPersistenceManager();
+ List customersList = new List { new Customer("Doe", "John", "123456") };
+ Consultant consultant = new Consultant("Smith", "Jane", "abcdef");
+ persistenceManager.DataToLoad = (customersList, consultant);
+
+ // Act
+ var result = persistenceManager.DataLoad();
+
+ // Assert
+ Assert.True(persistenceManager.DataLoadCalled);
+ Assert.Equal(customersList, result.Item1);
+ Assert.Equal(consultant, result.Item2);
+ }
+
+ ///
+ /// Classe de mock pour le gestionnaire de persistance.
+ ///
+ private class MockPersistenceManager : IPersistenceManager
+ {
+ public bool DataSaveCalled { get; private set; }
+ public bool DataLoadCalled { get; private set; }
+ public (List, Consultant) DataToLoad { get; set; }
+ public List? SavedCustomersList { get; private set; }
+ public Consultant? SavedConsultant { get; private set; }
+
+ public void DataSave(List customersList, Consultant consultant)
+ {
+ DataSaveCalled = true;
+ SavedCustomersList = customersList;
+ SavedConsultant = consultant;
+ }
+
+ public (List, Consultant) DataLoad()
+ {
+ DataLoadCalled = true;
+ return DataToLoad;
+ }
+ }
+ }
+}
diff --git a/src/Banquale/UnitTest/ManagerTest.cs b/src/Banquale/UnitTest/ManagerTest.cs
index aaf7cbb..69a308a 100644
--- a/src/Banquale/UnitTest/ManagerTest.cs
+++ b/src/Banquale/UnitTest/ManagerTest.cs
@@ -1,11 +1,137 @@
using System;
+using Model;
+
namespace UnitTest
{
- public class ManagerTest
- {
- public ManagerTest()
- {
- }
- }
-}
+ /// \file
+ /// \brief Fichier de tests pour la classe Manager.
+ /// \author Votre nom
+
+ ///
+ /// Classe de tests pour la classe Manager.
+ ///
+ public class ManagerTests
+ {
+ ///
+ /// Teste si la liste des clients est initialisée correctement.
+ ///
+ [Fact]
+ public void Constructor_CustomersListInitialized()
+ {
+ // Arrange
+ Manager manager = new Manager();
+
+ // Act
+
+ // Assert
+ Assert.NotNull(manager.CustomersList);
+ Assert.Empty(manager.CustomersList);
+ }
+
+ ///
+ /// Teste l'ajout d'un client à la liste des clients.
+ ///
+ [Fact]
+ public void AddCustomer_ValidCustomer_ReturnsTrue()
+ {
+ // Arrange
+ Manager manager = new Manager();
+ Customer customer = new Customer("Doe", "John", "123456");
+
+ // Act
+ bool result = manager.AddCustomer(customer);
+
+ // Assert
+ Assert.True(result);
+ Assert.Contains(customer, manager.CustomersList);
+ }
+
+ ///
+ /// Teste la récupération d'un client à partir de la liste des clients.
+ ///
+ [Fact]
+ public void GetCustomer_ValidPosition_ReturnsCustomer()
+ {
+ // Arrange
+ Manager manager = new Manager();
+ Customer customer1 = new Customer("Doe", "John", "123456");
+ Customer customer2 = new Customer("Smith", "Jane", "abcdef");
+ manager.AddCustomer(customer1);
+ manager.AddCustomer(customer2);
+
+ // Act
+ Customer result = manager.GetCustomer(1);
+ // Assert
+ Assert.Equal(customer2, result);
+ }
+
+ ///
+ /// Teste la sauvegarde des données.
+ ///
+ [Fact]
+ public void DataSave_ValidData_CallsPersistenceManagerDataSave()
+ {
+ // Arrange
+ MockPersistenceManager persistenceManager = new MockPersistenceManager();
+ Manager manager = new Manager(persistenceManager);
+ Customer customer = new Customer("Doe", "John", "123456");
+ manager.AddCustomer(customer);
+
+ // Act
+ manager.DataSave();
+
+ // Assert
+ Assert.True(persistenceManager.DataSaveCalled);
+ Assert.Equal(manager.CustomersList, persistenceManager.SavedCustomersList);
+ Assert.Equal(manager.Consultant, persistenceManager.SavedConsultant);
+ }
+
+ ///
+ /// Teste le chargement des données.
+ ///
+ [Fact]
+ public void DataLoad_ValidData_CallsPersistenceManagerDataLoad()
+ {
+ // Arrange
+ MockPersistenceManager persistenceManager = new MockPersistenceManager();
+ Manager manager = new Manager(persistenceManager);
+ Customer customer = new Customer("Doe", "John", "123456");
+ Consultant consultant = new Consultant("Smith", "Jane", "abcdef");
+ persistenceManager.DataToLoad = (new List { customer }, consultant);
+
+ // Act
+ manager.DataLoad();
+
+ // Assert
+ Assert.True(persistenceManager.DataLoadCalled);
+ Assert.Contains(customer, manager.CustomersList);
+ Assert.Equal(consultant, manager.Consultant);
+ }
+
+ ///
+ /// Classe de mock pour le gestionnaire de persistance.
+ ///
+ private class MockPersistenceManager : IPersistenceManager
+ {
+ public bool DataSaveCalled { get; private set; }
+ public bool DataLoadCalled { get; private set; }
+ public (List, Consultant) DataToLoad { get; set; }
+ public List? SavedCustomersList { get; private set; }
+ public Consultant? SavedConsultant { get; private set; }
+
+ public void DataSave(List customersList, Consultant consultant)
+ {
+ DataSaveCalled = true;
+ SavedCustomersList = customersList;
+ SavedConsultant = consultant;
+ }
+
+ public (List, Consultant) DataLoad()
+ {
+ DataLoadCalled = true;
+ return DataToLoad;
+ }
+ }
+ }
+}
diff --git a/src/Banquale/UnitTest/PersonTest.cs b/src/Banquale/UnitTest/PersonTest.cs
index 86f7ee0..1b6b155 100644
--- a/src/Banquale/UnitTest/PersonTest.cs
+++ b/src/Banquale/UnitTest/PersonTest.cs
@@ -1,11 +1,62 @@
-using System;
+/// \file
+/// \brief Définition de la classe Person.
+/// \author Votre nom
+
+using System;
+using Model;
+
namespace UnitTest
{
- public class PersonTest
- {
- public PersonTest()
- {
- }
- }
-}
+ /// \file
+ /// \brief Fichier de tests pour la classe Person.
+ /// \author Votre nom
+
+ ///
+ /// Classe de tests pour la classe Person.
+ ///
+ public class PersonTest
+ {
+ ///
+ /// Teste si les propriétés de l'objet Person sont correctement définies lorsque les arguments du constructeur sont valides.
+ ///
+ [Fact]
+ public void Constructor_ValidArguments_PropertiesSet()
+ {
+ // Arrange
+ string name = "Doe";
+ string firstName = "John";
+ string password = "123456";
+
+ // Act
+ Person person = new Person(name, firstName, password);
+ // Assert
+ Assert.Equal(name, person.Name);
+ Assert.Equal(firstName, person.FirstName);
+ Assert.Equal(password, person.Password);
+ }
+
+ ///
+ /// Teste si l'identifiant de chaque instance de Person est correctement incrémenté.
+ ///
+ [Fact]
+ public void Constructor_IncrementId()
+ {
+ // Arrange
+ string name1 = "Doe";
+ string firstName1 = "John";
+ string password1 = "123456";
+ string name2 = "Smith";
+ string firstName2 = "Jane";
+ string password2 = "abcdef";
+
+ // Act
+ Person person1 = new Person(name1, firstName1, password1);
+ Person person2 = new Person(name2, firstName2, password2);
+
+ // Assert
+ Assert.Equal(Convert.ToUInt32(0), person1.Id);
+ Assert.Equal(Convert.ToUInt32(1), person2.Id);
+ }
+ }
+}
diff --git a/src/Banquale/UnitTest/TransactionTest.cs b/src/Banquale/UnitTest/TransactionTest.cs
index d85e7be..f490fe2 100644
--- a/src/Banquale/UnitTest/TransactionTest.cs
+++ b/src/Banquale/UnitTest/TransactionTest.cs
@@ -28,9 +28,9 @@ namespace UnitTest
Console.WriteLine("Transaction:");
Console.WriteLine($"Type: {(transaction.Type ? "Débit" : "Crédit")}");
Console.WriteLine($"Somme: {transaction.Sum}");
- Console.WriteLine($"Compte impliqué: {transaction.InvolvedAccounts.Name}");
- Console.WriteLine($"Catégorie: {transaction.Category}");
- Console.WriteLine($"Date: {transaction.Date}");
+ Console.WriteLine($"Compte impliqué: {transaction?.InvolvedAccounts?.Name}");
+ Console.WriteLine($"Catégorie: {transaction?.Category}");
+ Console.WriteLine($"Date: {transaction?.Date}");
Console.ReadLine();
}