finished sample ex_041_004

EFCore3_Reforged
Marc CHEVALDONNE 6 years ago
parent ffd725f154
commit c27075e7e6

@ -83,7 +83,7 @@ namespace ex_041_004_UnitTests
public void Add_Test()
{
var options = new DbContextOptionsBuilder<NounoursContext>()
.UseInMemoryDatabase(databaseName: "Add_writes_to_database")
.UseInMemoryDatabase(databaseName: "Add_Test_database")
.Options;
// runs the test against one instance of the context
@ -110,8 +110,105 @@ namespace ex_041_004_UnitTests
}
```
test
* nouveau projet
* dépendances
* nuget
* écriture du test
Ce premier test permet d'ajouter 3 nounours et :
* de vérifier qu'il y a bien trois nounours ajoutés
```csharp
Assert.Equal(3, context.Nounours.Count());
```
* de vérifier que le premier s'appelle bien Chewbacca :
```csharp
Assert.Equal("Chewbacca", context.Nounours.First().Nom);
```
Notez que le choix du fournisseur est bien fait au démarrage du test avec la création du ```DbContextOptionsBuilder``` :
```csharp
var options = new DbContextOptionsBuilder<NounoursContext>()
.UseInMemoryDatabase(databaseName: "Add_writes_to_database")
.Options;
```
et que l'injection est effectuée plus bas :
```csharp
using (var context = new NounoursContext(options))
{
//...
}
```
On peut ensuite ajouter un autre test, par exemple :
```csharp
[Fact]
public void Modify_Test()
{
var options = new DbContextOptionsBuilder<NounoursContext>()
.UseInMemoryDatabase(databaseName: "Modify_Test_database")
.Options;
// Run the test against one instance of the context
using (var context = new NounoursContext(options))
{
Nounours chewie = new Nounours { Nom = "Chewbacca" };
Nounours yoda = new Nounours { Nom = "Yoda" };
Nounours ewok = new Nounours { Nom = "Ewok" };
context.Nounours.Add(chewie);
context.Nounours.Add(yoda);
context.Nounours.Add(ewok);
context.SaveChanges();
}
// Use a separate instance of the context to verify correct data was saved to database
using (var context = new NounoursContext(options))
{
string nameToFind = "ew";
Assert.Equal(2, context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).Count());
nameToFind = "ewo";
Assert.Equal(1, context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).Count());
var ewok = context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).First();
ewok.Nom = "Wicket";
context.SaveChanges();
}
// Use a separate instance of the context to verify correct data was saved to database
using (var context = new NounoursContext(options))
{
string nameToFind = "ew";
Assert.Equal(1, context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).Count());
nameToFind = "wick";
Assert.Equal(1, context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).Count());
}
}
```
Ce cas de test :
* vérifie d'abord qu'il y a deux nounours dont le nom contient la chaîne "ew",
```csharp
string nameToFind = "ew";
Assert.Equal(2, context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).Count());
```
* vérifie qu'il y a un nounours dont le nom contient la chaîne "ewo"
```csharp
nameToFind = "ewo";
Assert.Equal(1, context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).Count());
```
* modifie le nom de ce nounours en "Wicket"
```csharp
var ewok = context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).First();
ewok.Nom = "Wicket";
```
* enregistre les changements
```csharp
context.SaveChanges();
```
* vérifie ensuite qu'il n'y a plus qu'un Nounours dont le nom contient la chaîne "ew"
```csharp
string nameToFind = "ew";
Assert.Equal(1, context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).Count());
```
* vérifie qu'il y a un Nounours dont le nom contient la chaîne "wick"
```csharp
nameToFind = "wick";
Assert.Equal(1, context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).Count());
```
---
Copyright &copy; 2019-2020 Marc Chevaldonné

@ -11,7 +11,7 @@ namespace ex_041_004_UnitTests
public void Add_Test()
{
var options = new DbContextOptionsBuilder<NounoursContext>()
.UseInMemoryDatabase(databaseName: "Add_writes_to_database")
.UseInMemoryDatabase(databaseName: "Add_Test_database")
.Options;
// Run the test against one instance of the context
@ -34,5 +34,47 @@ namespace ex_041_004_UnitTests
Assert.Equal("Chewbacca", context.Nounours.First().Nom);
}
}
[Fact]
public void Modify_Test()
{
var options = new DbContextOptionsBuilder<NounoursContext>()
.UseInMemoryDatabase(databaseName: "Modify_Test_database")
.Options;
// Run the test against one instance of the context
using (var context = new NounoursContext(options))
{
Nounours chewie = new Nounours { Nom = "Chewbacca" };
Nounours yoda = new Nounours { Nom = "Yoda" };
Nounours ewok = new Nounours { Nom = "Ewok" };
context.Nounours.Add(chewie);
context.Nounours.Add(yoda);
context.Nounours.Add(ewok);
context.SaveChanges();
}
// Use a separate instance of the context to verify correct data was saved to database
using (var context = new NounoursContext(options))
{
string nameToFind = "ew";
Assert.Equal(2, context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).Count());
nameToFind = "ewo";
Assert.Equal(1, context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).Count());
var ewok = context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).First();
ewok.Nom = "Wicket";
context.SaveChanges();
}
// Use a separate instance of the context to verify correct data was saved to database
using (var context = new NounoursContext(options))
{
string nameToFind = "ew";
Assert.Equal(1, context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).Count());
nameToFind = "wick";
Assert.Equal(1, context.Nounours.Where(n => n.Nom.Contains(nameToFind, System.StringComparison.CurrentCultureIgnoreCase)).Count());
}
}
}
}

Loading…
Cancel
Save