From 93a1c42ad205b2dd9fee3720002aad9af0d36a55 Mon Sep 17 00:00:00 2001
From: Pierre Ferreira
Date: Sat, 4 Feb 2023 12:03:28 +0100
Subject: [PATCH] =?UTF-8?q?:test=5Ftube:=20ajout=20du=20premier=20test=20e?=
=?UTF-8?q?t=20des=20charact=C3=A9ristiques(pb=20sur=20cette=20derni=C3=A8?=
=?UTF-8?q?re=20nonobstant..)=20:adhesive=5Fbandage:?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
EF_LoL/EF_LoL.sln | 8 ++++-
EF_LoL/EF_LoL/ChampionDBContext.cs | 17 +++++++++-
EF_LoL/EF_LoL/ChampionEntity.cs | 45 ++++++++++++++++++++++++++-
EF_LoL/EF_LoL/EF_LoL.csproj | 1 +
EF_LoL/EF_LoL/Program.cs | 4 +--
EF_LoL/TestProject/TestProject.csproj | 29 +++++++++++++++++
EF_LoL/TestProject/UnitTest1.cs | 45 +++++++++++++++++++++++++++
EF_LoL/TestProject/Usings.cs | 1 +
8 files changed, 145 insertions(+), 5 deletions(-)
create mode 100644 EF_LoL/TestProject/TestProject.csproj
create mode 100644 EF_LoL/TestProject/UnitTest1.cs
create mode 100644 EF_LoL/TestProject/Usings.cs
diff --git a/EF_LoL/EF_LoL.sln b/EF_LoL/EF_LoL.sln
index 856e14b..98ae8a2 100644
--- a/EF_LoL/EF_LoL.sln
+++ b/EF_LoL/EF_LoL.sln
@@ -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
diff --git a/EF_LoL/EF_LoL/ChampionDBContext.cs b/EF_LoL/EF_LoL/ChampionDBContext.cs
index 8536a46..eb85489 100644
--- a/EF_LoL/EF_LoL/ChampionDBContext.cs
+++ b/EF_LoL/EF_LoL/ChampionDBContext.cs
@@ -9,12 +9,27 @@ namespace EF_LoL
{
public class ChampionDBContext : DbContext
{
+ public ChampionDBContext()
+ { }
+
+ public ChampionDBContext(DbContextOptions options)
+ : base(options)
+ { }
//ChampionEntity champ1 = new ChampionEntity("Bob");
//ChampionEntity champ2 = new ChampionEntity("Fanta");
public DbSet 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");
+ }
+ }
}
}
diff --git a/EF_LoL/EF_LoL/ChampionEntity.cs b/EF_LoL/EF_LoL/ChampionEntity.cs
index 276445c..9a764d9 100644
--- a/EF_LoL/EF_LoL/ChampionEntity.cs
+++ b/EF_LoL/EF_LoL/ChampionEntity.cs
@@ -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(characteristics);
}
- // creer tabl avec db context et db set de champion
+ ///public ReadOnlyDictionary Characteristics { get; private set; }
+ ///private readonly Dictionary characteristics = new Dictionary();
+
+
+ // 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[] 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;
+ //// }
+ ////}
+
}
}
diff --git a/EF_LoL/EF_LoL/EF_LoL.csproj b/EF_LoL/EF_LoL/EF_LoL.csproj
index 500c36b..b1028b0 100644
--- a/EF_LoL/EF_LoL/EF_LoL.csproj
+++ b/EF_LoL/EF_LoL/EF_LoL.csproj
@@ -10,6 +10,7 @@
+
diff --git a/EF_LoL/EF_LoL/Program.cs b/EF_LoL/EF_LoL/Program.cs
index 1b49a9d..cb608c3 100644
--- a/EF_LoL/EF_LoL/Program.cs
+++ b/EF_LoL/EF_LoL/Program.cs
@@ -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();
}
diff --git a/EF_LoL/TestProject/TestProject.csproj b/EF_LoL/TestProject/TestProject.csproj
new file mode 100644
index 0000000..0c2b451
--- /dev/null
+++ b/EF_LoL/TestProject/TestProject.csproj
@@ -0,0 +1,29 @@
+
+
+
+ net6.0
+ enable
+ enable
+
+ false
+
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+
+
+
+
diff --git a/EF_LoL/TestProject/UnitTest1.cs b/EF_LoL/TestProject/UnitTest1.cs
new file mode 100644
index 0000000..743eb8d
--- /dev/null
+++ b/EF_LoL/TestProject/UnitTest1.cs
@@ -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()
+ .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);
+ }
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/EF_LoL/TestProject/Usings.cs b/EF_LoL/TestProject/Usings.cs
new file mode 100644
index 0000000..8c927eb
--- /dev/null
+++ b/EF_LoL/TestProject/Usings.cs
@@ -0,0 +1 @@
+global using Xunit;
\ No newline at end of file