add some test xUnit

pull/53/head
Antoine PEREDERII 2 years ago
parent 0ddd1c1c56
commit 5b61c06dc4

@ -1,11 +1,34 @@
using System; using System;
using Model;
namespace UnitTest namespace UnitTest
{ {
public class ConsultantTest /// \file
/// \brief Fichier de tests pour la classe Consultant.
/// \author Votre nom
/// <summary>
/// Classe de tests pour la classe Consultant.
/// </summary>
public class ConsultantTests
{ {
public ConsultantTest() /// <summary>
/// Teste si la liste des messages du consultant est initialisée correctement.
/// </summary>
[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);
} }
} }
} }

@ -1,11 +1,78 @@
using System; using System;
using Model;
namespace UnitTest namespace UnitTest
{ {
public class CustomerTest /// \file
/// \brief Fichier de tests pour la classe Customer.
/// \author Votre nom
/// <summary>
/// Classe de tests pour la classe Customer.
/// </summary>
public class CustomerTests
{ {
public CustomerTest() /// <summary>
/// Teste si la liste des comptes du client est initialisée correctement.
/// </summary>
[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);
} }
/// <summary>
/// Teste l'égalité entre deux clients.
/// </summary>
[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));
} }
}
/// <summary>
/// Teste l'égalité entre deux clients avec des identifiants différents.
/// </summary>
[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));
}
}
}

@ -0,0 +1,81 @@
using System;
using Model;
namespace UnitTest
{
/// \file
/// \brief Fichier de tests pour l'interface IPersistenceManager.
/// \author Votre nom
/// <summary>
/// Classe de tests pour l'interface IPersistenceManager.
/// </summary>
public class PersistenceManagerTests
{
/// <summary>
/// Teste la sauvegarde des données.
/// </summary>
[Fact]
public void DataSave_ValidData_CallsDataSave()
{
// Arrange
MockPersistenceManager persistenceManager = new MockPersistenceManager();
List<Customer> customersList = new List<Customer> { 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);
}
/// <summary>
/// Teste le chargement des données.
/// </summary>
[Fact]
public void DataLoad_CallsDataLoad_ReturnsData()
{
// Arrange
MockPersistenceManager persistenceManager = new MockPersistenceManager();
List<Customer> customersList = new List<Customer> { 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);
}
/// <summary>
/// Classe de mock pour le gestionnaire de persistance.
/// </summary>
private class MockPersistenceManager : IPersistenceManager
{
public bool DataSaveCalled { get; private set; }
public bool DataLoadCalled { get; private set; }
public (List<Customer>, Consultant) DataToLoad { get; set; }
public List<Customer>? SavedCustomersList { get; private set; }
public Consultant? SavedConsultant { get; private set; }
public void DataSave(List<Customer> customersList, Consultant consultant)
{
DataSaveCalled = true;
SavedCustomersList = customersList;
SavedConsultant = consultant;
}
public (List<Customer>, Consultant) DataLoad()
{
DataLoadCalled = true;
return DataToLoad;
}
}
}
}

@ -1,11 +1,137 @@
using System; using System;
using Model;
namespace UnitTest namespace UnitTest
{ {
public class ManagerTest /// \file
/// \brief Fichier de tests pour la classe Manager.
/// \author Votre nom
/// <summary>
/// Classe de tests pour la classe Manager.
/// </summary>
public class ManagerTests
{
/// <summary>
/// Teste si la liste des clients est initialisée correctement.
/// </summary>
[Fact]
public void Constructor_CustomersListInitialized()
{
// Arrange
Manager manager = new Manager();
// Act
// Assert
Assert.NotNull(manager.CustomersList);
Assert.Empty(manager.CustomersList);
}
/// <summary>
/// Teste l'ajout d'un client à la liste des clients.
/// </summary>
[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);
}
/// <summary>
/// Teste la récupération d'un client à partir de la liste des clients.
/// </summary>
[Fact]
public void GetCustomer_ValidPosition_ReturnsCustomer()
{ {
public ManagerTest() // 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);
}
/// <summary>
/// Teste la sauvegarde des données.
/// </summary>
[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);
} }
/// <summary>
/// Teste le chargement des données.
/// </summary>
[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> { customer }, consultant);
// Act
manager.DataLoad();
// Assert
Assert.True(persistenceManager.DataLoadCalled);
Assert.Contains(customer, manager.CustomersList);
Assert.Equal(consultant, manager.Consultant);
} }
/// <summary>
/// Classe de mock pour le gestionnaire de persistance.
/// </summary>
private class MockPersistenceManager : IPersistenceManager
{
public bool DataSaveCalled { get; private set; }
public bool DataLoadCalled { get; private set; }
public (List<Customer>, Consultant) DataToLoad { get; set; }
public List<Customer>? SavedCustomersList { get; private set; }
public Consultant? SavedConsultant { get; private set; }
public void DataSave(List<Customer> customersList, Consultant consultant)
{
DataSaveCalled = true;
SavedCustomersList = customersList;
SavedConsultant = consultant;
} }
public (List<Customer>, Consultant) DataLoad()
{
DataLoadCalled = true;
return DataToLoad;
}
}
}
}

@ -1,11 +1,62 @@
using System; /// \file
/// \brief Définition de la classe Person.
/// \author Votre nom
using System;
using Model;
namespace UnitTest namespace UnitTest
{ {
/// \file
/// \brief Fichier de tests pour la classe Person.
/// \author Votre nom
/// <summary>
/// Classe de tests pour la classe Person.
/// </summary>
public class PersonTest public class PersonTest
{ {
public PersonTest() /// <summary>
/// Teste si les propriétés de l'objet Person sont correctement définies lorsque les arguments du constructeur sont valides.
/// </summary>
[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);
}
/// <summary>
/// Teste si l'identifiant de chaque instance de Person est correctement incrémenté.
/// </summary>
[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);
} }
} }
} }

@ -28,9 +28,9 @@ namespace UnitTest
Console.WriteLine("Transaction:"); Console.WriteLine("Transaction:");
Console.WriteLine($"Type: {(transaction.Type ? "Débit" : "Crédit")}"); Console.WriteLine($"Type: {(transaction.Type ? "Débit" : "Crédit")}");
Console.WriteLine($"Somme: {transaction.Sum}"); Console.WriteLine($"Somme: {transaction.Sum}");
Console.WriteLine($"Compte impliqué: {transaction.InvolvedAccounts.Name}"); Console.WriteLine($"Compte impliqué: {transaction?.InvolvedAccounts?.Name}");
Console.WriteLine($"Catégorie: {transaction.Category}"); Console.WriteLine($"Catégorie: {transaction?.Category}");
Console.WriteLine($"Date: {transaction.Date}"); Console.WriteLine($"Date: {transaction?.Date}");
Console.ReadLine(); Console.ReadLine();
} }

Loading…
Cancel
Save