From eb2e2154c9d45e1df12af57a64b04a7e48a2218f Mon Sep 17 00:00:00 2001 From: Damien Nortier Date: Sat, 16 Mar 2024 21:13:04 +0100 Subject: [PATCH] modification des tests --- WebApi/TestEntityManagers/Program.cs | 67 +++++++++++++++------------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/WebApi/TestEntityManagers/Program.cs b/WebApi/TestEntityManagers/Program.cs index e6bebee..c1d227b 100644 --- a/WebApi/TestEntityManagers/Program.cs +++ b/WebApi/TestEntityManagers/Program.cs @@ -14,11 +14,12 @@ var opt = new DbContextOptionsBuilder() .UseSqlite(connection) .Options; using var context = new StubbedDbContext(); +context.Database.EnsureCreated(); /// /// test of the 'addAnswer' method of an AnswerManager /// -async Task TestAddAnswer() +void TestAddAnswer() { var connection = new SqliteConnection("DataSource=:memory:"); @@ -27,12 +28,12 @@ async Task TestAddAnswer() var opt = new DbContextOptionsBuilder() .UseSqlite(connection) .Options; - using (var dbContext = new MyDbContext(opt)) + using (var context = new MyDbContext(opt)) { - await dbContext.Database.EnsureCreatedAsync(); - var manager = new AnswerEntityManager(dbContext); + context.Database.EnsureCreated(); + var manager = new AnswerEntityManager(context); var answerToAdd = new AnswerEntity { Id = 1, Content = "chateîgne" }; - var a = await manager.addAnswer(answerToAdd); + var a = manager.addAnswer(answerToAdd).Result; // 1) normal insertion // WF : a is the same // as answerToAdd @@ -50,7 +51,7 @@ async Task TestAddAnswer() } answerToAdd = new AnswerEntity { Id = 5, Content = "damien" }; - a = await manager.addAnswer(answerToAdd); + a = manager.addAnswer(answerToAdd).Result; // 2) with a random id greater than 0 // WF : 'a' content is equal to the // content of 'answerToAdd' @@ -70,7 +71,7 @@ async Task TestAddAnswer() } answerToAdd = new AnswerEntity { Id = 7, Content = "chateîgne" }; - a = await manager.addAnswer(answerToAdd); + a = manager.addAnswer(answerToAdd).Result; // 3) with a content that we already have added // WF : the function return the answer which already // have the same content so the content of 'a' is "châteigne" @@ -89,7 +90,7 @@ async Task TestAddAnswer() } answerToAdd = new AnswerEntity { Id = 7, Content = "CHATEÎGNE" }; - a = await manager.addAnswer(answerToAdd); + a = manager.addAnswer(answerToAdd).Result; // 3) with a content that we already have added // but in upperCase instead of lowerCase // WF : the function return the answer which @@ -108,17 +109,17 @@ async Task TestAddAnswer() Console.ResetColor(); } foreach (var item in context.Answers) context.Answers.Remove(item); // we remove all database answers - await context.SaveChangesAsync(); + context.SaveChanges(); } } /// /// test of the 'supprimerAnswer' method of an AnswerManager /// -async Task TestRemoveAnswerById(MyDbContext context) +void TestRemoveAnswerById(MyDbContext context) { var mgr = new AnswerEntityManager(context); - var a = await mgr.removeAnswer(context.Answers.Select(a => a.Id).Max() + 1); + var a = mgr.removeAnswer(context.Answers.Select(a => a.Id).Max() + 1).Result; // 1) with an id greater or equal // to the number of element // WF : it don't works so 'a' is null, @@ -135,12 +136,12 @@ async Task TestRemoveAnswerById(MyDbContext context) Console.ResetColor(); } - a = await mgr.removeAnswer(context.Answers.Select(a => a.Id).Min()); + a = mgr.removeAnswer(context.Answers.Select(a => a.Id).Min()).Result; // 1) with an id that is allowed to an answer // WF : it works so 'a' is not null, // and since we've delete the answer with // the id 1, the content is "châteigne" - if (a.Content == context.Answers.Single(a => a.Id == context.Answers.Select(a => a.Id).Min()).Content + if (a != null && a.Content == context.Answers.Single(a => a.Id == context.Answers.Select(a => a.Id).Min()).Content && a.Id == context.Answers.Select(a => a.Id).Min()) { Console.ForegroundColor = ConsoleColor.Green; @@ -158,26 +159,26 @@ async Task TestRemoveAnswerById(MyDbContext context) /// /// test of the 'getNbElement' method of an AnswerManager /// -async Task TestGetNbAnswers(MyDbContext context) +void TestGetNbAnswers(MyDbContext context) { - await context.Database.EnsureCreatedAsync(); var mgr = new AnswerEntityManager(context); - if (mgr.getNbAnswers() != 0 || fakeAnswers.datas == null) throw new Exception("not ready"); - int count = 0; + int count = context.Answers.CountAsync().Result; + int nb = 0; foreach (var answer in fakeAnswers.datas) { - await mgr.addAnswer(answer); + var tmp = mgr.addAnswer(answer).Result; count++; + nb++; if (mgr.getNbAnswers() == count) { // ok, it's incremented Console.ForegroundColor = ConsoleColor.Green; - Console.WriteLine($"test {count} AnswerEntityManager.addAnswer OK"); + Console.WriteLine($"test {nb} AnswerEntityManager.getNbAnswers OK"); Console.ResetColor(); } else { Console.ForegroundColor = ConsoleColor.Red; - Console.WriteLine($"test {count} AnswerEntityManager.addAnswer KO"); + Console.WriteLine($"test {nb} AnswerEntityManager.getNbAnswers KO"); Console.ResetColor(); } } @@ -207,12 +208,12 @@ IEnumerable TestGetAnswer_Datas() /// identifiant of the answer to get /// answer expected /// nothing but a Task -async Task TestGetAnswer(MyDbContext context, int numTest, int id, AnswerEntity? waiting) +void TestGetAnswer(MyDbContext context, int numTest, int id, AnswerEntity? waiting) { - await context.Database.EnsureCreatedAsync(); + context.Database.EnsureCreated(); var mgr = new AnswerEntityManager(context); - var tmp = await mgr.getAnswer(id + 2); + var tmp = mgr.getAnswer(id + 2).Result; if (tmp?.Content == waiting?.Content) { Console.ForegroundColor = ConsoleColor.Green; @@ -283,13 +284,13 @@ static IEnumerable TestGetSomeAnswers_Datas() /// set of answers expected /// the order criteria /// nothing but a Task -async Task TestGetSomeAnswers(MyDbContext context, int numTest, int num, int count, IEnumerable? waiting, AnswerOrderCriteria orderCriteria = AnswerOrderCriteria.ById) +void TestGetSomeAnswers(MyDbContext context, int numTest, int num, int count, IEnumerable? waiting, AnswerOrderCriteria orderCriteria = AnswerOrderCriteria.ById) { - await context.Database.EnsureCreatedAsync(); + context.Database.EnsureCreated(); var mgr = new AnswerEntityManager(context); var nbPages = count == 0 ? -1 : mgr.getNbAnswers() / count; - var tmp = await mgr.getAnswers(num, count, orderCriteria); + var tmp = mgr.getAnswers(num, count, orderCriteria).Result; if(tmp.nbPages == nbPages){ Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"test {numTest} AnswerEntityManager.getSomeAnswers OK"); @@ -330,7 +331,7 @@ async Task TestGetSomeAnswers(MyDbContext context, int numTest, int num, int cou var nbFautes = 0; for (var i = 0; i < count; i++) { - var e1 = waiting.ElementAt(i); + var e1 = waiting!.ElementAt(i); var e2 = tmp.answers.ElementAt(i); if(e2.Content != e1.Content || e2.IdQuestion != e1.IdQuestion) nbFautes++; } @@ -355,19 +356,21 @@ async Task TestGetSomeAnswers(MyDbContext context, int numTest, int num, int cou Console.ResetColor(); } } + +// Tests of an answer { - await TestAddAnswer(); - await TestRemoveAnswerById(context); - await TestGetNbAnswers(context); + TestAddAnswer(); + TestRemoveAnswerById(context); + TestGetNbAnswers(context); var tmp = TestGetAnswer_Datas(); for (int i = 0; i < tmp.Count(); i++) { - await TestGetAnswer(context, i, (int)tmp.ElementAt(i).ElementAt(0)!, (AnswerEntity)tmp.ElementAt(i).ElementAt(1)!); + TestGetAnswer(context, i, (int)tmp.ElementAt(i).ElementAt(0)!, (AnswerEntity)tmp.ElementAt(i).ElementAt(1)!); } tmp = TestGetSomeAnswers_Datas(); for (int i = 0; i < tmp.Count(); i++) { - await TestGetSomeAnswers(context, i, (int)tmp.ElementAt(i).ElementAt(0)!, (int)tmp.ElementAt(i).ElementAt(1)!, + TestGetSomeAnswers(context, i, (int)tmp.ElementAt(i).ElementAt(0)!, (int)tmp.ElementAt(i).ElementAt(1)!, (IEnumerable?)tmp.ElementAt(i).ElementAtOrDefault(2), (AnswerOrderCriteria)(tmp.ElementAt(i).ElementAtOrDefault(i) ?? AnswerOrderCriteria.ById) );