From 912f6f662700b4e8d337df0943490a56d4ce0b4e Mon Sep 17 00:00:00 2001 From: Alexis DRAI Date: Thu, 6 Oct 2022 13:26:42 +0200 Subject: [PATCH] :white_check_mark: Add tests for GetOneById() --- Sources/Data/EF/Players/PlayerDbManager.cs | 120 +++++++++--------- .../Tests/Model_UTs/Games/GameRunnerTest.cs | 14 ++ .../Model_UTs/Players/PlayerManagerTest.cs | 15 +++ 3 files changed, 89 insertions(+), 60 deletions(-) diff --git a/Sources/Data/EF/Players/PlayerDbManager.cs b/Sources/Data/EF/Players/PlayerDbManager.cs index b12ee87..771185c 100644 --- a/Sources/Data/EF/Players/PlayerDbManager.cs +++ b/Sources/Data/EF/Players/PlayerDbManager.cs @@ -1,82 +1,82 @@ -using Microsoft.EntityFrameworkCore.ChangeTracking; -using Model; - -namespace Data.EF.Players -{ - public sealed class PlayerDbManager : IManager - { - private readonly DiceAppDbContext db; - - public PlayerDbManager(DiceAppDbContext db) - { - this.db = db; - } - - public PlayerEntity Add(PlayerEntity toAdd) - { - if (db.Players!.Where(entity => entity.Name == toAdd.Name).Any()) - { - throw new ArgumentException("this username is already taken", nameof(toAdd)); +using Microsoft.EntityFrameworkCore.ChangeTracking; +using Model; + +namespace Data.EF.Players +{ + public sealed class PlayerDbManager : IManager + { + private readonly DiceAppDbContext db; + + public PlayerDbManager(DiceAppDbContext db) + { + this.db = db; + } + + public PlayerEntity Add(PlayerEntity toAdd) + { + if (db.Players!.Where(entity => entity.Name == toAdd.Name).Any()) + { + throw new ArgumentException("this username is already taken", nameof(toAdd)); + } + if (toAdd is null) + { + throw new ArgumentNullException(nameof(toAdd), "param should not be null"); } - if (toAdd is null) - { - throw new ArgumentNullException(nameof(toAdd), "param should not be null"); - } if (string.IsNullOrWhiteSpace(toAdd.Name)) { throw new ArgumentException("Name property should not be null or whitespace", nameof(toAdd)); - } - EntityEntry ee = db.Players!.Add(toAdd); - db.SaveChanges(); - return (PlayerEntity)ee.Entity; - } - - public IEnumerable GetAll() - { - return db.Players!.AsEnumerable(); - } - + } + EntityEntry ee = db.Players!.Add(toAdd); + db.SaveChanges(); + return (PlayerEntity)ee.Entity; + } + + public IEnumerable GetAll() + { + return db.Players!.AsEnumerable(); + } + /// /// Calls First(), which will throw an exception if no player with such name exists /// /// - /// - public PlayerEntity GetOneByName(string name) - { + /// + public PlayerEntity GetOneByName(string name) + { if(string.IsNullOrWhiteSpace(name)) { throw new ArgumentException("Name property should not be null or whitespace", nameof(name)); } - return db.Players!.First(p => p.Name == name); - } - - public void Remove(PlayerEntity toRemove) + return db.Players!.First(p => p.Name == name); + } + + public void Remove(PlayerEntity toRemove) { - if (toRemove is null) - { - throw new ArgumentNullException(nameof(toRemove), "param should not be null"); - } - db.Players!.Remove(toRemove); - db.SaveChanges(); - } - - public PlayerEntity Update(PlayerEntity before, PlayerEntity after) + if (toRemove is null) + { + throw new ArgumentNullException(nameof(toRemove), "param should not be null"); + } + db.Players!.Remove(toRemove); + db.SaveChanges(); + } + + public PlayerEntity Update(PlayerEntity before, PlayerEntity after) { EntityEntry ee = db.Players!.Update(before); before.Name = after.Name; - db.SaveChanges(); - return (PlayerEntity)ee.Entity; + db.SaveChanges(); + return (PlayerEntity)ee.Entity; + + } - } - /// /// Calls First(), which will throw an exception if no player with such ID exists /// /// - /// - public PlayerEntity GetOneByID(Guid ID) + /// + public PlayerEntity GetOneByID(Guid ID) { - return db.Players!.First(p => p.ID == ID); - } - } -} + return db.Players!.First(p => p.ID == ID); + } + } +} diff --git a/Sources/Tests/Model_UTs/Games/GameRunnerTest.cs b/Sources/Tests/Model_UTs/Games/GameRunnerTest.cs index 1383541..836335a 100644 --- a/Sources/Tests/Model_UTs/Games/GameRunnerTest.cs +++ b/Sources/Tests/Model_UTs/Games/GameRunnerTest.cs @@ -79,6 +79,20 @@ namespace Tests.Model_UTs.Games Assert.DoesNotContain(null, stubGameRunner.GetAll()); } + [Fact] + public void TestGetOneByIdThrowsException() + { + // Arrange + GameRunner gameRunner = stubGameRunner; + + // Act + + void action() => gameRunner.GetOneByID(new("62bb72e6-f9fb-442e-a879-e1b70f8f52f3")); + + // Assert + Assert.Throws(action); + } + [Theory] [InlineData("")] [InlineData(null)] diff --git a/Sources/Tests/Model_UTs/Players/PlayerManagerTest.cs b/Sources/Tests/Model_UTs/Players/PlayerManagerTest.cs index 2cdb994..bedf45b 100644 --- a/Sources/Tests/Model_UTs/Players/PlayerManagerTest.cs +++ b/Sources/Tests/Model_UTs/Players/PlayerManagerTest.cs @@ -76,6 +76,21 @@ namespace Tests.Model_UTs.Players Assert.Throws(action); } + + [Fact] + public void TestGetOneByIdThrowsException() + { + // Arrange + PlayerManager playerManager = new(); + + // Act + + void action() => playerManager.GetOneByID(new("1a276327-75fc-45b9-8854-e7c4101088f8")); + + // Assert + Assert.Throws(action); + } + [Theory] [InlineData("")] [InlineData(null)]