Added test and doxygen
continuous-integration/drone/push Build is failing Details

master
Titouan LOUVET 2 years ago
parent 6710bfe2cd
commit 154b22a114

@ -58,14 +58,7 @@ namespace Banquale.Views
/// </summary>
async void Categ_Clicked(System.Object sender, System.EventArgs e)
{
<<<<<<< HEAD
await Shell.Current.Navigation.PushAsync(new CategoryPage());
=======
Mgr.SelectedAccount.Balance += Mgr.SelectedTransaction.Sum;
Mgr.SelectedAccount.TransactionsList.Remove(Mgr.SelectedTransaction);
await DisplayAlert("Opposition", "La demande d'opposition à été réalisé avec succés", "OK");
await Shell.Current.Navigation.PopAsync();
>>>>>>> 093cffc19bc037cd518567f105548bd33f8fe902
}
/// <summary>

@ -1,28 +1,65 @@
/// \file
/// \brief Définition de l'interface IPersistenceManager.
/// \author PEREDERII Antoine, LOUVET Titouan
using Xunit;
using Moq;
using System;
using System.Collections.Generic;
using Model;
namespace Model
namespace UnitTest
{
public class PersistenceManagerTests
{
/// <summary>
/// Interface pour la gestion de la persistance des données.
/// </summary>
public interface IPersistenceManager
[Fact]
public void DataLoad_ValidData_ReturnsTuple()
{
/// <summary>
/// Charge les données depuis une source de persistance.
/// </summary>
/// <returns>Un tuple contenant le hashSet des clients et le consultant.</returns>
public (HashSet<Customer>, Consultant) DataLoad();
/// <summary>
/// Enregistre les données dans une source de persistance.
/// </summary>
/// <param name="cu">La liste des clients à enregistrer.</param>
/// <param name="co">Le consultant à enregistrer.</param>
void DataSave(HashSet<Customer> cu, Consultant co);
// Arrange
Mock<IPersistenceManager> persistenceManagerMock = new Mock<IPersistenceManager>();
HashSet<Customer> customers = new HashSet<Customer>();
Consultant consultant = new Consultant("Cons", "Gérard", "123456");
persistenceManagerMock.Setup(x => x.DataLoad()).Returns((customers, consultant));
// Act
(HashSet<Customer>, Consultant) result = persistenceManagerMock.Object.DataLoad();
// Assert
Assert.NotNull(result);
Assert.Equal(customers, result.Item1);
Assert.Equal(consultant, result.Item2);
}
[Theory]
[InlineData(typeof(HashSet<Customer>), typeof(Consultant))]
public void DataSave_ValidData_CallsDataSave(Type customerType, Type consultantType)
{
// Arrange
Mock<IPersistenceManager> persistenceManagerMock = new Mock<IPersistenceManager>();
HashSet<Customer> customers = new HashSet<Customer>();
Consultant consultant = new Consultant("Cons", "Gérard", "123456");
// Act
persistenceManagerMock.Object.DataSave(customers, consultant);
// Assert
persistenceManagerMock.Verify(x => x.DataSave(It.IsAny<HashSet<Customer>>(), It.IsAny<Consultant>()), Times.Once);
}
public static TheoryData<HashSet<Customer>, Consultant> TestData =>
new TheoryData<HashSet<Customer>, Consultant>
{
{ new HashSet<Customer>(), new Consultant("Cons", "Gérard", "123456") },
};
[Theory]
[MemberData(nameof(TestData))]
public void DataSave_ValidData_MemberData(HashSet<Customer> customers, Consultant consultant)
{
// Arrange
Mock<IPersistenceManager> persistenceManagerMock = new Mock<IPersistenceManager>();
// Act
persistenceManagerMock.Object.DataSave(customers, consultant);
// Assert
persistenceManagerMock.Verify(x => x.DataSave(customers, consultant), Times.Once);
}
}
}

