diff --git a/src/Banquale/UnitTest/AccountTest.cs b/src/Banquale/UnitTest/AccountTest.cs index 15decde..abaed00 100644 --- a/src/Banquale/UnitTest/AccountTest.cs +++ b/src/Banquale/UnitTest/AccountTest.cs @@ -1,70 +1,68 @@ -///// \file -///// \brief Fichier de test pour la classe Account. -///// \author Votre nom +/// \file +/// \brief Définition des tests pour la classe Consultant. +/// \author PEREDERII Antoine, LOUVET Titouan -//using Model; -//using System; -//using System.ComponentModel; -//using System.Diagnostics; -//using System.Runtime.Serialization; +using Xunit; +using System; +using Model; -//namespace UnitTest -//{ -// /// -// /// Classe de test pour la classe Account. -// /// -// public class AccountTest -// { -// /// -// /// Méthode principale du test. -// /// -// [Fact] -// public void TestAnAccount() -// { -// // Création de deux comptes -// Account account1 = new Account(1000, "John Doe", "FR123456789"); -// Account account2 = new Account(500, "Jane Smith", "FR987654321"); +namespace UnitTest +{ + public class AccountTests + { + [Fact] + public void Account_Initialization_Test() + { + // Initialisation + double initialBalance = 1000.0; + string accountName = "Gérard"; + string accountIBAN = "FR7612345678901234567895003"; -// // Affichage des informations des comptes -// Console.WriteLine("Compte 1:"); -// Console.WriteLine($"Nom: {account1.Name}"); -// Console.WriteLine($"IBAN: {account1.IBANHide}"); -// Console.WriteLine($"Solde: {account1.Balance}"); + // Account + Account account = new Account(initialBalance, accountName, accountIBAN); -// Console.WriteLine("\nCompte 2:"); -// Console.WriteLine($"Nom: {account2.Name}"); -// Console.WriteLine($"IBAN: {account2.IBANHide}"); -// Console.WriteLine($"Solde: {account2.Balance}"); + // Assert + Assert.Equal(initialBalance, account.Balance); + Assert.Equal(accountName, account.Name); + Assert.Equal(accountIBAN, account.IBAN); + } -// // Effectuer une transaction entre les comptes -// double amount = 200; -// Console.WriteLine($"\nEffectuer une transaction de {amount} du compte 1 vers le compte 2..."); -// account1.DoTransactions(account2, amount, true); + [Theory] + [InlineData(1000.0, 500.0, true, 500.0)] // Debit transaction + [InlineData(1000.0, 500.0, false, 1500.0)] // Credit transaction + public void Account_DoTransactions_Test(double initialBalance, double transactionAmount, bool isDebit, double expectedBalance) + { + // Initialisation + Account account = new Account(initialBalance, "Gérard", "FR7612345678901234567895003"); + Account otherAccount = new Account(0.0, "Gérarde", "FR76987654321098765432109876004"); -// // Affichage des informations des comptes après la transaction -// Console.WriteLine("\nAprès la transaction:"); -// Console.WriteLine("Compte 1:"); -// Console.WriteLine($"Nom: {account1.Name}"); -// Console.WriteLine($"IBAN: {account1.IBANHide}"); -// Console.WriteLine($"Solde: {account1.Balance}"); + // Account + account.DoTransactions(otherAccount, transactionAmount, isDebit); -// Console.WriteLine("\nCompte 2:"); -// Console.WriteLine($"Nom: {account2.Name}"); -// Console.WriteLine($"IBAN: {account2.IBANHide}"); -// Console.WriteLine($"Solde: {account2.Balance}"); + // Assert + Assert.Equal(expectedBalance, account.Balance); + } -// // Demander de l'aide -// string helpSubject = "Besoin d'aide"; -// string helpDescription = "Je rencontre un problème avec mon compte."; -// Message helpMessage = Account.AskForHelp(helpSubject, helpDescription); -// Console.WriteLine($"\nDemande d'aide envoyée : {helpMessage}"); + public static TheoryData TestData => + new TheoryData + { + { 1000.0, 500.0, true, 500.0 }, // Debit transaction + { 1000.0, 500.0, false, 1500.0 }, // Credit transaction + }; -// // Comparaison de deux comptes -// Console.WriteLine("\nComparaison des comptes..."); -// bool areEqual = account1.Equals(account2); -// Console.WriteLine($"Les comptes sont-ils égaux ? {areEqual}"); + [Theory] + [MemberData(nameof(TestData))] + public void Account_DoTransactions_MemberData_Test(double initialBalance, double transactionAmount, bool isDebit, double expectedBalance) + { + // Initialisation + Account account = new Account(initialBalance, "Gérard", "FR7612345678901234567895003"); + Account otherAccount = new Account(0.0, "Gérarde", "FR76987654321098765432109876004"); -// //Console.ReadLine(); -// } -// } -//} + // Account + account.DoTransactions(otherAccount, transactionAmount, isDebit); + + // Assert + Assert.Equal(expectedBalance, account.Balance); + } + } +} \ No newline at end of file diff --git a/src/Banquale/UnitTest/ConsultantTest.cs b/src/Banquale/UnitTest/ConsultantTest.cs index 7db8fcc..9ad0208 100644 --- a/src/Banquale/UnitTest/ConsultantTest.cs +++ b/src/Banquale/UnitTest/ConsultantTest.cs @@ -1,34 +1,80 @@ -//using System; -//using Model; - -//namespace UnitTest -//{ -// /// \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); -// } -// } -//} +/// \file +/// \brief Définition des tests pour la classe Consultant. +/// \author PEREDERII Antoine, LOUVET Titouan + +using Xunit; +using System; +using Model; + +namespace UnitTest +{ + /// + /// 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() + { + // Initialisation + string name = "Cons"; + string firstName = "Gérard"; + string password = "123456"; + + // Act + Consultant consultant = new Consultant(name, firstName, password); + + // Assert + Assert.NotNull(consultant.MessagesList); + Assert.Empty(consultant.MessagesList); + } + + /// + /// Teste si la liste des messages du consultant est initialisée correctement en utilisant InlineData. + /// + /// Nom du consultant. + /// Prénom du consultant. + /// Mot de passe du consultant. + [Theory] + [InlineData("Cons", "Gérard", "123456")] + public void Constructor_MessagesListInitialized_InlineData(string name, string firstName, string password) + { + // Act + Consultant consultant = new Consultant(name, firstName, password); + + // Assert + Assert.NotNull(consultant.MessagesList); + Assert.Empty(consultant.MessagesList); + } + + /// + /// Fournit les données pour le test de l'initialisation de la liste des messages du consultant. + /// + public static TheoryData TestData => + new TheoryData + { + { "Cons", "Gérard", "123456" }, + }; + + /// + /// Teste si la liste des messages du consultant est initialisée correctement en utilisant MemberData. + /// + /// Nom du consultant. + /// Prénom du consultant. + /// Mot de passe du consultant. + [Theory] + [MemberData(nameof(TestData))] + public void Constructor_MessagesListInitialized_MemberData(string name, string firstName, string password) + { + // Act + Consultant consultant = new Consultant(name, firstName, password); + + // Assert + Assert.NotNull(consultant.MessagesList); + Assert.Empty(consultant.MessagesList); + } + } +} \ No newline at end of file diff --git a/src/Banquale/UnitTest/CustomerTest.cs b/src/Banquale/UnitTest/CustomerTest.cs index 18f3b53..5fcb3d4 100644 --- a/src/Banquale/UnitTest/CustomerTest.cs +++ b/src/Banquale/UnitTest/CustomerTest.cs @@ -1,78 +1,80 @@ -//using System; -//using Model; +/// \file +/// \brief Définition des tests pour la classe Customer. +/// \author PEREDERII Antoine, LOUVET Titouan -//namespace UnitTest -//{ -// /// \file -// /// \brief Fichier de tests pour la classe Customer. -// /// \author Votre nom +using Xunit; +using System; +using Model; -// /// -// /// 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"; +namespace UnitTest +{ + /// + /// 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() + { + // Initialisation + string name = "Cust"; + string firstName = "Gérard"; + string password = "123456"; -// // Act -// Customer customer = new Customer(name, firstName, password); + // Act + Customer customer = new Customer(name, firstName, password); -// // Assert -// Assert.NotNull(customer.AccountsList); -// Assert.Empty(customer.AccountsList); -// } + // 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"; + /// + /// Teste si la liste des comptes du client est initialisée correctement en utilisant InlineData. + /// + /// Nom du client. + /// Prénom du client. + /// Mot de passe du client. + [Theory] + [InlineData("Cust", "Gérard", "123456")] + public void Constructor_AccountsListInitialized_InlineData(string name, string firstName, string password) + { + // Act + Customer customer = new Customer(name, firstName, password); -// // Act -// Customer customer1 = new Customer(name1, firstName1, password1); -// Customer customer2 = new Customer(name2, firstName2, password2); + // Assert + Assert.NotNull(customer.AccountsList); + Assert.Empty(customer.AccountsList); + } -// // Assert -// Assert.True(customer1.Equals(customer2)); -// } + /// + /// Fournit les données pour le test de l'initialisation de la liste des comptes du client. + /// + public static TheoryData TestData => + new TheoryData + { + { "Cust", "Gérard", "123456" }, + }; -// /// -// /// 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"; + /// + /// Teste si la liste des comptes du client est initialisée correctement en utilisant MemberData. + /// + /// Nom du client. + /// Prénom du client. + /// Mot de passe du client. + [Theory] + [MemberData(nameof(TestData))] + public void Constructor_AccountsListInitialized_MemberData(string name, string firstName, string password) + { + // Act + Customer customer = new Customer(name, firstName, password); -// // Act -// Customer customer1 = new Customer(name1, firstName1, password1); -// Customer customer2 = new Customer(name2, firstName2, password2); - -// // Assert -// Assert.False(customer1.Equals(customer2)); -// } -// } -//} + // Assert + Assert.NotNull(customer.AccountsList); + Assert.Empty(customer.AccountsList); + } + } +} diff --git a/src/Banquale/UnitTest/ManagerTest.cs b/src/Banquale/UnitTest/ManagerTest.cs index bbd4ee4..3e70004 100644 --- a/src/Banquale/UnitTest/ManagerTest.cs +++ b/src/Banquale/UnitTest/ManagerTest.cs @@ -1,11 +1,15 @@ -using Model; +/// \file +/// \brief Définition des tests pour la classe Consultant. +/// \author PEREDERII Antoine, LOUVET Titouan + +using Model; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using UnitTest; using Xunit; -namespace Model.Tests +namespace UnitTest { /// /// Classe de tests pour la classe Manager. diff --git a/src/Banquale/UnitTest/MessageTest.cs b/src/Banquale/UnitTest/MessageTest.cs index 525ade8..9879c8f 100644 --- a/src/Banquale/UnitTest/MessageTest.cs +++ b/src/Banquale/UnitTest/MessageTest.cs @@ -1,6 +1,6 @@ /// \file -/// \brief Fichier de test pour la classe Transaction. -/// \author PEREDERII Antoine +/// \brief Définition des tests pour la classe Consultant. +/// \author PEREDERII Antoine, LOUVET Titouan using System.Collections.Generic; using Xunit; diff --git a/src/Banquale/UnitTest/PersonTest.cs b/src/Banquale/UnitTest/PersonTest.cs index 56937c6..7e1bfc6 100644 --- a/src/Banquale/UnitTest/PersonTest.cs +++ b/src/Banquale/UnitTest/PersonTest.cs @@ -1,6 +1,6 @@ /// \file -/// \brief Fichier de test pour la classe Transaction. -/// \author PEREDERII Antoine +/// \brief Définition des tests pour la classe Consultant. +/// \author PEREDERII Antoine, LOUVET Titouan using Model; using Xunit; diff --git a/src/Banquale/UnitTest/TransactionTest.cs b/src/Banquale/UnitTest/TransactionTest.cs index 709587f..f3ca26a 100644 --- a/src/Banquale/UnitTest/TransactionTest.cs +++ b/src/Banquale/UnitTest/TransactionTest.cs @@ -1,6 +1,6 @@ /// \file -/// \brief Fichier de test pour la classe Transaction. -/// \author PEREDERII Antoine +/// \brief Définition des tests pour la classe Consultant. +/// \author PEREDERII Antoine, LOUVET Titouan using System; using System.Collections.Generic;