🧪 ajout du premier test et des charactéristiques(pb sur cette dernière nonobstant..) 🩹

pull/37/head
Pierre Ferreira 2 years ago
parent 9536d38745
commit 93a1c42ad2

@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.4.33213.308
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EF_LoL", "EF_LoL\EF_LoL.csproj", "{1AF6FE09-1ABF-4C51-8EC6-D2938876AAD2}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EF_LoL", "EF_LoL\EF_LoL.csproj", "{1AF6FE09-1ABF-4C51-8EC6-D2938876AAD2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestProject", "TestProject\TestProject.csproj", "{1A0B75E2-ECCE-47F3-A8FB-79F48F76E9A1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -15,6 +17,10 @@ Global
{1AF6FE09-1ABF-4C51-8EC6-D2938876AAD2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1AF6FE09-1ABF-4C51-8EC6-D2938876AAD2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1AF6FE09-1ABF-4C51-8EC6-D2938876AAD2}.Release|Any CPU.Build.0 = Release|Any CPU
{1A0B75E2-ECCE-47F3-A8FB-79F48F76E9A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1A0B75E2-ECCE-47F3-A8FB-79F48F76E9A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1A0B75E2-ECCE-47F3-A8FB-79F48F76E9A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1A0B75E2-ECCE-47F3-A8FB-79F48F76E9A1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

@ -9,12 +9,27 @@ namespace EF_LoL
{
public class ChampionDBContext : DbContext
{
public ChampionDBContext()
{ }
public ChampionDBContext(DbContextOptions<ChampionDBContext> options)
: base(options)
{ }
//ChampionEntity champ1 = new ChampionEntity("Bob");
//ChampionEntity champ2 = new ChampionEntity("Fanta");
public DbSet<ChampionEntity> ChampionEntity { get; set; }
//protected override void OnConfiguring(DbContextOptionsBuilder options)
// => options.UseSqlite("Data Source= EF_LoL.MyDataBase.db");
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlite("Data Source= EF_LoL.MyDataBase.db");
{
if (!options.IsConfigured)
{
options.UseSqlite("Data Source= EF_LoL.MyDataBase.db");
}
}
}
}

@ -4,6 +4,7 @@ using System.Collections.Immutable;
using System.Collections.ObjectModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Reflection.PortableExecutable;
using System.Text;
using System.Threading.Tasks;
@ -45,14 +46,22 @@ namespace EF_LoL
public string Icon { get; set; }
public ChampionEntity(string name, string icon = "", string bio = "")
{
Name = name;
Icon = icon;
Bio = bio;
///Characteristics = new ReadOnlyDictionary<string, int>(characteristics);
}
// creer tabl avec db context et db set de champion
///public ReadOnlyDictionary<string, int> Characteristics { get; private set; }
///private readonly Dictionary<string, int> characteristics = new Dictionary<string, int>();
// creer table avec db context et db set de champion
// puis ajout d'un nouveau champion
// pour ajouté un attribut : supprimer nos migrations et nos db
@ -79,5 +88,39 @@ namespace EF_LoL
}
return sb.ToString();
}
///// Characteristique
////public void AddCharacteristics(params Tuple<string, int>[] someCharacteristics)
////{
//// foreach (var c in someCharacteristics)
//// {
//// characteristics[c.Item1] = c.Item2;
//// }
////}
////public bool RemoveCharacteristics(string label)
//// => characteristics.Remove(label);
////public int? this[string label]
////{
//// get
//// {
//// if (!characteristics.TryGetValue(label, out int value)) return null;
//// else return value;
//// }
//// set
//// {
//// if (!value.HasValue)
//// {
//// RemoveCharacteristics(label);
//// return;
//// }
//// characteristics[label] = value.Value;
//// }
////}
}
}

@ -10,6 +10,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="7.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.2">

@ -13,8 +13,8 @@ using (var context = new ChampionDBContext())
// Crée des Champion et les insère dans la base
Console.WriteLine("Creates and inserts new Champion");
context.ChampionEntity.Add(chewie);
context.Add(yoda);
context.Add(ewok);
context.ChampionEntity.Add(yoda);
context.ChampionEntity.Add(ewok);
context.SaveChanges();
}

@ -0,0 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
<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="3.1.2">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EF_LoL\EF_LoL.csproj" />
</ItemGroup>
</Project>

@ -0,0 +1,45 @@
using EF_LoL;
using Microsoft.EntityFrameworkCore;
using System.Linq;
using Xunit;
namespace TestProject
{
public class UnitTest1
{
[Fact]
public void Test1()
{
var options = new DbContextOptionsBuilder<ChampionDBContext>()
.UseInMemoryDatabase(databaseName: "Add_Test_database")
.Options;
//prepares the database with one instance of the context
using (var context = new ChampionDBContext(options))
{
ChampionEntity chewie = new ChampionEntity("Chewbacca");
ChampionEntity yoda = new ChampionEntity("Yoda");
ChampionEntity ewok = new ChampionEntity("Ewok");
Console.WriteLine("Creates and inserts new Champion for tests");
context.ChampionEntity.Add(chewie);
context.ChampionEntity.Add(yoda);
context.ChampionEntity.Add(ewok);
context.SaveChanges();
}
//prepares the database with one instance of the context
using (var context = new ChampionDBContext(options))
{
Assert.Equal(3, context.ChampionEntity.Count());
Assert.Equal("Chewbacca", context.ChampionEntity.First().Name);
}
}
}
}

@ -0,0 +1 @@
global using Xunit;
Loading…
Cancel
Save