Implementation of Unit of Work + Tests UserENtity + fix problem API userArticle
continuous-integration/drone/push Build is passing Details

pagination
Tony Fages 1 year ago
parent 739f157fbc
commit 43c30f5277

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
<mapping directory="$PROJECT_DIR$" vcs="" />
</component>
</project>

@ -1,122 +0,0 @@
using API_Mapping;
using API_Services;
using Entities;
using Microsoft.AspNetCore.Mvc;
namespace API.Controllers;
[Route("api/[controller]")]
[ApiController]
public class ArticleUserController : ControllerBase
{
private readonly IArticleUserService _us;
private readonly ILogger<ArticleUserController> _logger;
public ArticleUserController(IArticleUserService us, ILogger<ArticleUserController> logger)
{
this._us = us;
this._logger = logger;
}
[HttpGet("/articleUsers")]
public async Task<IActionResult> GetAllArticleUsers()
{
_logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(GetAllArticleUsers), "");
try
{
var result = (await _us.GetAllArticleUsers()).Select(u => u.ToDTO());
if (result == null)
{
return NoContent();
}
return Ok(result);
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
[HttpGet("/user/{pseudo}/article")]
public async Task<IActionResult> GetArticleUser(string pseudo)
{
_logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(GetArticleUser), pseudo);
try
{
var result = await _us.GetArticleUser(pseudo);
if (result == null)
{
return NoContent();
}
return Ok(result);
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
[HttpPost("/user/{pseudo}/article")]
public async Task<IActionResult> CreateArticleUser(ArticleUserEntity articleUser)
{
_logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(CreateArticleUser), articleUser);
try
{
var result = await _us.CreateArticleUser(articleUser);
if (result == null)
{
return BadRequest($"ArticleUser {articleUser.UserEntityPseudo} already exists");
}
return Ok(result);
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
[HttpDelete("/user/{pseudo}/article")]
public async Task<IActionResult> DeleteArticleUser(string pseudo)
{
_logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(DeleteArticleUser), pseudo);
try
{
var result = await _us.DeleteArticleUser(pseudo);
if (!result)
{
return BadRequest($"ArticleUser {pseudo} does not exist");
}
return Ok(result);
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
[HttpPut("/user/{pseudo}/article")]
public async Task<IActionResult> UpdateArticleUser(ArticleUserEntity articleUser)
{
_logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(UpdateArticleUser), articleUser);
try
{
var result = await _us.UpdateArticleUser(articleUser);
if (!result)
{
return BadRequest($"ArticleUser {articleUser.UserEntityPseudo} does not exist");
}
return Ok(result);
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
}

@ -124,7 +124,106 @@ namespace API.Controllers
}
}
[HttpGet("/articleUsers")]
public async Task<IActionResult> GetAllArticleUsers()
{
_logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(GetAllArticleUsers), "");
try
{
var result = (await _us.GetAllArticleUsers()).Select(u => u.ToDTO());
if (result == null)
{
return NoContent();
}
return Ok(result);
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
[HttpGet("/user/{pseudo}/article")]
public async Task<IActionResult> GetArticleUser(string pseudo)
{
_logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(GetArticleUser), pseudo);
try
{
var result = (await _us.GetArticleUser(pseudo)).Select(a => a.ToDTO());
if (result == null)
{
return NoContent();
}
return Ok(result);
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
[HttpPost("/user/article")]
public async Task<IActionResult> CreateArticleUser(ArticleUserEntity articleUser)
{
_logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(CreateArticleUser), articleUser);
try
{
Console.WriteLine(articleUser);
var result = await _us.CreateArticleUser(articleUser);
if (result == null)
{
return BadRequest($"ArticleUser {articleUser.UserEntityPseudo} already exists");
}
return Ok(result);
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
[HttpDelete("/user/{pseudo}/article")]
public async Task<IActionResult> DeleteArticleUser(string pseudo)
{
_logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(DeleteArticleUser), pseudo);
try
{
var result = await _us.DeleteArticleUser(pseudo);
if (!result)
{
return BadRequest($"ArticleUser {pseudo} does not exist");
}
return Ok(result);
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
[HttpPut("/user/{pseudo}/article")]
public async Task<IActionResult> UpdateArticleUser(ArticleUserEntity articleUser)
{
_logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(UpdateArticleUser), articleUser);
try
{
var result = await _us.UpdateArticleUser(articleUser);
if (!result)
{
return BadRequest($"ArticleUser {articleUser.UserEntityPseudo} does not exist");
}
return Ok(result);
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
}

@ -23,7 +23,6 @@ builder.Services.AddDbContext<LibraryContext>(options =>
builder.Services.AddScoped<IArticleService, DbManagerArticle>();
builder.Services.AddScoped<IUserService, DbManagerUser>();
builder.Services.AddScoped<IFormulaireService, DbManagerFormulaire>();
builder.Services.AddScoped<IArticleUserService, DbManagerArticleUser>();
var app = builder.Build();

@ -1,12 +1,30 @@
using API_Services;
using DbContextLib;
using Model;
namespace DbDataManager;
public class DbManager
public class DbManager : IDataManager
{
protected LibraryContext _context;
protected LibraryContext _context { get; set; }
public DbManager()
{
_context = new LibraryContext();
ArticleService = new DbManagerArticle(_context);
UserService = new DbManagerUser(_context);
FormulaireService = new DbManagerFormulaire(_context);
}
public DbManager(LibraryContext context)
{
_context = context;
ArticleService = new DbManagerArticle(_context);
UserService = new DbManagerUser(_context);
FormulaireService = new DbManagerFormulaire(_context);
}
public IArticleService ArticleService { get; set; }
public IUserService UserService { get; set; }
public IFormulaireService FormulaireService { get; set; }
}

@ -11,9 +11,7 @@ public class DbManagerArticle : IArticleService
private readonly LibraryContext _context;
public DbManagerArticle(LibraryContext context)
{
_context = context;
}
=> this._context = context;
public async Task<IEnumerable<Article?>> GetAllArticles(int index, int count, ArticleOrderCriteria orderCriterium)
{
List<Article> articles = new List<Article>();
@ -94,4 +92,5 @@ public class DbManagerArticle : IArticleService
}
}

@ -1,74 +0,0 @@
using API_Services;
using DbContextLib;
using Entities;
using Microsoft.Extensions.Logging;
using Model;
namespace DbDataManager;
public class DbManagerArticleUser : IArticleUserService
{
private readonly LibraryContext _context;
public DbManagerArticleUser(LibraryContext context)
{
_context = context;
}
public async Task<IEnumerable<User?>> GetAllArticleUsers()
{
var entities = _context.ArticleUserSet.ToList();
List<UserEntity> users = new List<UserEntity>();
foreach( var articleUser in entities)
{
var user = _context.UserSet.FirstOrDefault(u => u.Pseudo.Equals(articleUser.UserEntityPseudo));
if (user != null) users.Add(user);
}
if (users == null) return await Task.FromResult<IEnumerable<User?>>(null);
return await Task.FromResult(users.Select(u => u.ToModel()).AsEnumerable());
}
public async Task<ArticleUserEntity?> GetArticleUser(string pseudo)
{
var entity = _context.ArticleUserSet.FirstOrDefault(a => a.UserEntityPseudo.Equals(pseudo));
if (entity == null) return await Task.FromResult<ArticleUserEntity?>(null);
return await Task.FromResult(entity);
}
public async Task<ArticleUserEntity?> CreateArticleUser(ArticleUserEntity articleUser)
{
var result = await GetArticleUser(articleUser.UserEntityPseudo);
if (result != null) return await Task.FromResult<ArticleUserEntity?>(null);
var entity = new ArticleUserEntity()
{
ArticleEntityId = articleUser.ArticleEntityId,
UserEntityPseudo = articleUser.UserEntityPseudo
};
if (entity == null) return await Task.FromResult<ArticleUserEntity?>(null);
_context.ArticleUserSet.Add(entity);
await _context.SaveChangesAsync();
return await Task.FromResult(entity);
}
public async Task<bool> DeleteArticleUser(string pseudo)
{
var entity = _context.ArticleUserSet.FirstOrDefault(a => a.UserEntityPseudo.Equals(pseudo));
if (entity == null) return await Task.FromResult(false);
_context.ArticleUserSet.Remove(entity);
await _context.SaveChangesAsync();
return await Task.FromResult(true);
}
public async Task<bool> UpdateArticleUser(ArticleUserEntity articleUser)
{
var entity = _context.ArticleUserSet.FirstOrDefault(a => a.UserEntityPseudo.Equals(articleUser.UserEntityPseudo));
if (entity == null) return await Task.FromResult(false);
entity.ArticleEntityId = articleUser.ArticleEntityId;
entity.UserEntityPseudo = articleUser.UserEntityPseudo;
await _context.SaveChangesAsync();
return await Task.FromResult(true);
}
}

@ -11,9 +11,7 @@ public class DbManagerFormulaire : IFormulaireService
private readonly LibraryContext _context;
public DbManagerFormulaire(LibraryContext context)
{
_context = context;
}
=> this._context = context;
public async Task<IEnumerable<Formulaire?>> GetAllForm(int index, int count, FormOrderCriteria orderCriteria)
{

@ -11,9 +11,7 @@ public class DbManagerUser: IUserService
private readonly LibraryContext _context;
public DbManagerUser(LibraryContext context)
{
_context = context;
}
=> this._context = context;
public async Task<IEnumerable<User?>> GetAll(int index, int count, UserOrderCriteria orderCriteria)
{
@ -41,6 +39,7 @@ public class DbManagerUser: IUserService
public async Task<User?> GetByPseudo(string pseudo)
{
var entity = _context.UserSet.FirstOrDefault(u => u.Pseudo == pseudo);
if (entity == null) return await Task.FromResult<User?>(null);
return await Task.FromResult(entity.ToModel());
}
@ -82,6 +81,67 @@ public class DbManagerUser: IUserService
return await Task.FromResult(true);
}
public async Task<IEnumerable<User?>> GetAllArticleUsers()
{
var entities = _context.ArticleUserSet.ToList();
List<UserEntity> users = new List<UserEntity>();
foreach( var articleUser in entities)
{
var user = _context.UserSet.FirstOrDefault(u => u.Pseudo.Equals(articleUser.UserEntityPseudo));
if (user != null) users.Add(user);
}
if (users == null) return await Task.FromResult<IEnumerable<User?>>(null);
return await Task.FromResult(users.Select(u => u.ToModel()).AsEnumerable());
}
public async Task<IEnumerable<Article?>> GetArticleUser(string pseudo)
{
var entities = _context.ArticleUserSet.Where(a => a.UserEntityPseudo.Equals(pseudo));
List<ArticleEntity> articles = new List<ArticleEntity>();
foreach (var article in entities)
{
var art = _context.ArticleSet.FirstOrDefault(a => a.Id.Equals(article.ArticleEntityId));
if (art != null) articles.Add(art);
}
if (articles == null) return await Task.FromResult<IEnumerable<Article?>>(null);
return await Task.FromResult(articles.Select(a => a.ToModel()).AsEnumerable());
}
public async Task<bool> CreateArticleUser(ArticleUserEntity articleUser)
{
var result = await GetByPseudo(articleUser.UserEntityPseudo);
if (result == null) return await Task.FromResult(false);
var entity = new ArticleUserEntity()
{
ArticleEntityId = articleUser.ArticleEntityId,
UserEntityPseudo = articleUser.UserEntityPseudo
};
if (entity == null) return await Task.FromResult(false);
_context.ArticleUserSet.Add(entity);
await _context.SaveChangesAsync();
return await Task.FromResult(true);
}
public async Task<bool> DeleteArticleUser(string pseudo)
{
var entity = _context.ArticleUserSet.FirstOrDefault(a => a.UserEntityPseudo.Equals(pseudo));
if (entity == null) return await Task.FromResult(false);
_context.ArticleUserSet.Remove(entity);
await _context.SaveChangesAsync();
return await Task.FromResult(true);
}
public async Task<bool> UpdateArticleUser(ArticleUserEntity articleUser)
{
var entity = _context.ArticleUserSet.FirstOrDefault(a => a.UserEntityPseudo.Equals(articleUser.UserEntityPseudo));
if (entity == null) return await Task.FromResult(false);
entity.ArticleEntityId = articleUser.ArticleEntityId;
entity.UserEntityPseudo = articleUser.UserEntityPseudo;
await _context.SaveChangesAsync();
return await Task.FromResult(true);
}

@ -5,12 +5,5 @@ namespace API_Services;
public interface IArticleUserService
{
Task<IEnumerable<User?>> GetAllArticleUsers();
Task<ArticleUserEntity?> GetArticleUser(string pseudo);
Task<ArticleUserEntity?> CreateArticleUser(ArticleUserEntity articleUser);
Task<bool> DeleteArticleUser(string pseudo);
Task<bool> UpdateArticleUser(ArticleUserEntity articleUser);
}

@ -0,0 +1,10 @@
namespace Model;
using API_Services;
public interface IDataManager
{
IArticleService ArticleService { get; }
IUserService UserService { get; }
IFormulaireService FormulaireService { get; }
}

@ -13,6 +13,15 @@ namespace API_Services
Task<bool> Delete(string pseudo);
Task<IEnumerable<User?>> GetAllArticleUsers();
Task<IEnumerable<Article?>> GetArticleUser(string pseudo);
Task<bool> CreateArticleUser(ArticleUserEntity articleUser);
Task<bool> DeleteArticleUser(string pseudo);
Task<bool> UpdateArticleUser(ArticleUserEntity articleUser);

@ -0,0 +1,25 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.0"/>
<PackageReference Include="xunit" Version="2.4.2"/>
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
</Project>

@ -0,0 +1,9 @@
namespace API_Unit_Test;
public class UnitTest1
{
[Fact]
public void Test1()
{
}
}

@ -26,7 +26,7 @@ public class LibraryContext : DbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.LogTo( l => LogFile.WriteLine(l), LogLevel.Error).EnableDetailedErrors().EnableDetailedErrors();
optionsBuilder.LogTo( LogFile.WriteLine, LogLevel.Error).EnableDetailedErrors().EnableDetailedErrors();
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlite($"Data Source=Entity_FrameWork.Article.db");
@ -161,4 +161,16 @@ public class LibraryContext : DbContext
);
*/
}
public override void Dispose()
{
base.Dispose();
LogFile.Dispose();
}
public override async ValueTask DisposeAsync()
{
await base.DisposeAsync();
await LogFile.DisposeAsync();
}
}

@ -2,11 +2,10 @@ using DbContextLib;
using Entities;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using Xunit;
namespace Tests;
namespace TestsUnitaires;
public class ArticleDB_Tests
public class TestsArticleEntity
{
[Fact]
public void Add_Test()

@ -0,0 +1,182 @@
using DbContextLib;
using Entities;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
namespace Tests;
public class TestsUserEntity
{
[Fact]
public void Add_Test()
{
var connection = new SqliteConnection("DataSource=:memory:");
connection.Open();
var options = new DbContextOptionsBuilder<LibraryContext>()
.UseSqlite(connection)
.Options;
using (var context = new LibraryContext(options))
{
context.Database.EnsureCreated();
UserEntity u1 = new UserEntity
{
Pseudo = "Tofgasy", Prenom = "Tony", Nom = "Fages", Mail = "he@gmail.com", Mdp = "1234", Role = "Admin"
};
UserEntity u2 = new UserEntity
{
Pseudo = "Blizzard", Prenom = "Louis", Nom = "Laborie", Mail = "he@gmail.com", Mdp = "1234",
Role = "Admin"
};
UserEntity u3 = new UserEntity
{
Pseudo = "TomS", Prenom = "Tom", Nom = "Smith", Mail = "TomS@gmail.com", Mdp = "1234", Role = "User"
};
UserEntity u4 = new UserEntity
{
Pseudo = "Siwa", Prenom = "Jean", Nom = "Marcillac", Mail = "occitan@gmail.com", Mdp = "1234",
Role = "Amin"
};
UserEntity u5 = new UserEntity
{
Pseudo = "Sha", Prenom = "Shana", Nom = "Cascarra", Mail = "shacas@gmail.com", Mdp = "1234",
Role = "Modérator"
};
UserEntity u6 = new UserEntity
{
Pseudo = "NoaSil", Prenom = "Noa", Nom = "Sillard", Mail = "noaSillar@gmail.com", Mdp = "1234",
Role = "Admin"
};
context.UserSet.Add(u1);
context.UserSet.Add(u2);
context.UserSet.Add(u3);
context.UserSet.Add(u4);
context.UserSet.Add(u5);
context.UserSet.Add(u6);
context.SaveChanges();
Assert.Equal(6, context.UserSet.Count());
Assert.Equal("Blizzard", context.UserSet.First().Pseudo);
connection.Close();
}
}
[Fact]
public void Modify_Test()
{
var connection = new SqliteConnection("DataSource=:memory:");
connection.Open();
var options = new DbContextOptionsBuilder<LibraryContext>()
.UseSqlite(connection)
.Options;
using (var context = new LibraryContext(options))
{
context.Database.EnsureCreated();
UserEntity u1 = new UserEntity
{
Pseudo = "Tofgasy", Prenom = "Tony", Nom = "Fages", Mail = "he@gmail.com", Mdp = "1234", Role = "Admin"
};
UserEntity u2 = new UserEntity
{
Pseudo = "Blizzard", Prenom = "Louis", Nom = "Laborie", Mail = "he@gmail.com", Mdp = "1234",
Role = "Admin"
};
UserEntity u3 = new UserEntity
{
Pseudo = "TomS", Prenom = "Tom", Nom = "Smith", Mail = "TomS@gmail.com", Mdp = "1234", Role = "User"
};
UserEntity u4 = new UserEntity
{
Pseudo = "Siwa", Prenom = "Jean", Nom = "Marcillac", Mail = "occitan@gmail.com", Mdp = "1234",
Role = "Amin"
};
UserEntity u5 = new UserEntity
{
Pseudo = "Sha", Prenom = "Shana", Nom = "Cascarra", Mail = "shacas@gmail.com", Mdp = "1234",
Role = "Modérator"
};
UserEntity u6 = new UserEntity
{
Pseudo = "NoaSil", Prenom = "Noa", Nom = "Sillard", Mail = "noaSillar@gmail.com", Mdp = "1234",
Role = "Admin"
};
context.UserSet.Add(u1);
context.UserSet.Add(u2);
context.UserSet.Add(u3);
context.UserSet.Add(u4);
context.UserSet.Add(u5);
context.UserSet.Add(u6);
context.SaveChanges();
var user = context.UserSet.First(u => u.Pseudo.Equals("Tofgasy"));
user.Prenom = "Tof";
context.SaveChanges();
string persRemove = "Tony";
string persNew = "Tof";
Assert.Equal(1, context.UserSet.Count(u => u.Prenom.Equals(persNew)));
Assert.Equal(0, context.UserSet.Count(u => u.Prenom.Equals(persRemove)));
connection.Close();
}
}
[Fact]
public void Remove_Test()
{
var connection = new SqliteConnection("DataSource=:memory:");
connection.Open();
var options = new DbContextOptionsBuilder<LibraryContext>()
.UseSqlite(connection)
.Options;
using (var context = new LibraryContext(options))
{
context.Database.EnsureCreated();
UserEntity u1 = new UserEntity
{
Pseudo = "Tofgasy", Prenom = "Tony", Nom = "Fages", Mail = "he@gmail.com", Mdp = "1234", Role = "Admin"
};
UserEntity u2 = new UserEntity
{
Pseudo = "Blizzard", Prenom = "Louis", Nom = "Laborie", Mail = "he@gmail.com", Mdp = "1234",
Role = "Admin"
};
UserEntity u3 = new UserEntity
{
Pseudo = "TomS", Prenom = "Tom", Nom = "Smith", Mail = "TomS@gmail.com", Mdp = "1234", Role = "User"
};
UserEntity u4 = new UserEntity
{
Pseudo = "Siwa", Prenom = "Jean", Nom = "Marcillac", Mail = "occitan@gmail.com", Mdp = "1234",
Role = "Amin"
};
UserEntity u5 = new UserEntity
{
Pseudo = "Sha", Prenom = "Shana", Nom = "Cascarra", Mail = "shacas@gmail.com", Mdp = "1234",
Role = "Modérator"
};
UserEntity u6 = new UserEntity
{
Pseudo = "NoaSil", Prenom = "Noa", Nom = "Sillard", Mail = "noaSillar@gmail.com", Mdp = "1234",
Role = "Admin"
};
context.UserSet.Add(u1);
context.UserSet.Add(u2);
context.UserSet.Add(u3);
context.UserSet.Add(u4);
context.UserSet.Add(u5);
context.UserSet.Add(u6);
context.SaveChanges();
Assert.Equal(6, context.UserSet.Count());
var user = context.UserSet.First(u => u.Pseudo.Equals("Tofgasy"));
context.Remove(user);
context.SaveChanges();
Assert.Equal(5, context.UserSet.Count());
Assert.Equal(0, context.UserSet.Count(u => u.Pseudo.Equals("Tofgasy")));
connection.Close();
}
}
}

@ -7,6 +7,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>TestsUnitaires</RootNamespace>
</PropertyGroup>
<ItemGroup>

@ -23,7 +23,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Model", "Model\Model.csproj
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API", "API\API.csproj", "{6AACD337-70A0-429B-979C-1B1E004BF2E0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestsUnitaires", "TestsUnitaires\TestsUnitaires.csproj", "{C1982C7C-AE09-4E96-B1A9-B6ADE4097452}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unit_Test_EF", "Unit_Test_EF\Unit_Test_EF.csproj", "{C1982C7C-AE09-4E96-B1A9-B6ADE4097452}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "API_Unit_Test", "API_Unit_Test\API_Unit_Test.csproj", "{B3B9C0F5-98A3-438B-A22A-ECFF33DA8F23}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -75,6 +77,10 @@ Global
{C1982C7C-AE09-4E96-B1A9-B6ADE4097452}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C1982C7C-AE09-4E96-B1A9-B6ADE4097452}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C1982C7C-AE09-4E96-B1A9-B6ADE4097452}.Release|Any CPU.Build.0 = Release|Any CPU
{B3B9C0F5-98A3-438B-A22A-ECFF33DA8F23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B3B9C0F5-98A3-438B-A22A-ECFF33DA8F23}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B3B9C0F5-98A3-438B-A22A-ECFF33DA8F23}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B3B9C0F5-98A3-438B-A22A-ECFF33DA8F23}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Loading…
Cancel
Save