@ -1,70 +1,63 @@
/// \file
/// \brief Fichier de test pour la classe Account.
/// \author Votre nom
using Model;
using Xunit;
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.Serialization;
namespace UnitTest
namespace Model.Tests
{
/// <summary>
/// Classe de test pour la classe Account.
/// </summary>
public class AccountTest
public class AccountTests
{
/// <summary>
/// Méthode principale du test.
/// </summary>
[Fact]
public void TestAnAccount()
public void Account_Initialization_Test()
{
// Création de deux comptes
Account account1 = new Account(1000, "John Doe", "FR123456789");
Account account2 = new Account(500, "Jane Smith", "FR987654321");
// Affichage des informations des comptes
Console.WriteLine("Compte 1:");
Console.WriteLine($"Nom: {account1.Name}");
Console.WriteLine($"IBAN: {account1.IBANHide}");
Console.WriteLine($"Solde: {account1.Balance}");
// Initialisation
double initialBalance = 1000.0;
string accountName = "Gérard";
string accountIBAN = "FR7612345678901234567895003";
// Account
Account account = new Account(initialBalance, accountName, accountIBAN);
// Assert
Assert.Equal(initialBalance, account.Balance);
Assert.Equal(accountName, account.Name);
Assert.Equal(accountIBAN, account.IBAN);
}
Console.WriteLine("\nCompte 2:");
Console.WriteLine($"Nom: {account2.Name}");
Console.WriteLine($"IBAN: {account2.IBANHide}");
Console.WriteLine($"Solde: {account2.Balance}");
[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");
// 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);
// Account
account.DoTransactions(otherAccount, transactionAmount, isDebit);
// 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}");
// Assert
Assert.Equal(expectedBalance, account.Balance);
}
Console.WriteLine("\nCompte 2:");
Console.WriteLine($"Nom: {account2.Name}");
Console.WriteLine($"IBAN: {account2.IBANHide}");
Console.WriteLine($"Solde: {account2.Balance}");
public static TheoryData<double, double, bool, double> TestData =>
new TheoryData<double, double, bool, double>
{
{ 1000.0, 500.0, true, 500.0 }, // Debit transaction
{ 1000.0, 500.0, false, 1500.0 }, // Credit transaction
};
// 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}");
[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");
// Comparaison de deux comptes
Console.WriteLine("\nComparaison des comptes...");
bool areEqual = account1.Equals(account2);
Console.WriteLine($"Les comptes sont-ils égaux ? {areEqual}");
// Account
account.DoTransactions(otherAccount, transactionAmount, isDebit);
//Console.ReadLine();
// Assert
Assert.Equal(expectedBalance, account.Balance);
}
}
}

@ -1,12 +1,13 @@
using System;
/// \file
/// \brief Définition des tests pour la classe Consultant.
/// \author PEREDERII Antoine, LOUVET Titouan
using Xunit;
using System;
using Model;
namespace UnitTest
{
/// \file
/// \brief Fichier de tests pour la classe Consultant.
/// \author Votre nom
/// <summary>
/// Classe de tests pour la classe Consultant.
/// </summary>
@ -18,9 +19,9 @@ namespace UnitTest
[Fact]
public void Constructor_MessagesListInitialized()
{
// Arrange
string name = "Doe";
string firstName = "John";
// Initialisation
string name = "Cons";
string firstName = "Gérard";
string password = "123456";
// Act
@ -30,5 +31,50 @@ namespace UnitTest
Assert.NotNull(consultant.MessagesList);
Assert.Empty(consultant.MessagesList);
}
/// <summary>
/// Teste si la liste des messages du consultant est initialisée correctement en utilisant InlineData.
/// </summary>
/// <param name="name">Nom du consultant.</param>
/// <param name="firstName">Prénom du consultant.</param>
/// <param name="password">Mot de passe du consultant.</param>
[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);
}
/// <summary>
/// Fournit les données pour le test de l'initialisation de la liste des messages du consultant.
/// </summary>
public static TheoryData<string, string, string> TestData =>
new TheoryData<string, string, string>
{
{ "Cons", "Gérard", "123456" },
};
/// <summary>
/// Teste si la liste des messages du consultant est initialisée correctement en utilisant MemberData.
/// </summary>
/// <param name="name">Nom du consultant.</param>
/// <param name="firstName">Prénom du consultant.</param>
/// <param name="password">Mot de passe du consultant.</param>
[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);
}
}
}

@ -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;
// /// <summary>
// /// Classe de tests pour la classe Customer.
// /// </summary>
// public class CustomerTests
// {
// /// <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";
namespace UnitTest
{
/// <summary>
/// Classe de tests pour la classe Customer.
/// </summary>
public class CustomerTests
{
/// <summary>
/// Teste si la liste des comptes du client est initialisée correctement.
/// </summary>
[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);
}
// /// <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";
/// <summary>
/// Teste si la liste des comptes du client est initialisée correctement en utilisant InlineData.
/// </summary>
/// <param name="name">Nom du client.</param>
/// <param name="firstName">Prénom du client.</param>
/// <param name="password">Mot de passe du client.</param>
[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));
// }
/// <summary>
/// Fournit les données pour le test de l'initialisation de la liste des comptes du client.
/// </summary>
public static TheoryData<string, string, string> TestData =>
new TheoryData<string, string, string>
{
{ "Cust", "Gérard", "123456" },
};
// /// <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";
/// <summary>
/// Teste si la liste des comptes du client est initialisée correctement en utilisant MemberData.
/// </summary>
/// <param name="name">Nom du client.</param>
/// <param name="firstName">Prénom du client.</param>
/// <param name="password">Mot de passe du client.</param>
[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);
}
}
}

Loading…
Cancel
Save