From 7d9ec6caba03c9762d4009156632970331ff1d73 Mon Sep 17 00:00:00 2001 From: Damien NORTIER Date: Wed, 27 Mar 2024 08:41:04 +0100 Subject: [PATCH] =?UTF-8?q?suppression=20des=20tests=20unitaires=20inutili?= =?UTF-8?q?s=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UnitTestAnswerManager.cs | 282 ------------------ .../UnitTestsEntityManagers.csproj | 32 -- 2 files changed, 314 deletions(-) delete mode 100644 WebApi/UnitTestsEntityManagers/UnitTestAnswerManager.cs delete mode 100644 WebApi/UnitTestsEntityManagers/UnitTestsEntityManagers.csproj diff --git a/WebApi/UnitTestsEntityManagers/UnitTestAnswerManager.cs b/WebApi/UnitTestsEntityManagers/UnitTestAnswerManager.cs deleted file mode 100644 index 39968f9..0000000 --- a/WebApi/UnitTestsEntityManagers/UnitTestAnswerManager.cs +++ /dev/null @@ -1,282 +0,0 @@ -using DbConnectionLibrairie; -using Entities; -using EntityManagers; -using Microsoft.Data.Sqlite; -using Microsoft.EntityFrameworkCore; -using OrderCriterias; -using StubbedDbContextLibrary; - -namespace UnitTestsEntityManagers -{ - public class UnitTestAnswerManager - { - /// - /// test of the 'ajouterAnswer' method of an AnswerManager - /// - [Fact] - public async void TestAddAnswer() - { - var connection = new SqliteConnection("DataSource=:memory:"); - - connection.Open(); - - var opt = new DbContextOptionsBuilder() - .UseSqlite(connection) - .Options; - using (var context = new MyDbContext(opt)) - { - await context.Database.EnsureCreatedAsync(); - var manager = new AnswerEntityManager(context); - var answerToAdd = new AnswerEntity { Id = 1, Content = "chateîgne" }; - var a = await manager.addAnswer(answerToAdd); - // 1) normal insertion - // WF : a is the same - // as answerToAdd - Assert.Equal(answerToAdd.Content, a.Content); - Assert.Equal(answerToAdd.Id, a.Id); - - answerToAdd = new AnswerEntity { Id = 5, Content = "damien" }; - a = await manager.addAnswer(answerToAdd); - // 2) with a random id greater than 0 - // WF : 'a' content is equal to the - // content of 'answerToAdd' - // and since it's the second answer - // that we add, his id equal 2 - Assert.Equal(answerToAdd.Content, a.Content); - Assert.Equal((int)2, a.Id); - - answerToAdd = new AnswerEntity { Id = 7, Content = "chateîgne" }; - a = await manager.addAnswer(answerToAdd); - // 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" - // and his id is 1 - Assert.Equal("chateîgne", a.Content); - Assert.Equal((int)1, a.Id); - - answerToAdd = new AnswerEntity { Id = 7, Content = "CHATEÎGNE" }; - a = await manager.addAnswer(answerToAdd); - // 3) with a content that we already have added - // but in upperCase instead of lowerCase - // WF : the function return the answer which - // already have the same content so the content - // of 'a' is "chateîgne" and his id is 1 - Assert.Equal("chateîgne", a.Content); - Assert.Equal((int)1, a.Id); - } - } - - /// - /// test of the 'supprimerAnswer' method of an AnswerManager - /// - [Fact] - public async Task TestRemoveAnswerById() - { - var connection = new SqliteConnection("DataSource=:memory:"); - - connection.Open(); - - var opt = new DbContextOptionsBuilder() - .UseSqlite(connection) - .Options; - using (var context = new StubbedDbContext()) - { - await context.Database.EnsureCreatedAsync(); - var mgr = new AnswerEntityManager(context); - var a = await mgr.removeAnswer(context.Answers.Select(a => a.Id).Max() + 1); - // 1) with an id greater or equal - // to the number of element - // WF : it don't works so 'a' is null, - Assert.Null(a); - - a = await mgr.removeAnswer(context.Answers.Select(a => a.Id).Min()); - // 1) with an id that belongs 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" - Assert.NotNull(a); - Assert.Equal(context.Answers.Select(a => a.Id).Min(), a.Id); - Assert.Equal(context.Answers.Single(a => a.Id == context.Answers.Select(a => a.Id).Min()).Content, a.Content); - - a = await mgr.removeAnswer(2); - } - } - - /// - /// test of the 'getNbElement' method of an AnswerManager - /// - [Fact] - public async Task TestGetNbElement() - { - var connection = new SqliteConnection("DataSource=:memory:"); - connection.Open(); - var opt = new DbContextOptionsBuilder() - .UseSqlite(connection) - .Options; - using (var context = new StubbedDbContext()) - { - await context.Database.EnsureCreatedAsync(); - var mgr = new AnswerEntityManager(context); - Assert.Equal(0, mgr.getNbAnswers()); // just to be sure - - Assert.NotNull(fakeAnswers.datas); // just to be sure - - int count = 0; - foreach (var answer in fakeAnswers.datas) - { - await mgr.addAnswer(answer); - count++; - Assert.Equal(count, mgr.getNbAnswers()); // ok, it's incremented - } - } - } - - /// - /// member data for the 'TestGetAnswer' test method - /// - /// a set of all inline datas for the test method - public static IEnumerable TestGetAnswer_Datas() - { - var datas = fakeAnswers.datas; - int max = 0; - foreach (var item in datas) - { - yield return new Object[] { item.Id, item }; - if(max < item.Id) max = item.Id; - } - yield return new Object[] { max+1, null! }; - } - /// - /// test of the 'getAnswer' method of an AnswerManager - /// - /// identifiant of the answer to get - /// answer expected - /// nothing but a Task - [Theory] - [MemberData(nameof(TestGetAnswer_Datas))] - public async Task TestGetAnswer(int id, AnswerEntity? waiting) - { - var connection = new SqliteConnection("DataSource=:memory:"); - - connection.Open(); - - var opt = new DbContextOptionsBuilder() - .UseSqlite(connection) - .Options; - - using (var context = new StubbedDbContext()) - { - await context.Database.EnsureCreatedAsync(); - var mgr = new AnswerEntityManager(context); - - var tmp = await mgr.getAnswer(id + 2); - Assert.Equal(waiting?.Content, tmp?.Content); - } - } - - /// - /// member data for the 'TestGetAnswer' test method - /// - /// a set of all inline datas for the test method - public static IEnumerable TestGetSomeAnswers_Datas() - { - var datas = fakeAnswers.datas; - var count = datas.Count(); - // remind that to add answers, we haven't ordered this collection - // but we just have done a foreach - - // 1 : 0 answer from the page 1 then, -1 answer from this page - // WF : count < 1 so we got null - yield return new object?[] { 1, 0, null }; - yield return new object?[] { 1, -1, null }; - - // 2 : 1 answers from the page 0 then, 1 answers from the page -1 - // WF : page < 1 so we got null - yield return new object?[] { 0, 1, null }; - yield return new object?[] { -1, 1, null }; - - // 3 : 10 answers from the page 1 - // WF : the first 10 element of datas - yield return new object?[] { 1, 10, datas.Take(10) }; - - // 4 : 10 elements from the page 1 order by id - // WF : the first 10 element of datas order by id - yield return new object?[] { 1, 10, datas.OrderBy(e => e.Id).Take(10), AnswerOrderCriteria.ById }; - - // 5 : 10 elements from the page 1 order by content - // WF : the first 10 element of datas order by content - yield return new object?[] { 1, 10, datas.OrderBy(e => e.Content).Take(10), AnswerOrderCriteria.ById }; - - // 6 : repeat 3, 4 and 5 with the page 2 - // WF : the 10 next answer from each case - yield return new object?[] { 2, 10, datas.Skip(10).Take(10) }; - yield return new object?[] { 1, 10, datas.OrderBy(e => e.Id).Skip(10).Take(10), AnswerOrderCriteria.ById }; - yield return new object?[] { 1, 10, datas.OrderBy(e => e.Content).Skip(10).Take(10), AnswerOrderCriteria.ByContent }; - - // 7 : count/4 elements from the page 4 - // WF : the lasts count/4 elements of datas - yield return new object?[] { 4, count / 4, datas.TakeLast(count / 4) }; - - // 8 : count/4 elements from the page 5 - // WF : null since num (4) >= count / (count/4) - yield return new object?[] { 5, count / 4, null }; - - // 9 : 10 elements from the page 4 - // WF : since there's only 31 elements in fake datas, - // we got the last element - yield return new object?[] { 4, 10, datas.TakeLast(1) }; - } - - /// - /// test of the 'getAnswer' method of an AnswerManager - /// - /// the page number - /// page elements number - /// set of answers expected - /// the order criteria - /// nothing but a Task - [Theory] - [MemberData(nameof(TestGetSomeAnswers_Datas))] - public async Task TestGetSomeAnswers(int num, int count, IEnumerable? waiting, AnswerOrderCriteria orderCriteria = AnswerOrderCriteria.ById) - { - var connection = new SqliteConnection("DataSource=:memory:"); - - connection.Open(); - - var opt = new DbContextOptionsBuilder() - .UseSqlite(connection) - .Options; - - using (var context = new StubbedDbContext()) - { - await context.Database.EnsureCreatedAsync(); - var mgr = new AnswerEntityManager(context); - - var nbPages = count == 0 ? -1 : mgr.getNbAnswers() / count; - var tmp = await mgr.getAnswers(num, count, orderCriteria); - - Assert.Equal(nbPages, tmp.nbPages); - if (waiting == null) Assert.Null(tmp.answers); - else - { - Assert.NotNull(tmp.answers); - if (waiting.Count() == 0) Assert.Empty(tmp.answers); - else - { - for (var i = 0; i < count; i++) - { - var e1 = waiting.ElementAt(i); - var e2 = tmp.answers.ElementAt(i); - Assert.Equal(e1.Content, e2.Content); - Assert.Equal(e2.IdQuestion, e1.IdQuestion); - } - } - } - } - } - - // removeAnswer by element - - // updateAnswer - } -} \ No newline at end of file diff --git a/WebApi/UnitTestsEntityManagers/UnitTestsEntityManagers.csproj b/WebApi/UnitTestsEntityManagers/UnitTestsEntityManagers.csproj deleted file mode 100644 index 3e3ee01..0000000 --- a/WebApi/UnitTestsEntityManagers/UnitTestsEntityManagers.csproj +++ /dev/null @@ -1,32 +0,0 @@ - - - - net8.0 - enable - enable - - false - true - $(MSBuildProjectDirectory) - - - - - - - - - - - - - - - - - - - - - -